目录
1. 作用
描述性质的东西,如人的名字、单个爱好、地址、国家等
2. 定义方式
使用''、""、''''''、""""""包裹的的一串字符
b'101': 二进制编码的字符串
r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思
s = 'sdfklsdjfk'
s = b'sdkfljl' # 打印出来的bytes类型,二进制类型,010101010100110100
# 有这种二进制的定义方式,其实一点用都没有
print(s)
#
换行
s = 'a
a' # 碰到斜杠了,计算机就清楚下一个字符和拼接在一起会有特殊的意义
print(s)
# 缩进4个空格
s = 'a a'
print(s)
#
回退上一个打印结果,覆盖上一个打印结果
print('
a',end='')
print('\ra',end='') # 加一个让后面的变得无意义
s = 'a\na'
print(s) # a
a
s = r'
a
a'
print(s) #
a
a
3. 字符串内置方法(只有字符串类型才能使用)
1. 索引取值(只可取不可改变)
s = 'nick handsome'
print(s[1])
2. 切片(顾头不顾尾,步长)
s = 'nick handsome'
print(s[4:0:1]) # 1表示从左到右
print(s[-4::-1]) # -1表示从右到左 # sdnah kcin # 不推荐掌握
print(s[4:0:-1]) # -1表示从右到左 # kci
3. for循环
s = 'nick handsome'
for i in s:
print(i)
4. 去两端空白:strip()
s1 = ' nick handsome '
print(s1.strip()) # 去两端的空白
s2 = '***!!!!!nick handsome----***'
print(s2.strip('-*!')) # nick handsome
# 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
print(s2.strip('nick')) # ***!!!!!nick handsome----***
s2.strip('*-!') # 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有停止去掉
print(s2)
5. 切割:split()
s2 = '***!!!!!nick handsome----***'
print(s2.split()) # 默认以空格切割字符串
# ['***!!!!!nick', 'handsome----***']
print(s2.split('!')) # 以!切割
# ['***', '', '', '', '', 'nick handsome----***']
print(s2.split('!', 2)) # ['***', '', '!!!nick handsome----***']
6. 成员运算 in 或 not in
s2 = '***!!!!!nick handsome----***'
print('*' in s2) # True
print('$' not in s2) # True
7. 长度:len
s2 = 'nick handsome'
print(len(s2)) # 求字符串的长度
8. lstrip()
s2 = '***!!!!!nick handsome----***'
print(s2.lstrip('*'))
9. rstrip()
print(s2.split('*', 1))
10. lower & upper
s3 = 'aaabbJ'
print(s3.lower()) # 小写
print(s3.upper()) # 大写
11. startswith & endswith
s3 = 'aaabbJ'
print(s3.startswith('b')) # 以···开头
print(s3.endswith('J')) # 以···结尾
12. join
join(用的比较多)一般和split联用
s3 = ' '
print(s3.join(['234', '234', '234'])) # 以s3为间隔符,拼接列表里的每一个元素
s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
s1 = s.split('/')
print('*'.join(s1))
lis = [1,2,'19']
print(f"':'.join(lis): {':'.join(lis)}") # 报错,数字不可和字符串拼接
13. 替换:replace
s2 = 'yongjiu handsome'
print(s2.replace('yongjiu', 'gebilaowang'))
14. isdigit(纯数字) / isalpha(纯字母)
isdigit(): 如果字符串中只包含数字,则返回True,否则返回False。
isalpha(): 如果字符串中只包含字母,则返回True,否则返回False。
s2 = '12312'
print(s2.isdigit())
s3 = 'aaac1c'
print(s3.isalpha())
15. 了解
# find|rfind|index|rindex|count
s2 = '**23423***ni234234ck $$ hand223423some******'
print(s2.find('$')) # 从左找,找到第一个停止,找不到返回-1
print(s2.rfind('$')) # 从右找,找到就停止,找不到返回-1
print(s2.index('$')) # 找不到报错
print(s2.rindex('$')) # 找不到报错
# center|ljust|rjust|zfill(默认用0填充)
s2 = 'nick handsome'
print(s2.center(50, '*')) # 居中
print(s2.ljust(50, '*')) # 居左
print(s2.rjust(50, '*')) # 居右
print(s2.zfill(50)) # 填充0居右
# expandtabs
s2 = 'a a'
print(s2)
print(s2.expandtabs(8)) # 针对 而言
# 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))