Python字符串处理
Python字符串处理
1.1 提取字符串数据
Python不支持单字符类型,单字符在 Python 中也是作为一个字符串使用,Python可以使用方括号来截取指定位置的字符串,示例:
#!/usr/bin/python3 str = "欢迎学习Python编程语言" print("str[1]=",str[1]) #取出字符串里的第一个数据 print("str[2:4]=",str[2:4]) #取出字符串里2~4位置的数据 print("str[4:10]=",str[4:10]) #取出4~10之间的数据 输出结果: str[1]= 迎 str[2:4]= 学习 str[4:10]= Python |
1.2 字符串拼接
Python支持截取目标字符串的一部分并与其他字符串拼接,示例:
#!/usr/bin/python3 str = "欢迎学习Python编程语言" str = str[:4] +"Linux" str = str + "驱动开发" print(str) 输出结果: 欢迎学习Linux驱动开发 |
1.3 Python字符串%格式化输出
在许多编程语言中都包含有格式化字符串的功能,比如C语言中的格式化输入输出。Python中内置有对字符串进行格式化的操作% 。
格式化字符串时,Python使用一个字符串作为模板,模板中有格式符,这些格式符为真实值预留位置,并说明真实数值应该呈现的格式。
#!/usr/bin/python3 print("My name is %s" % ("xiaolong")) print("我每天%d点下班,每天晚上去%s跑步!" % (20,"秋水广场")) 输出结果: My name is xiaolong 我每天20点下班,每天晚上去秋水广场跑步! |
上面代码里的%代表了格式化操作。
python字符串格式化符号:
符号 |
描述 |
%c |
格式化字符及其ASCII码 |
%s |
格式化字符串 |
%d |
格式化整数 |
%u |
格式化无符号整型 |
%o |
格式化无符号八进制数 |
%x |
格式化无符号十六进制数 |
%X |
格式化无符号十六进制数(大写) |
%f |
格式化浮点数字,可指定小数点后的精度 |
%e |
用科学计数法格式化浮点数 |
%E |
作用同%e,用科学计数法格式化浮点数 |
%g |
%f和%e的简写 |
%G |
%f 和 %E 的简写 |
%p |
用十六进制数格式化变量的地址 |
格式化操作符辅助指令:
符号 |
功能 |
m.n |
m 是显示的最小总宽度,n 是小数点后的位数。m和n可以使用*号代替,使用后面的参数替换 #*号代替宽度,可以使用后面数据替换 print("My name is %*s" % (10,"xiaolong")) #直接设置输出宽度为10 print("My name is %10s" % ("xiaolong")) #精确小数点为4位,输出宽度为10,*代替,可以使用后面数据替换 print("float类型的数据:%*.*f" % (10,4,12.34)) #精确小数点为4位,输出宽度为10 print("float类型的数据:%10.4f" % (12.34)) 输出结果: My name is xiaolong My name is xiaolong float类型的数据: 12.3400 float类型的数据: 12.3400 |
- |
实现数据左对齐 print("%10d %d" % (100,200)) #没有左对齐 print("%-10d %d" % (100,200)) #设置左对齐 输出结果: 100 200 100 200 |
+ |
在正数前面显示加号( + ) print("%d" % (100)) print("%+d" % (100)) print("%+d" % (-100)) 输出结果: 100 +100 -100 |
# |
在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') print("%#X" % (0x64)) print("%#X" % (100)) print("%#o" % (100)) 输出结果: 0X64 0X64 0o144 |
0 |
表示使用0填充左侧多余空格部分。仅对数值起效, 不能和-一起用 print("%010d" % (100)) 输出结果: 0000000100 |
% |
'%%'输出一个单一的'%' print("%d%%" % (99)) 输出结果: 99% |
(var) |
映射变量(字典参数) print("%(a)s=%(b)d" % {'a':"data",'b':88}) 输出结果: data=88 |
1.4 f-string方法格式化字符串(python3.6)
f-string是python3.6加入标准库的,称为"格式化字符串文字",是新的格式化字符串的语法。
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去。
(1) f-string 格式化字符串使用示例
str=f"{10*100+123}" #填入表达式进行计算 print(str) data="xiaolong" str=f"My name is {data}" #替换变量 print(str) 输出结果: 1123 My name is xiaolong |
(2) 大写F也可以
str=F"{10*100+123}" #大写F也可以 print(str) |
(3) f不用放在多行字符串的每一行的前面也可以
version="3.8.0" str=(f"What's your name?\n" #如果变量在第一行会替换 "My name is Python\n" "我最新的版本是:{version}") #变量在第一行之后,不会被替换,会原样输出 print(str) 输出结果: hat's your name? My name is Python{version} 我最新的版本是:{version} |
(4) 使用""" 三引号包含多行字符串
version="3.8.0" str=f""" What's your name? My name is Python 我最新的版本是:{version} """ print(str) 输出结果: What's your name? My name is Python 我最新的版本是:3.8.0 |
(5) 为了使字符串出现大括号,必须使用双大括号
version="3.8.0" str=f""" 我的版本号:{{version}} """ print(str) 输出结果: 我的版本号:{version} |
1.5 使用=号来拼接运算表达式与结果(python3.8)
在python3.6版本中增加了f-strings,可以使用f前缀更方便的格式化字符串,同时还能进行计算。
在3.8版本中只需要增加一个=符号,就可以拼接运算表达式与结果。
示例:
#!/usr/bin/python3 data1=10 data2=20 str=f"{data1+data2+100}" #python3.6版本 print(str) str=f"{data1+data2+100=}" #python3.8版本 print(str) //输出结果 130 data1+data2+100=130 |
- 点赞
- 收藏
- 关注作者
评论(0)