python-字符串

一、 查找

find:左边第一个指定字符的索引(还是从左边开始数)
rfind:右边第一个指定字符的索引(还是从左边开始数)
index:左边第一个指定字符的索引(还是从左边开始数)
rindex:右边第一个指定字符的索引(还是从左边开始数)

s = 'xxx shi wo wer zi'
print(s.find('z'))      # 左边第一个指定字符的索引(还是从左边开始数)
print(s.rfind('i'))     # 右边第一个指定字符的索引(还是从左边开始数)
print(s.index('i'))     # 左边第一个指定字符的索引(还是从左边开始数)
print(s.rindex('i'))    # 右边第一个指定字符的索引(还是从左边开始数)

find和index的区别在于find找不到会返回-1 index找不到会报错

二、分割替换

count :统计字符串中有多少个指定字符
partition: 指定字符前会被分割成一个,指定字符分割成一个,指定字符后面分割出来了一个
splitlines: 字符串中有换行符才会分割
split :直接去掉所有指定字符,然后从指定字符位置分割开,加上 maxsplit :可以控制需要分割的指定字符数量
replace:括号里第一个字符是需要替换的字符,第二个字符是要被替换的字符,最后的数字可以控制需要替换的字符的数量

1 = 'xxx shi\n wo wer zi'
print(s1.splitlines())  # 字符串中有换行符才会分割
print(s.split('w'))     # 直接去掉所有指定字符,然后从指定字符位置分割开
print(s.split('w', maxsplit=1))  # 加上 maxsplit 可以控制需要分割的指定字符数量
print(s.replace('x', 'c'))       # 括号里第一个字符是需要替换的字符,第二个字符是要被替换的字符
print(s.replace('x', 's', 2))     # 最后的数字可以控制需要替换的字符的数量

三、对齐

center: 字符居中,后面数字是指定多少字符居中的,多余字符默认用空格填满,在数字后面是可以指定字符填充多余的字符位置
ljust: 左对齐,后面字符是是控制填充是可以指定字符填充多余的字符位置
rjust: 右对齐,后面字符是是控制填充是可以指定字符填充多余的字符位置
zfill: 将字符填充到指定长度,不足则由左边用0开始填充

s2 = 'hanhan'
print(s2.center(20))    # 字符居中,后面数字是指定多少字符居中的,多余字符默认用空格填满
print(s2.center(20, '~'))    # 在数字后面是可以指定字符填充多余的字符位置
print(s2.ljust(20, '~'))     # 左对齐,后面字符是是控制填充是可以指定字符填充多余的字符位置
print(s2.rjust(20, '!'))     # 右对齐,后面字符是是控制填充是可以指定字符填充多余的字符位置
print(s2.zfill(20))     # 将字符填充到指定长度,不足则由左边用0开始填充

四、分割

strip:除去左右俩边的空格
rstrip:除去右边指定字符
lstrip:除去左边指定字符

s3 = '!!!hanhan!!!'
print(s3.strip())       # 除去左右俩边的空格
print(s3.rstrip('!'))      # 除去右边指定字符
print(s3.lstrip('!'))   # 除去左边指定字符

五、字符串格式化

format()用法:

1、使用位置函数

msg = '大家好我是{},今年不知道有没有{}岁了'
print(msg.format('陈鹏', 20))
print('大家好我是{},今年不知道有没有{}岁了'.format('陈鹏', 20))
"""
格式: '{}'.format()   注意字符对应字符,数字对应数字
"""

2、使用关键字参数

msg = '大家好我叫{name}!今年{age}岁了'       # 关键字字符串格式化
print(msg.format(name='陈鹏', age=20))
print('大家好我叫{name}!今年{age}岁了'.format(name='陈鹏', age=20))

print('我叫{:*^5},我今年{:*<4}岁了'.format('张三丰', 59))

3、填充与格式化

"""
格式: '{:*< ^ > 5}'.format() 冒号必须要是英文冒号,<表示左对齐>表示又对齐^表示居中
后面的数字是用于指定多少字符对齐还可以设置填充符号
"""

4、精度和进制

print("长方形的宽是{:.2f}cm,高是{:.3f}cm,求长方形的面积".format(3/2, 5/3))
print('二进制{:b}'.format(10))     # 可以直接把10进制的数字转换2进制
print('八进制{:o}'.format(10))     # 可以直接把10进制的数字转换为8进制
print('十六进制{:x}'.format(10))    # 可以直接把10进制的数字转换为16进制

5、字符串变形

upper:将字符串全部大写
lower:将字符串全部小写
swapcase:将字符串大小写互换
title:将字符串当中的单词首字母大写,单词以非字母划分
capitalize:只有字符串的首字母大写
expandtabs:把制表符‘\t’转换为tab空格,tab空格默认为8个字符

s4 = 'hello Python'
print(s4.upper())   # 将字符串全部大写
print(s4.lower())   # 将字符串全部小写
print(s4.swapcase())        # 将字符串大小写互换
print(s4.title())   # 将字符串当中的单词首字母大写,单词以非字母划分
print(s4.capitalize())      # 只有字符串的首字母大写
s5 = 'hello  \tPython'
print(s5.expandtabs())      # 把制表符‘\t’转换为tab空格,tab空格默认为8个字符

isalnum:判断字符串是否是由数字和字母组成
isalpha:判断字符串是否由字母组成
isdigit:判断字符是否由纯数字组成
isupper:判断字符串是否全部大写
islower:判断字符串是否全部为小写
isspace:判断字符串是否全部为空格(即是否为空)
istitle: 判断字符串是否为标题格式(即个单词首字母大写)
startswith:False 判断字符串开头是为指定字符,也可以截取判断
endswith:True 判断字符串结尾是否为指定字符,和startswith一样可以截取判断

s6 = '10a-'
print(s6.isalnum())     # 判断字符串是否是由数字和字母组成
s7 = 'hello'
print(s7.isalpha())      # 判断字符串是否由字母组成
s8 = '1314521'
print(s8.isdigit())     # 判断字符是否由纯数字组成
s9 = 'HELLO'
print(s9.isupper())     # 判断字符串是否全部大写
s10 = 'hello'
print(s10.islower())       # 判断字符串是否全部为小写
s11 = ' '
print(s11.isspace())    # 判断字符串是否全部为空格(即是否为空)
s12 = 'Hello Python'
print(s12.istitle())        # 判断字符串是否为标题格式(即个单词首字母大写)
s13 = 'hello python'
print(s13.startswith('h', 2, 4))   # False  判断字符串开头是为指定字符,也可以截取判断
print(s13.endswith('on'))       # True   判断字符串结尾是否为指定字符,和startswith一样可以截取判断

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值