day 10

本文详细介绍了Python中字符串的运算符如加法、乘法、比较、函数应用,包括len、str、eval等,并涵盖字符串相关方法如center、count、endswith等,以及格式化、split、替换和切片等高级技巧。适合深入理解Python字符串处理的开发者阅读。

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)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值