一、字符串的拼接
(1)可以使用多个字符串拼接起来(eg:’aa‘+’bb‘结果是’aabb‘), 如果+两边都是字符串,则拼接; +两边为数字则加法运算; +两边类型不同则抛出异常
(2)可以将多个字面字符串直接放到一起实现拼接(eg:‘aa’‘bb’的结果是‘aabb’)
a='sxt'+'gugo'
b='sxt''gugo'
c='gugu'
d=1314
e=c+str(d)
print(a)#sxtgugo
print(b)#sxtgugo
print(e)#gugu1314
二、字符串的复制
使用*可以实现字符串复制(eg:a='sxt'*3结果为'sxtsxtsxt')
a='kukuliqi'*3
print(a)#kukuliqikukuliqikukuliqi
三、不换行打印
在前面,我们调用print时,会自动打印一个换行符。
而有时我们并不想换行,不想自动添加换行符。
那么 我们可以自己通过参数end=”任意字符串“以此来实现末尾添加任何内容
print("Greedy",end='')
print("Greedy",end='##')
print("Greedy")#GreedyGreedy##Greedy为不换行输出
四、从控制台读取字符串
我们可以使用input()从控制台读取键盘输入的内容
五、replace实现字符串的替换
字符串是不可变的,但是,我们有时候确实需要替换某些字符。这时,只能通过创建新的字符来实现。
a="abcdefghijklmnopqrstuvwxyz"
a[3]="第"
print(a)#报错:TypeError: 'str' object does not support item assignment
六、str()实现数字转型字符串
str()可以帮助我们将其他数据类型转换为字符串, 当我们调用print()函数时,解释器自动调用了str()将非字符串的对象转成了字符串
a=str(5.22)
b=str(3.14e2)
c=str(True)
print(a)#5.20
print(b)#314.0
七、使用[]提取字符
(1)正向搜素:最左侧第一个字符是0,偏移量是-1,以此类推直到len(str)-1为止
(2)反向搜索:最右侧第一个字符,偏移量是-1,倒数第二个偏移量是-2,以此类推直到-len(str)为止
a="abcdefghijklmnopqrstuvwxyz"
print(a[0],a[1],a[len(a)-1])#从左至右,第一个为0,最后一个为25也即是len(a)-1,故输出为:a b z
print(a[26])#报错为:IndexError: string index out of range
print(a[-1],a[-2],a[-26])#z y a
八、字符串切片slice操作 切片slice操作可以让我们快速的提取子字符串。标准格式为:[起始偏移量start:终止偏移量:步长step] 以下是几个典型操作(三个量为正数的情况下):
(1)[:]提取整个字符串("abcdef"[:]结果为abcdef)
(2)[start:]从start开始到结尾("abcdef"[2:]结果为cdef)
(3)[:end]从头开始知道end-1("abcdef"[:2]结果为ab)
(4)[start:end]从start到end-1("abcdef"[2:4]结果为cd)
(5)[start:end:step]从start提取到end-1,步长是step("abcdef"[1:5:2]结果为bd)
以下为其他操作示例(三个量为负数)
(1)'abcdefghijklmnopqrstuvwxyz'[-3:]取倒数三个,该结果为xyz
(2)'abcdefghijklmnopqrstuvwxyz'[-8:-3]取倒数第八个到倒数第三个(包头不包围,)
(3)'abcdefghijklmnopqrstuvwxyz'[::-1]该步长为负,从右到左反向提取,结果为zyxwvutsrqponmlkjihgfedcba
切片操作时,起始偏移量和终止偏移量不在[0,字符串长度-1]这个范围,也不会报错。 起始偏移量小于0则会当作0,终止偏移量大于“长度-1”会被当成-1,即默认终止偏移量是最大的。
a="abcdefg"
print(a[3:50])#defg
print(a[1:10])#bcdefg
print(a[3:300])#defg
print(a[-10:-1])#abcdef
九、split()分割和join()合并
(1)split()分割可以基于指定分隔符将字符串分隔成多个子字符串(存储到列表中)。 如果不指定分隔符,则默认使用空白字符(换行符/空格/制表符)
(2)join()的作用和split()作用刚好相反,用于将一系列子字符串连接起来。
#split()分割
a="I Love You"
b=a.split("v")
print(b)#['I Lo', 'e You']
#join()合并
c=['aa','bb','cc']
d='xxxx'.join(c)
print(d)#aaxxxxbbxxxxcc
特别地: 使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。
推荐使用join函数,因为join函数在拼接字符串之前计算所有字符串的长度,然后逐一拷贝,仅新建一次对象
#测试+拼接符和join()不同的效率
import time
time1=time.time()
a=''
for i in range(10000):
a+="sxt"#split()分割
a="I Love You"
b=a.split("v")
print(b)#['I Lo', 'e You']
#join()合并
c=['aa','bb','cc']
d='xxxx'.join(c)
print(d)#aaxxxxbbxxxxcc
time2 = time.time()
print("+连接的运算时间:"+str(time2-time1))#+连接的运算时间:0.001999378204345703
time3=time.time()
li=[]
for i in range(1000000):
li.append("sxt")
b="".join(li)
time4=time.time()
print("+连接的运算时间:"+str(time4-time3))#+连接的运算时间:0.08272361755371094