1.基
是一个字符序列(sequence)
类型是str
name = '张三'
print(name)
print(type(name))
for n in name:
print(n)
输出
张三
<class 'str'>
张
三
2.建
①第一种方法
直接用引号括起来,可以是单引号:’’,双引号:"",三引号:""""""或’’’’’’
zs = '张三'
ls = "李四"
ww = '''hello
王五'''
print(zs,ls,ww)
输出
张三 李四 hello
王五
②第二种方法
使用str()转换
score = 98.99
score_str = str(score)
print(type(score_str))
s = str([1,2,3])
print(type(s))
print(len(s))
for index,value in enumerate(s):
print(f'{index} : {value}')
输出
<class 'str'>
<class 'str'>
9
0 : [
1 : 1
2 : ,
3 :
4 : 2
5 : ,
6 :
7 : 3
8 : ]
3.增
#字符串不能被更改,但可以被拼接
name = 'zhangsan'
#name[-1] = 'm' ×
name2 = name[:-1] + 'm'
print(name2)
#同一个字符串在内存中就只有一份
name3 = 'zhangsan'
print(id(name))
print(id(name2))
print(id(name3))
输出
zhangsam
2595890233456
2595890311920
2595890233456
4.删 - 不能
5.改 - 不能
6.查
①可以通过下标来访问
shame = '真羞耻!'
print(shame[-1]) #主要是sequence都可以使用切片下标
输出
!
②子串是否存在 -成员运算符 in,not in 五大金刚都能用(list,tuple,str,set,dic)
shame = '真羞耻!'
print('可能' not in shame)
print('可能' in shame)
输出
True
False
③开头:startswith(),结尾:endswith()
shame = '真羞耻!'
print(shame.startswith('?真'))
print(shame.endswith('!'))
输出
False
True
④下标:index()
shame = '真羞耻!'
print(shame.index('羞')) #1
7.操
①格式化输出
name = 'zhangsan'
print(f'{name},你吃饭了么?') #zhangsan,你吃饭了么?
print('{name},你吃饭了么?'.format(name='lisi')) #lisi,你吃饭了么?
②拆分 split():把字符串拆分成一个列表
names = '张三,李四,王五,赵六'
print(names.split(','))
for n in names.split(','):
print(n)
输出
['张三', '李四', '王五', '赵六']
张三
李四
王五
赵六
③合并 “分隔符”.join():将元素用分隔符合并为字符串
names = ['张三','李四','王五']
print(type(names))
j_names = "-".join(names)
print(type(j_names))
print(j_names)
names2 = ('张三','李四','王五')
j_names2 = ' .. '.join(names2)
print(j_names2)
name = 'zhangsan'
h = ' hello '
print(h.join(name))
输出
<class 'list'>
<class 'str'>
张三-李四-王五
张三 .. 李四 .. 王五
z hello h hello a hello n hello g hello s hello a hello n
④查找 count()
name = '我是一个小小小小小小小鸟'
print(name.count('小')) #7
⑤改变大小写
#title()将每个首字母变成大写
zhangsan = 'zhangsan is a bad guy'
print(zhangsan.title()) #Zhangsan Is A Bad Guy
#capitalize()将整个字符串第一个字母大写
print(zhangsan.capitalize()) #Zhangsan is a bad guy
#upper() 将所有字母都大写
print(zhangsan.upper()) #ZHANGSAN IS A BAD GUY
#lower()将所有字母都小写
lisi = 'lisi IS a good GIRL'
print(lisi.lower()) #lisi is a good girl
#swapcase() 将大写变小写,将小写变大写
print(lisi.swapcase()) #LISI is A GOOD girl
#islower()判断字符串是否全部是小写
print(zhangsan.islower()) #True
#isupper()判断字符串是否全部是大写
print(zhangsan.isupper()) #False
#istitle() 判断字符串是否每个首字母是大写
print(zhangsan.istitle()) #False
⑥运算
name1 = 'zhangsan '
name2 = 'lisi '
print(name1 + name2) #zhangsan lisi
print(name2*4) #lisi lisi lisi lisi
⑦去空格
name = ' zhang san '
#去左右空格
print(name.strip()) #zhang san#
#去左空格
print(name.lstrip()) #zhang san #
#去右空格
print(name.rstrip()) # zhang san#
⑧替换replace(A,B) 把A替换为B
name = '我是一只小小小小小小小鸟'
print(name.replace('小','大'))
⑨比较
一个个字符比过去,碰到能决定大小的,就直接返回
如果一边已经用完了,另一边还有,另一边就赢了
小写字母大于大写字母,其他顺序查ASCII
print('zz'>'zhangsan') #比较到第二个字符z > h 所以为True
print('lisi'>'zhangsan')#第一个字符处,l < z 所以为False
print('lisi'>'lisi2') #前四个字符都相同,'lisi2'的长度大于'lisi' 所以为False
print('lisi' > 'LISI')
输出
True
False
False
True
8.切
切片详见这篇博客