字符串类型
1. 作用
姓名/性别/
2. 定义方式
s = b'sdkfljl' #打印出来的bytes类型,二进制类型,01010101010001110100 #有这种二进制的定义方式,其实一点用都没有
print(s)
#\n 换行
s = 'a\na' #碰到斜杠了,计算机求清楚下一个字符和\拼接在一起会有特殊的意义
#结果:a
a
#\t 缩进4个空格
s = 'a\ta'
print=(s)
结果:a a
#\r 回退上一个打印结果,覆盖上一个打印结果
#print('\\ra',end='') #加上一个\让后面的\变得无意义
#print('\\ra',end='')
结果(双斜杠):\ra\ra
结果(单斜杠): a
s = 'a\\na'
print(s)
结果:a\na
s = r'\ra\t\na' #raw #r会让后面带斜杠的全部失效,全部变成普通字符
print(s)
结果:\ra\t\na
3.字符串内置方法(只有字符串类型才能使用)
优先掌握(今天必须得掌握)
s = 'nick handsome'
#1.索引取值
print(s[1])
#2.切片
print(s[4:0:1]) #1表示从左到右
print(s[-4::-1]) #-1表示从右到左 #不推荐掌握
print(s[4:0:-1]) #-1表示从右到左
#3.for循环
for i in s:
print(i)
#4. strip()
s1=' nick handsome '
print(s1.strip()) #去两端的空白
s2 = '***!!!nick handsome____***'
print(s2.strip('*!_ ')) #指定多个字符一起去掉,只要strip里面有的字符就全部干掉
#首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!_,再从strip里面找,有去掉,,没有停止去掉。
#5.split() 切割
print('*'*50)
s2 = '***!!!!!nick handsome----***'
print(s2.split()) #默认以空格切割字符串
print(s2.split('!')) #以!切割 sep切割符的意思
print(s2.split('!',2)) #maxsplit最大切割 2表示最大切割次数
#6. in or 或 not in
print('*' in s2) #True
print('$' not in s2) #True
print('$' in s2) #False
#7. 长度len
s2 = '***!!!!!nick handsome----***' #28
print(len(s2)) #求字符串的长度
需要掌握(一周之内掌握)
#1. lsltrip() 和 rstrip()
s2 = '***!!!!!nick handsome----***'
print(s2.lstrip('*'))
print(s2.rstrip('*'))
#2.rsplit()
print(s2.split('*'1))
print(s2.rsplit('*',1))
#3. lower&upper
s3 = 'aaabbJ'
print(s3.lower()) #全变小写
print(s3.upper()) #全变大写
#4.startswith&endswith
s3 = 'aaabbJ'
print(s3.startswith('b'))
print(s3.endswith('J'))
#5.join(用的比较多)一般和split联用 #iterable可迭代对象
s3 = 'aaabbJ'
print(s3.join(['234','234','234'])) #234aaabbJ234aaabbJ234
#以s3为间隔符,拼接列表里的每一个元素
应用:s='辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
s1 = s.split('/')
print(''.join(s1)) #辣条 薯片 汽水 泡面 火腿肠 枸杞 当归 鹿茸
#6.replace(取代的意思)
s2 = 'yongjiu handsome'
print(s2.replace('yongjiu','gebilaowang')) #gebilaowang handsome
#7.isdigit
s2 = 'aaccc'
print(s2.isdigit())#False #isdigit(纯数字)检测数字/isalpha(纯字母)检测字母
pritn(s2.isdigit()) #True
了解(能就能,不能就不能)
#find|rfind|index|rindex|count
s2 = '*****nick $ handsome******'
# 012345678910
print(s2.find('$')) #从左找,找到第一个停止,找不到返回-1
print(s2.rfind('$')) #从右找,找到就停止,找不到返回-1
print(s2.index('!')) #找不到报错
print(s2.rindex('$')) #找不到报错
#center|ljust|rjust|zfill
s2 = 'nick handsome'
print(s2.center(50,'*')) #居中
print(s2.ljust(50,'*')) #居左
print(s2.rjust(50,'*')) #居右
print(s2.zfill(50)) #填充0居右
#expandtabs(扩张)
s2 = 'a\ta'
print(s2) #aa
print(s2.expandtabs(32)) #针对\t而言
#扩张32位
#captalize|swapcase|title(只针对英文)
s2 = 'harry Potter'
print(s2.capitalize()) #首字母大写,用在段落开始
print(s2.swapcase()) #大小写互换
print(s2.title()) #所有单词首字母大写 #根据空格来区分
#is系列
4. 存一个值还是多个值
一个值
5. 有序or无序(通过有无索引判断)
有序
6. 可变or不可变(重点)
可变:值变id不变,不可哈希
不可变:值变id也变,可哈希
s2 = 'abc'
print(id(s2))
s2+='abc'
print(id(s2)) id变,不可变