12月10日

#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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值