- 字符串的其他操作
字符串的替换
replace() :第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,该方法返回替换后得到的字符串,替换前后字符串不发生变化,第三个参数指定最大替换次数。
s=‘hello,python’
print(s.replace(‘hello’,‘Java’))
s1=‘hello,Python,Python,Python’
print(s1.replace(‘Python’,‘Java’,2))
运行→
Java,python
hello,Java,Java,Python
字符串的合并
join() :将列表或元组中的字符串合并成一个字符串。
lst=[‘hello’,‘java’,‘Python’]
print(‘|’.join(lst))
print(’ '.join(lst))
运行→
hello|java|Python
hello java Python
t=(‘hello’,‘Java’,‘Python’)
print(‘’.join(t))
helloJavaPython
print(''.join(‘python’))
python
- 字符串的比较操作
运算符:>,>=,<,<=,==,!=
比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去,直到两个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,两个字符串中的后续所有字符均不再比较。
比较原理:两个字符进行比较时,比较的是其ordinal value(原始值),调用内置函数ord()可以得到指定字符的ordinal value。相对应的是:调用内置函数chr()时指定ordinal value可以得到其对应的字符。
print(‘apple’>‘app’)
print(ord(‘a’),ord(‘b’))
print(‘apple’>‘banana’)#相当于比较97>98,结果是False
运行→
True
97 98
False
注:== :比较的是Value
is : 比较的是地址
运行→
True
True
True
True
2546078611248 2546078611248 2546078611248
-
字符串的切片
字符串是不可变类型,不能进行增、删、改操作;切片操作将产生新的对象。
运行→
hello python hello!python
1304255315248 1304255362736 1304255362864 130425536241
复习:切片的操作是左闭右开
切片[star🔚step]
运行→
ello
hlopto
leh
python -
字符串的格式化
name=‘王’
age=25
print(‘我是%s,今年%d岁’ % (name,age))#第一种用 % 占位符
print(‘我叫{0},今年{1}岁’.format(name,age)) #第二种用{}
print(f’我叫{name},今年{age}岁’)#第三中用f-string
运行→
我是王,今年25岁
我叫王,今年25岁
我叫王,今年25岁 -
宽度和精度
print(‘%d’ % 99)
print(‘hellohello’)
print(‘%10d’ % 99)#10代表的是宽度
运行→
99
hellohello
99
print(‘%f’ % 3.14159)
print(‘%.3f’ % 3.14159)#.3表示小数点后三位
print(‘%10.3f’ % 3.14159)#10表示总宽度是10;.3表示小数点后三位
运行→
3.14159
3.142
3.142
方法二 -
字符串的编码与解码
编码:将字符串转换成二进制数据(bytes)
解码:将二进制数据转换成字符串类型
s=‘天涯共此时’
#编码
print(s.encode(encoding=‘GBK’))#在GBK这种编码格式中,一个中文占两个字节
print(s.encode(encoding=‘UTF-8’))#在UTF-8编码格式中,一个中文占三个字节
运行→
b’\xcc\xec\xd1\xc4\xb9\xb2\xb4\xcb\xca\xb1’ #b’表示bytes
b’\xe5\xa4\xa9\xe6\xb6\xaf\xe5\x85\xb1\xe6\xad\xa4\xe6\x97\xb6’
#解码
byte=s.encode(encoding=‘GBK’)#编码,byte表示一个二进制数据(字节类型的数据)
print(byte.decode(encoding=‘GBK’))#解码
byte=s.encode(encoding=‘UTF-8’)
print(byte.decode(encoding=‘UTF-8’))
运行→
天涯共此时
天涯共此时