day 10
1.字符串相关运算符
1)数学运算符
-
加 - 字符串1+字符串2 --将两个字符串合并成一个字符串
str1='abc' str2='123' print(str1+str2) -
乘–字符串1N、N字符串 --字符串重复N次产生一个新的字符串
print(str2*2)
2)比较运算符
-
==、!=
print('abc'=='abc') print('abc'=='acb') -
比较大小:>= <= > <
两个字符串比较大小,比较的是第一对不相等的字符的编码值的大小
应用:比较字符大小来判断字符的类型
判断是否是数字字符: ‘0’ <= x <= ‘9’
判断是否是小写字母: ‘a’ <= x <= ‘z’
判断是否是大写字母: ‘A’ <= x <= ‘Z’
判断是否是中文: '\u4e00 <= x <= ‘\u9fa5’
print('a0'>'M91023')
2.字符串相关函数
1)max 、min 、sorted
print(max('neihfeijf')) # 编码值最大的
print(sorted('jfkoejwfi')) # 按编码大小排序
2)len
len(字符串) – 统计字符串中字符的个数
3)str
str(数据) --将数据转换成字符串
a.所有的数据都可以转换成字符串
b.转换的时候直接在数据的打印值外面加引号
str(10) --> '10'
str(True) --> 'True'
str([10,20,30]) -->'[10,20,30]'
list1=[10,20,30]
print(list1)
dict={'name':"小明","age":'18'}
print(str(dict))
4)eval
eval(字符串) --将字符串的内容转换成有效代码计算结果(去掉引号获取结果)
result=eval('100')
print(result,type(result))
result=eval('[10,20,30,40]')
print(result,type(result))
result=eval('[10,20,a,40]') # -> [10,20,a,40] 报错
print(result)
a=100
result=eval('[10,20,a,40]')
print(result,type(result))
x=10
y=20
result=eval('x+y')
print(result)
list1=[10,20,30]
result=eval('list1[-1]')
print(result,type(result))
字符串的相关方法
1.center、rjust、ljust、zfill
字符串.center(宽度,填充的)
字符串.rjust(宽度,填充的) --原字符串放右边
字符串.ljust(宽度,填充的)
字符串.zfill(宽度,填充的)
如果给的长度小于原字符串的长度,结果就是原字符串
str1 = 'abcd'
result1 = str1.center(7, '0')
print(result1)
result2 = str1.rjust(7, '0')
print(result2)
result3 = str1.ljust(7, '0')
print(result3)
result4 = str1.zfill(7)
print(result4)
2.count
字符串1.count(字符串2) --统计字符串1中字符串2的个数
字符串1.count(字符串2,开始下标,结束下标) --统计字符串1中指定范围内字符串2出现的次数
范围:[开始下标,结束下标)
str1 = 'how are you? Im fine, Thank you! and you?'
result = str1.count('you')
print(result) # 3
result1 = str1.count('you', 5, -3)
print(result1) # 2
3.endswith
字符串1.endswith(字符串2) --判断字符串1是否以字符串2结尾
print('abc123'.endswith('23'))
print('abc123'.endswith('32'))
4.find、rfind、index、rindex
字符串1.find(字符串2) --获取字符串1中第一个字符串2出现的位置,子串不存在返回-1
字符串1.index(字符串2) --获取字符串1中第一个字符串2出现的位置,子串不存在报错
字符串1.find(字符串2,开始下标,结束下标)
字符串1.index(字符串2,开始下标,结束下标)
字符串1.rfind(字符串2) --获取字符串1中最后一个字符串2出现的位置
字符串1.index(字符串2) --获取字符串1中最后一个字符串2出现的位置
字符串1.rfind(字符串2,开始下标,结束下标) 子串不存在返回-1
字符串1.rindex(字符串2,开始下标,结束下标) 子串不存在报错
str1 = 'how are you? Im fine, Thank you! and you?'
result1 = str1.find('you')
result2 = str1.rfind('you')
print(result1)
print(result2)
5.
字符串1.isalnum() --判断字符串中所有的字符是否是数字、字母或中文
字符串1.isaplpha() --判断字符串中所有的字符是否是字母或中文字符串1.isdigit() --判断字符串中所有的字符是否全是数字字符(只把0~9看成数字)
字符串1.isnumeric() --判断字符串中所有的字符是否全是数字(将所有独立存在表示一个数值的符号都看成数字)字符串1.islower() --判断字符串中所有的字符是否全是小写字母
(常用!)字符.islower() --判断指定字符是否是小写字母字符串1.isupper() --判断字符串中所有的字符是否全是大写字母
(常用!)字符.isupper() --判断指定字符是否是大写字母字符串.isspace() --判断字符串中所有的字符是否都是空白字符
x = '0213一十百千壹拾899'
print(x.isdigit())
print(x.isnumeric())
6.join
字符串.join(序列) --将序列中的每一个元素通过指定的字符串连接成一个新的字符串
注意:序列中的元素必须全是字符串
list1 = ['abc', 'mn', 'xy']
abcmnxy
result = ''.join(list1)
print(result)
abc+mn+xy
result = '+'.join(list1)
print(result)
result1 = 'and'.join('xyz')
print(result1)
nums = [10, 20, 30, 40]
result = ''.join([str(x) for x in nums])
print(result)
练习:将nums中所有数字的第一位连接在一起
[10, 23, 89, 902] -> '1289' nums = [10, 23, 89, 902] result = ''.join([str(i)[0] for i in nums]) print(result)
7.lower、upper
字符串.lower() --将字符串中所有的大写字母都转换成小写字母
字符串.upper() --将字符串中所有的小写字母都转换成大写字母
字符也可以
8.strip、lstrip、rstrip
字符串.strip() --删除字符串前后的空白
字符串.lstrip() --删除字符串前面的空白
字符串.rtrip() --删除字符串后面的空白
9.maketrans、translate
1)str.maketrans(字符串1,字符串2) --让字符串1中的字符与字符串2中的字符创建一个对应的关系表
注意:字符串1的长度和字符串2的长度必须一致
例如:str.maketrans(‘abc’,‘123’) --建立一个a和1,b和2,c和3对应的关系
2)字符串.translate(字符串对应关系表) --将字符串中的字符按照字符对应关系对字符进行替换
table = str.maketrans('abc', '123')
result = 'fiefoejoiwjfwaavdabbv'.translate(table)
print(result)
week = '星期5'
table = str.maketrans('1234567', '一二三四五六天')
result = week.translate(table)
print(result)
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个字符作为切割点对字符串1进行切割
字符串格式化
name=input('输入姓名:')
age=int(input('输入年龄:'))
- 字符串格式化背景:一个字符串内容中可能有部分数据是变化的
1.字符串拼接
message=name+'今年'+str(age)+'岁'
print(message)
2.格式字符串
包含格式占位符的字符串 %(数据1,数据2,…)
格式占位符:
%s --字符串占位符(c、Java);python中可以给任何类型的数据占位
%d --整数占位符,可以给任何数字占位
%f --浮点占位符
%.nf --浮点占位符,保留N为小数
%c --字符占位符(可以填充字符或者字符编码值)
message='%s今年%d岁!' % (name,age)
print(message)
str1='%s===%d===%f====%.3f===%c' % ([10,20],23.90,34,23.74893,'a')
print(str1)
3.f-string
1)基本用法:{表达式}
在字符串的最前面加f,然后在字符串中通过{}来确定变化的部分
注意:{}中的内容可以是任何有结果的表达式,表达式的结果就是字符串填充内容
message=f'{name}今年{age}岁!'
print(message)
a,b=10,'abc'
result=f'{a*3 > 20}=={b[-1]}'
print(result)
result=f'{a*3 > 20}=={b.upper()}'
print(result)
2)加参数 – {表达式:参数}
# a.参数1
# :.Nf --控制保留N位小数
money=16890.43290
print(f'月薪{money:.2f}')
# b.参数2
# :,
money=489212
print(f'年薪:{money*12:,}')
# 逗号和小数一起用 -- :,.Nf
print(f'年薪:{money*12:,.2f}')
# c.
# :填充字符>长度(在前面填充)、 :填充字符<长度(在后面填充)
# 如果填充字符没有,用空格填充
num=5
# 2107005
study_id=f'2107{num:0>3}'
print(study_id)
print(f'您好{"abc":x<5}')
num1=19
num2=1234
print(f'{num1:>4}')
print(num2)
本文详细介绍了Python中字符串的运算符如加法、乘法、比较、函数应用,包括len、str、eval等,并涵盖字符串相关方法如center、count、endswith等,以及格式化、split、替换和切片等高级技巧。适合深入理解Python字符串处理的开发者阅读。
3万+

被折叠的 条评论
为什么被折叠?



