date: 2021-06-12title: Python字符串常用操作 #标题
tags: python #标签
categories: python # 分类

记录下python中对字符串的常见操作。

字符串索引及分片

  1. # 字符串索引是从左至右,从0开始,从右往左的话,是从-1开始。
  2. msg = '我在学习python'
  3. print(msg[2]) # 输出索引为2的字符
  4. print(msg[0:5]) # 输出索引从0到5的字符,注意这个是顾头不顾尾
  5. print(msg[0:5:2]) # 输出索引从0到5的字符,并且步长为2
  6. print(msg[1:-1]) # 输出索引从3到最后一个字符的内容
  7. print(msg[-1:-5:-1]) # 输出从最后一个到倒数第四个字符,倒数一定要加步长

输出结果如下:

python字符串常用操作 - 图1

upper 、lower英文字母大小写转换

  1. msg='ASNJJ今天Njienf123'
  2. print(msg.upper()) # 英文字母都转换为大写
  3. print(msg.lower()) # 英文字母都转换为小写

输出结果如下:

python字符串常用操作 - 图2

startswith、endswith 判断是否以某个字符开始或结尾

  1. msg='ASNJJ今天Njienf123'
  2. # startswith :判断是否以什么字符开头
  3. print(msg.startswith('A'))
  4. print(msg.startswith('AS'))
  5. print(msg.startswith('As'))
  6. print(msg.startswith('N',7)) # 判断索引为 7的字符是不是N
  7. # endswith:判断是否以某个字符结尾
  8. print(msg.endswith('3'))

输出结果如下:

python字符串常用操作 - 图3

replace 字符替换

  1. msg = '今天是2021-05-12,今天我在学python'
  2. # 替换一次
  3. print(msg.replace('今天', '明天', 1))
  4. # 默认替换所有匹配
  5. print(msg.replace('今天', '明天'))

strip 去除指定字符

  1. msg = '\n \txcvx去除sdfffe空格、空行测试sdfffe\n'
  2. print(msg)
  3. msg1 = msg.strip()
  4. print(msg1)
  5. msg2 = msg1.strip('sdfexcv') # 去除指定字符,只会从左往右、从右往左去匹配指定字符,中间的不会匹配
  6. print(msg2)

输出结果如下:

python字符串常用操作 - 图4

split 分割字符

  1. name = '张三 李四 王五'
  2. name1 = name.split() # 默认以空格分割
  3. print(name1)
  4. name2 = '::张三:李四:王五:'
  5. name3 = name2.split(':') # 指定以冒号分割字符串
  6. print(name3)
  7. name4 = name2.split(':', 3) # 还是以冒号分割,但只分割前3个冒号
  8. print(name4)

输出结果如下:

python字符串常用操作 - 图5

join 拼接字符

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

输出结果如下:

python字符串常用操作 - 图6

count 判断某个字符共出现了几次

  1. name = 'wdhjswef334mdkje'
  2. print(name.count('md'))

输出如下:

python字符串常用操作 - 图7

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)

输出结果如下:

python字符串常用操作 - 图8

新特性— 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())  # 字符串是否由纯十进制数组成

输出结果如下:

python字符串常用操作 - 图9

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