一、Python语法(续)——字符串srting
(一)字符串的表达方式
'……' 单引号
"……" 双引号
'''……''' 三单引号
"""……""" 三双引号
单引号内的双引号不算结束符
双引号内的单引号不算结束符
三引号内能包含单引号和双引号
三引号内的换行会自动转化为换行符
(二)隐式字符串字面值拼接
s = 'a' "b" '"c'"
>>>s = abc
(三)用转义序列代表特殊的字符
\' 代表一个单引号
\n代表换行
\\ 代表\
\r 代表返回光标至首行
\f 代表换页
\t 代表水平制表符
\v 代表垂直制表符
\b 退格
\0 字符串,字面值为0
\xXX xx为两位,十六进制表示的字符
\uXXXX unicode16的十六进制表示的字符
\UXXXXXXXX unicode32的十六进制表示的字符
(四)ASCII编码
码表可查询:$man ascii
常见的ASCII编码
字符
十进制
十六进制
0
48
0x30
A
65
0x41
a
97
0x61
\0
0
0x00
\n
10
0x0A
(五)Unicode编码
全世界字符统一编码
分类:Unicode16(两个字节)、Unicode32(四个字节)
(六)编码转换
字符串转字节:
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
字节转字符串:
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
转字符串函数str():
str(a[,encoding=utf-8])
(七)raw字符串(原始字符串)
格式:
r'字符串内容'
r"字符串内容"
r'''字符串内容'''
r'''''字符串内容''''''
作用:让转移符号\无效
示例:
#转义之后的
a = 'C:\newfile\test.py'
print(a)
#未转义raw字符串
a =r 'C:\newfile\test.py'
print(a)
(八)字符串的运算:
+加号运算符用于拼接字符串
+=运算符用于原字符串与右侧字符串拼接生成新的字符串
(九)字符串的比较运算:
> >= < <= == =!
格式:x>y
比较规则:
字符串x的第一个字母与字符串y的第一个字母比较,如果不相同,则直接得到比较结果,如果相同,则再取第二个子母进行比较,以此类推
比较的依据是字符的UNICODE编码值
(十)in/ not in
作用:可用于判断一个值是否在容器中,如果在则返回true,否则返回false
格式:对象 in 序列
(十一)字符串的索引 index
python的字符串是不可以改变的字符串序列
语法:字符串[整数表达式]
说明:python序列都可以用索引(index)来访问序列中的对象。Python序列的正向索引是从0开始的,第二个索引为1…以此类推。逆向索引从-1开始,以此类推。
(十二)切片slice
从字符串序列中取出相应的元素,重新组成一个字符串序列
语法:字符串[(开始索引b):(结束索引e)(:(步长s))]
注:小括号()括起的部分代表可以省略
语法说明:
①开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素,-1代表最后一个原色
②结束索引是切片的终止索引(但不包含终止点)
③步长是切片每次获取完当前元素后移动的方向和偏移量
没有步长,相当于取值完毕后向右移动一个索引的位置(默认为 1)
当步长为正整数时,取正向切片。反之亦然
示例:中心对称字符串:s[::]=s[::-1]
(十三)python3中常用的序列函数:
len(seq) 返回序列长度
max()
min()
(十四)字符串编码转换函数:
ord(c) 返回一个字符的unicode值
chr(i) 返回i这个词所对应的字符
整数转换为字符串函数:
hex(i) 将整数转换为十六进制字符串
oct(i) 将整数转换为八进制字符串
bin(i) 将整数转换为二进制字符串
(十五)字符串构造函数
str(obj=' ')将对象转换为字符串
二、python3中常用的字符串方法(method)
方法的调用语法:对象.方法名(方法传参)
说明:方法的调用同函数调用一样属于表达式
(一)字符串格式化表达式
作用:生成一定格式的字符串
运算符:%
格式:格式化字符串%参数值
或格式化字符串%(参数值1,参数值2,…)
示例:
fmt = "姓名:%s,年龄:%d" name = "张飞" age = 20 print(fmt % (name,age))
(二)占位符%和类型码之间的格式语法:
%[格式语法]类型码(d,s,f等)
格式语法:
-左对齐
+显示正负号
0补零
宽度
宽度.精度
示例1:
"%10d" % 123 # ' 123'
"%-10d"% 123 #'123 '
"%+10d"% 123 #' +123'
"%010d"% 123 #'0000000123'
"%.2f"% 3.141592654 #'3.14'
"%7.2f"% 3.141592654 #' 3.14'
示例2:
for i in range(1,21): print("%d! = %d" %(i,f(i)))
示例3:
n为一整数
fmt = "%" +str(n)+'s' #'%11s'
fmt = "%%%ds" % n #'%11s'