- ==先导知识:==
- 学习目标
- 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格
输出结果如下:
字符串具有一种特殊的内置操作,它可以使用%进行格式化。
- 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或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。
格式:f "{表达式}" 或者 F ‘{表达式}’
示例程序:
name = '张倩'
age = 25
print("我的名字是%s,我的年龄是%d" % (name, age))
print(f'我的名字是{name},我的年龄是{age}')
4.3 实训案例f '{表达式}' 格式化字符串是Python3.6 中新增的格式化方法,该方法相对于% 格式化字符串 和 str. format() 格式化字符串更简单易读, 且高效,推荐大家使用此方法格式化字符串。
略
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(旧子串, 新子串, 替换次数 )
# 注意:替换次数可以省略,默认为字符串序列中所有的子串出现次数
# 示例代码
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("分割字符" ,分割次数)
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)
输出结果:
-
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、本章示例代码>>点击这里<<



