#1.字符串相关运算符号
1)数学运算符
#+ - 字符串1+字符串2 — 将两个字符串合并成一个字符串
#* -字符串1N、N字符串 — 字符串重复N次产生一个新的字符串
str1=‘abc’
str2=‘123’
print(str1+str2) #‘abc123’
print(str*2) #‘123123’
#2)比较运算符
比较相等和比较大小
==、!=
print(’abc‘==’abc‘) #False
#比较大小:>=、<=、>、<
#两个字符串比较大小,比较的是第一对不相等的字符的编码值的大小
应用:比较字符大小来判断字符的类型
判断是否是数字字符:‘0’<=x<=‘9’
判断是否是小写字母:‘a’<=x<=‘z’
判断是否是字母:‘a’<=x<=‘z’ or ‘A’<=x<=‘Z’
判断是否是中文:’\ u4e00’<=x<=’\ u9fa5’
print(‘a0’>‘M91023’) #True
2.相关函数
1)#max 、 min 、sorted
print(max(‘ajsdihahf’))
数字比字母小
print(sorted(‘ajsdihahf’))
2)len
len(字符串) — 统计字符串中字符的个数
3)str
str(数据) — 将数据转换成字符串
#a.所有的数据都可以转换成字符串
#b.转换的时候直接在数据的打印值外面加引号
10—> ‘10’
#True—> True
list1=[10,20,30]
print(list1) #[10, 20, 30]
list1=[10,20,30]
print(str(list1)) #’[10, 20, 30]’
4)eval
eval(字符串) — 将字符串的内容转换成有效代码计算结果(去掉字符串的引号获取结果)
result=eval(‘100’)
print(result,type(result)) #100<class ‘int’>
result=eval(’[10,a,30]’) #报错!——> [10,a,30]
a=100
result=eval(’[10,a,30]’) #a没有被定义
3.字符串相关方法
1)center、rjust,ljust,zfill
字符串.center(宽度,填充字符) xabcx
字符串.rjust(宽度,填充字符) xxabc
字符串.ljust(宽度,填充字符) abcxx
字符串.zfill(宽度,填充字符) 00abc
注意:如果给的长度小于原字符串的长度,结果就是原字符串
eg:print(‘abc234’.center(3,‘0’)) #abc234
2)count
字符串1.count(字符串2) —统计字符串1中字符号2的格式
字符串1.count(字符串2,开始下标,结束下标) —统计字符串1中指定范围内字符串2出现的次数,范围:[开始下标:结束下标)
eg:
str1=‘how are you?i’m fine,thank you!and you?’
result=str1.count(‘you’)
print(result)
3.endswith
字符串1.endswith(字符串2) — 判断字符串1是否以字符串2结束
print(‘abc123’.endswith(‘23’)) #True
print(‘abc123’.endswith(‘32’)) #False
4.find 、rfind、index、rindex
字符串1.find(字符串2) — 获取字符串1中第一个字符串2出现的位置,如果字符串2不存在返回-1
字符串1.index(字符串2) — 获取字符串中第一个字符串2 出现的位置,如果字符串2不存在则报错
字符串1.isalnum() —判断字符中所有的字符是否全是数字、字母或者中文
字符串,isalpha() —判断字符中所有的字符是否全是字母或者中文
字符串.isdigit() —判断字符中所有的字符是否全是数字(只把0-9看成数字)
字符串.isnumeric() — 判断字符串中所有的字符是否全是数字字符 (将所有独立存在表示一个数值的符号都看成是数字)
字符串.islower() —判断字符中所有的字符是否全是小写字母
字符串.isupper() — 判断字符串中所有的字符是否全是大写字母
(常用!)字符.islower() — 判断字符中所有的字符是否全是小写字母
(常用!)字符.isupper( ) — 判断指定字符是否是大写字母
字符串.isspace ( ) — 判断字符串中所有的字符是否都是空白字符
6.join
字符串.join(序列) — 将序列中的元素通过指定的字符串连接成一个新的字符串
注意:序列中的元素必须是字符串
list1=[‘abc’,‘mn’,‘xy’]
result=’’.join(list1)
print(result) #‘abcmnxy’
result=’+’.join(list1)
print(result) #‘abc+mn+xy’
result=‘and’.join(‘xyz’)
print(result) #'xandyandz
nums=[10,23,89,902]’
result=’’.join([str(x) for x in nums])
print(result)
练习:将nums中所有的数字的第一位连接在一起
# [10, 23, 89, 902] -> ‘1289’
nums = [10, 23, 89, 902]
nums = [10, 23, 89, 902]
result=''.join(str(x)[0] for x in nums )
print(result)
7.lower、upper
字符串.lower() — 将字符串中所有的大写字母转换成小写字母
字符串.upper( ) — 将字符串中所有的小写字母都转换成大写字母
print(‘Kashs234–HKAM28pm’.lower())
print(‘Kashs234–HKAM28pm’.upper())
8.strip、lstrip、rstrip
字符串.strip() — 删除字符串前后的空白字符
字符串.lstrip( ) — 删除字符串前面的空白字符
字符串.rstrip( ) — 删除字符串后面的空白字符
str1=’\ t \ nabc 123 \ t \ n’
print(’—’,str1,’—’,sep=’ ')
9.maketrans 、translate
1)str.maketrans(字符串1,字符串2) — 通过字符串一中的字符与字符串二中的字符创建一个对应关系表
注意:字符串1的长度和字符串2的长度必须一致
2)字符串.translate(字符对应关系表) — 将字符串中的字符按照字符对应关系表对字符进行替换
table=str.maketrans(‘abc’,‘123’)
10.replace
字符串1.replace(字符串2,字符串3) — 把字符串1中所有的字符串2都替换成字符串3
字符串1.replace(字符串2,字符串3,N) — 将字符串1中前N个字符串2都替换成字符串3
11.split 字符串切割
字符串1.split(字符串2) —将字符串1中所有的字符串2 作为切割点,对字符串1进行切割
字符串1.split(字符串2,N) —将字符串1中前N个字符串2作为切割点对字符串1进行切割
三、字符串格式化
name=input(‘请输入姓名:’)
age=int(input(‘请输入年龄’)
xxx今年xx岁
字符串格式化背景:一个字符串内容中可能有部分数据是变化
1.字符串拼接
message=name+‘今年’+str(age)+‘岁!’
print(message)
2.格式字符串
“”"
包含格式占位符的字符串%(数据1,数据2,…)
“”"
message=’%s今年%d岁!’%(name,age)
格式占位符:%s — 字符串占位符(C\JAVA这样用);python中可以给任何类型的数据占位
%d —数字占位符,整数占位符,可以给任何数字占位
%f —浮点数占位符(默认保留6位小数)
%Nf — 浮点数占位符,保留N位小数
%c — 字符占位符(可以填充字符或者字符编码值)
str1=‘%s===%d===%.2f==%c ’ %([10,20],23.90,34.237282,97)
print(str1) #[10,20]=23=34.24==a
3.f-string
1)基本用法:{表达式}
在字符串的最前面加f,然后在字符串中通过{}来确定变化的部分
注意:{}中内容可以是任何有结果的表达式,表达式的结果就是字符串填充内容
message=f‘{name}今年{age}岁!’
print(message) #张三今年19岁
2)加参数:{表达式:参数}
a.参数1 -
:.Nf 控制保留N位小数
money=16890
print(f’月薪:{money:.2f}’)
b.参数2
:,
money=1900000
print(f ‘年薪:{money*12:,}’ ) #22,800,000
#逗号和小数一起用-:,.Nf
print(f ‘年薪:{money*12:,.2f}’ ) #22,800,000.00
c.
:填充字符>长度、:填充字符<长度
num=5
#2107005
study_id=f’2107{num:0>3} ’
print(study_id)