栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python快速编程入门#学习笔记04# |第四章 :字符串 (%格式化符号、format()格式化字符串、f-string格式化字符串及字符串的常见操作)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python快速编程入门#学习笔记04# |第四章 :字符串 (%格式化符号、format()格式化字符串、f-string格式化字符串及字符串的常见操作)

全文目录
        • ==先导知识:==
        • 学习目标
        • 4.1 字符串介绍
          • 转义字符
        • 4.2 格式化字符串
          • 使用%格式化字符串
          • 使用format()方法格式化字符串
          • ==推荐==:使用f-string格式化字符串
        • 4.3 实训案例
        • 4.4 字符串的常见操作
          • 字符串的查找与替换
            • `find()` 字符串查找函数
            • `index()`字符串查找函数
            • `count()`统计字符串函数
            • `replace()` 字符串替换函数
          • 字符串的分隔与拼接
            • `split()`字符串分割函数
          • 删除字符串的指定字符
            • `strip()` 字符串删除函数
          • 字符串大小写转换
            • `capitalize()` 和 `title()`字符串大小写转换函数
          • 字符串对齐
          • 敏感词替换
          • 文字排版工具
        • 4.5 实训案例


先导知识:
  • Python快速编程入门#学习笔记01# |第一章 :Python概述 (Python发展历程、开发工具、模块)
  • Python快速编程入门#学习笔记03# |第二章 :Python基础(代码格式、标识符关键字、变量和数据类型、数字类型以及运算符)
  • 第三章:程序流程控制 (分支语句(条件语句)、循环语句、跳转语句)
  • Python快速编程入门#学习笔记02# |第十章 :Python计算生态与常用库(附.小猴子接香蕉、双人乒乓球小游戏源码)

开发环境及Git 的配置与排错:

  • Python -PythonIDE - PyCharm下载安装配置及 Git 排错记录

学习目标
  • 掌握 字符串的定义方法
  • 掌握 字符串的格式化
  • 熟悉 字符串的常见操作

4.1 字符串介绍

字符串是由字母、符号或者数字组成的字符序列。

字符串是 Python 中最常见的数据类型。一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

创建字符串 示例代码 :

# 认识字符串

# 字符串是 Python 中最常见的数据类型。一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。
# 字符串是由字母、符号或者数字组成的字符序列。
# 创建字符串
a = 'hello world'
b = "abcdefghijkmln"
print(type(a))
print(type(b))

# 注意:控制台显示输出结果为  ,即 数据类型为str(字符串)

# 1.1 字符串的特征

# 一对引号字符串

name1 = 'Tom'   # 单引号
name2 = "Rose"  # 双引号

# 三引号字符串

name3 = """" ROSE """
name4 = '''Tom'''
word = '''i am Tom ,
            nice to meet you!'''


print(name1)
print(name2)
print(name3)
print(name4)
print(word)

注意:
1、控制台显示输出结果为 ,即 数据类型为str(字符串)
2、三引号字符串支持换行

思考:
如何创建字符串 I'm Tom ?

#  word2 = 'I'm Tom''    # 如何按照英语语法中的格式书写I am 的缩写 I'M 中的撇
#  转义字符 换行符:n    ;   制表符:t  为一个tab键(4个空格)的距离

 word3 = "I'm Tom"    # 第一种方法是用双引号,中间的那一撇' 就不会出现了
 word2 = 'I'm Tom'   # 第二种方法是用转义字符 反斜杠 
 print(word3)
 print(word2)
转义字符

一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“”和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等。

从左上到右下的斜杠 称之为 反斜杠 ;
从右上到左下的斜杠 /称之为斜杠

  • 换行符:n ;
  • 制表符:t为一个tab键(4个空格)的距离

思考:
为什么变量输出行数 print( ) 输出会自动换行?

因为 print() 函数中 参数 end:用于设定输出以书面结尾,默认值为换行符号n。

# 输出默认换行
print("要输出的内容") 
print("要输出的内容",end="n")  # 


# 若不想输出换行
 print("要输出的内容",end=" ") 


示例代码:

a = 'hello'
b = 'world!'
c = 'helloworld!'
print(a)                # 输出 变量a 中的字符串: hello
print(b)                # 输出 变量b 中的字符串: world!
print(c)                # 输出 变量c 中的字符串: helloworld!
print(a, end='')        # 输出 hello 后 不换行
print(b, end='n')      # 输出 world 后 换行
print('thelloworld')   # 控制台输出前空4格

输出结果如下:

4.2 格式化字符串 使用%格式化字符串

字符串具有一种特殊的内置操作,它可以使用%进行格式化。

  • format 表示一个字符串,该字符串中包含单个或多个为真实数据占位的格式符;
  • values 表示单个或多个真实数据;
  • %代表执行格式化操作,即将format中的格式符替换为values。

不同的格式符为不同类型的数据预留位置,常见的格式符如下所示 :


在PyCharm 中代码演示%格式化操作,示例代码如下:

'''
1. 准备数据
2.格式化符号输出数据
'''

# 1. 今年我的年龄是x岁

# 2. 我的名字是x

# 3. 我的体重是x公斤

# 4. 我的学号是x

# 组合格式化内容
# 5. 我的姓名是x. 今年x岁了

# 6. 我的姓名是x. 今年x岁了. 体重x公斤. 学号是x


'''**********************分*割*线*********************************'''

# 1. 准备数据
age = 18
name = 'Tom'
weight = 60.5
stu_id = 1
# 2. 格式化符号输出数据
# 1. 今年我的年龄是x岁 -- 整数 %d
print("今年我的年龄是x岁")
print("今年我的年龄是%d岁" % age)

# 2. 我的名字是x -- 字符串 %s
print('我的名字是TOM')
print('我的名字是%s' % name)

# 3. 我的体重是x公斤 --浮点型 %f
print('我的体重是x公斤')
print('我的体重是%f' % weight)      # 默认保留6位小数
print('我的体重是%.2f' % weight)    # %与f之间 加.2 保留2位小数
# 小技巧:%.2f 表示小数点后显示的小数位

# 4. 我的学号是x
print('我的学号是x')
print('我的学号是%d' % stu_id)
print('我的学号是%06d' % stu_id)
# 小技巧:%06d 表示输出的整数显示位数,不足以0不全,超出当前位数则原样输出

# 组合格式化内容
# 5. 我的姓名是x. 今年x岁了
print('我的姓名是x, 今年x岁了')
print('我的姓名是%s,今年%d岁了' % (name, age))
# 6. 我的姓名是x. 今年x岁了. 体重x公斤. 学号是x
print('我的姓名是x,今年x岁了,体重x公斤,学号是x')
print('我的姓名是%s,今年%d岁了,体重%.2f公斤,学号是%d' % (name, age, weight, stu_id))

小技巧:
1、%.2f 表示小数点后显示的小数位
2、%06d 表示输出的整数显示位数,不足以0不全,超出当前位数则原样输出

输出结果如下:

使用format()方法格式化字符串

虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。

  • str 表示需要被格式化的字符串 变量,字符串中包含单个或多个为真实数据占位的符号{};
  • values 表示单个或多个待替换的真实数据,多个数据之间以逗号分隔。

方法一:字符串中可以包含多个{}符号,字符串被格式化时Python解释器默认会按 从左到右的顺序 将{}逐个替换为真实的数据.

示例如下:

name = '张倩'
age = 25
string = "姓名:{} n 年龄:{}"       # 定义string字符串,{}位置为数据的占位符号 ;n表示换行输出
print(string.format(name, age))    # name ,age 传递到对应的占位符{}中

输出结果如下:

方法二:字符串的{}中可以明确地指定 编号,格式化字符串时解释器会按编号取 values 中相应位置的值替换{},values中元素的 索引从0开始。

示例代码如下:

name = '张倩'
age = 25
# string = "姓名:{}n年龄:{}"       # 定义string字符串,{}位置为数据的占位符号
# print(string.format(name, age))    # name ,age 传递到对应的占位符{}中

# 编号
string = "姓名:{1}n年龄:{0}"
print(string.format(age, name))     # 编号从0 开始 0 ,1,2,3

方法三:字符串的{}中可以 指定名称 ,字符串在被格式化时Python解释器会按真实数据绑定的名称替换{}中的变量。

示例代码:

# 指定名称
name = '张倩'
age = 25
weight = 65
string = "姓名:{name} n 年龄:{age} n 体重:{weight}kg"
print(string.format(name=name, weight=weight, age=age))

变量传递关系图:

推荐:使用f-string格式化字符串

f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。

格式:f "{表达式}" 或者 F ‘{表达式}’

示例程序:

name = '张倩'
age = 25
print("我的名字是%s,我的年龄是%d" % (name, age))
print(f'我的名字是{name},我的年龄是{age}')

f '{表达式}' 格式化字符串是Python3.6 中新增的格式化方法,该方法相对于% 格式化字符串 和 str. format() 格式化字符串更简单易读, 且高效,推荐大家使用此方法格式化字符串。

4.3 实训案例

4.4 字符串的常见操作 字符串的查找与替换 find() 字符串查找函数

语法格式:

字符串序列.find( 子串 , 开始位置下标, 结束位置下标)

注意:开始位置和结束位置的下标可以省略,表示在整个字符串序列中查找。

示例代码如下:

my_str = "c and java and python and c++ and php"

# find()
print(my_str.find("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.find("and", 5, 30))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.find("ands"))          # 查找 字符串 my_str 中的 "ands" , 若查找到返回对应的下标,若没有查找到 返回 -1

运行程序,输出结果如下:

index()字符串查找函数

语法格式:

字符串序列. index ( 子串 , 开始位置下标, 结束位置下标)

示例代码如下:

my_str = "c and java and python and c++ and php"

# index()  字符串查找
print(my_str.index("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.index("and", 5, 30))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.index("ands"))          # 查找 字符串 my_str 中的 "ands" , 若没有查找到 报错

输出结果如下:

count()统计字符串函数

作用:返回某个子串在字符串中出现的次数。

示例代码如下:

my_str = "c and java and python and c++ and php"

# count() 计数函数
print(my_str.count("and"))           # 查找 字符串my_str中的 'and', 返回查找到的第一个'and'的首字母的下标 2
print(my_str.count("and", 5, 37))    # 查找 字符串 my_str 中 5~30 之间的 'and' , 返回下标 11
print(my_str.count("ands"))          # 查找 字符串 my_str 中的 "ands" , 若没有查找到 报错

输出结果如下:

  • rfind():和find() 功能相同,但是查找方向为右侧开始
  • rindex(): 和index() 功能相同,但时查找方向为右侧开始
  • count() : 返回某个子串在字符串中出现的 次数(计数)
replace() 字符串替换函数

语法:字符串序列.replace(旧子串, 新子串, 替换次数 )

注意:替换次数可以省略,默认为字符串序列中所有的子串出现次数
`

示例代码:

# replace() 字符串替换函数
# 语法: 字符串序列.replace(旧子串, 新子串, 替换次数 )
# 注意:替换次数可以省略,默认为字符串序列中所有的子串出现次数

# 示例代码
my_str = "c and java and python and c++ and php"
new_str1 = my_str.replace("and", "or")      # 替换字符串my_str中所有的 "and" 为 "or", 并将replace返回的新字符串赋值给new_str1
new_str2 = my_str.replace("and", "or", 1)   # 替换字符串my_str中的第一个"and" 为"or", 并将replace返回的新字符串赋值给new_str2
print(my_str)                               # 打印输出原来的字符串 
print(new_str1)
print(new_str2)

输出结果:

总 结
1、 字符串是不可变数据类型
2、数据是否可以改变划分为两大类:可变类型(列表……)和不可变类型(字符串)

字符串的分隔与拼接 split()字符串分割函数

语法: 字符串序列.split("分割字符" ,分割次数)

示例代码:

# split() 字符串分割函数. 返回一个列表,丢失分割字符
# 语法:字符串序列.split("分割字符" ,分割次数)
my_str = "c and java and python and c++ and php"

ls1 = my_str.split("and")
print(ls1)
ls2 = my_str.split("and", 3)
print(ls2)

输出结果:

join()字符串合并拼接函数

示例代码:

功能:合并拼接列表里面的字符串数据为一个大字符串

语法格式:字符或子串. join(多字符串组成的序列)

# join() --合并拼接列表里面的字符串数据为一个大字符串
my_list = ['aa', 'bb', 'cc', 'dd']
new_str = '+++'.join(my_list)
print(my_list)
print(new_str)

输出结果:

删除字符串的指定字符 strip() 字符串删除函数
  • lstrip( ) :删除字符串左侧空白字符

  • rstrip( ) :删除字符串右侧空白字符

  • strip( ) : 删除字符串两侧空白字符

示例代码:

my_str = "  this is a test! "
print(my_str)

# lstrip() -- 删除左侧空白字符
new_str1 = my_str.lstrip()
print(new_str1)

# rstrip() -- 删除右侧空白字符
new_str2 = my_str.rstrip()
print(new_str2)

# strip()
new_str3 = my_str.strip()
print(new_str3)

输出结果:

字符串大小写转换 capitalize() 和 title()字符串大小写转换函数

示例代码:

my_str = "this IS a test!"
print(my_str)

# capitalize() -- 将字符串第一个字符转换成大写

print(my_str.capitalize())

# title() -- 将字符串每个单词首字母转换成大写
print(my_str.title())

# lower() -- 将字符串中的大写转换成小写
print(my_str.lower())

# upper() -- 将字符串中的小写转换成大写
print(my_str.upper())

输出结果:

字符串对齐

语法格式: 字符串序列.ljust(长度,填充字符)

示例代码:

# just() 字符串对齐函数
# 语法格式: 字符串序列.[l,r,c]just(长度,填充字符)

my_str = " hello "
# ljust() -- 左对齐
print(my_str.ljust(10))             # 打印输出左对齐的"hello" ,空白处以空格填充

# rjust() -- 右对齐
print(my_str.rjust(10, '_'))        # 右对齐,空白处用'_' 填充

# center() -- 居中对齐
print(my_str.center(10,'_'))

输出结果:

敏感词替换 文字排版工具 4.5 实训案例


划重点
1、本人在CSDN论坛写的所有文章,仅针对本人自身做学习记录,不全面,不详细,还请见谅!如果有小伙伴需要详细解答或完整的学习资源(含视频教程), 欢迎加入我的知识星球「Naiva的知识问答社区」

2、《Python快速入门》配套视频、源代码、习题、教学课件等资源8G学习资料百度网盘下载链接>>点击这里 << ,获取密码>>点击这里<<。
3、本章示例代码>>点击这里<<

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/321518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号