date: 2021-06-12title: Python字符串常用操作 #标题
tags: python #标签
categories: python # 分类
字符串索引及分片
# 字符串索引是从左至右,从0开始,从右往左的话,是从-1开始。msg = '我在学习python'print(msg[2]) # 输出索引为2的字符print(msg[0:5]) # 输出索引从0到5的字符,注意这个是顾头不顾尾print(msg[0:5:2]) # 输出索引从0到5的字符,并且步长为2print(msg[1:-1]) # 输出索引从3到最后一个字符的内容print(msg[-1:-5:-1]) # 输出从最后一个到倒数第四个字符,倒数一定要加步长
输出结果如下:

upper 、lower英文字母大小写转换
msg='ASNJJ今天Njienf123'print(msg.upper()) # 英文字母都转换为大写print(msg.lower()) # 英文字母都转换为小写
输出结果如下:

startswith、endswith 判断是否以某个字符开始或结尾
msg='ASNJJ今天Njienf123'# startswith :判断是否以什么字符开头print(msg.startswith('A'))print(msg.startswith('AS'))print(msg.startswith('As'))print(msg.startswith('N',7)) # 判断索引为 7的字符是不是N# endswith:判断是否以某个字符结尾print(msg.endswith('3'))
输出结果如下:

replace 字符替换
msg = '今天是2021-05-12,今天我在学python'# 替换一次print(msg.replace('今天', '明天', 1))# 默认替换所有匹配print(msg.replace('今天', '明天'))
strip 去除指定字符
msg = '\n \txcvx去除sdfffe空格、空行测试sdfffe\n'print(msg)msg1 = msg.strip()print(msg1)msg2 = msg1.strip('sdfexcv') # 去除指定字符,只会从左往右、从右往左去匹配指定字符,中间的不会匹配print(msg2)
输出结果如下:

split 分割字符
name = '张三 李四 王五'name1 = name.split() # 默认以空格分割print(name1)name2 = '::张三:李四:王五:'name3 = name2.split(':') # 指定以冒号分割字符串print(name3)name4 = name2.split(':', 3) # 还是以冒号分割,但只分割前3个冒号print(name4)
输出结果如下:

join 拼接字符
name = ['张三', '李四', '王五'] # 列表中的值必须都是字符串name1 = ':'.join(name) # 以冒号拼接字符串print(name1)
输出结果如下:

count 判断某个字符共出现了几次
name = 'wdhjswef334mdkje'print(name.count('md'))
输出如下:

format 格式化输出
# format 用法一
name = '我叫{},今年{}岁,我在学{},我依然叫{}'.format('吕建钊', '25', 'python', '吕建钊')
print(name)
# format 用法二
name = '我叫{0},今年{1}岁,我在学{2},我依然叫{0}'.format('吕建钊', '25', 'python')
print(name)
# format 用法三
name = '我叫{name},今年{age}岁,我在学{lang},我依然叫{name}'.format(name='吕建钊', age='25', lang='python')
print(name)
输出结果如下:

新特性— f 格式化输出
优点:
- 结构更加简化
- 可以结合表达式,函数进行使用
- 效率提升很多
# 可以这样写,更直观
name = '张三'
age = 18
print(f'我叫{name},今年{age}岁。')
# 也可以使用表达式,调用字典、列表等元素
my_info = {'name': '张三', 'age': 18}
print(f'我叫{my_info.get("name")},今年{my_info.get("age")}岁。')
is 判断字符串由什么组成
name = 'tab123'
print(name.isalpha()) # 字符串是否由纯字母组成
print(name.isalnum()) # 字符串是否由字符串或数字组成
print(name.isdecimal()) # 字符串是否由纯十进制数组成
输出结果如下:

# isdecimal使用示例:
s1 = input('请输入金额:')
if s1.isdecimal():
print('你输入的金额为:', s1, '元!')
else:
print('请输入正确金额!')
