字符串内置方法与操作
字符串内置方法与操作
一、类型转换
str(转换的数据类型)
二、必须掌握的方法
1、索引取值
起始位置0开始,超出范围直接报错。
s1=(1,2,3,4,5,)
print(s1[0])
# 输出结果1,[]里为索引值
s1可以是数列、元组
print(s1[-1])
# 输出结果5,索引值支持负数,索引从末尾开始。
2、切片操作
data = 'jason'
print(data[0]) # j
print(data[-1]) # n 负数就是从最后往前取
print(data[1:3]) # as 顾头不顾尾,从索引1一直切取到索引2
print(data[-1:-3]) # 空,取值顺序错误,默认顺序是从左往右
print(data[-1:2]) # 空,[-1:2]修改为[-1:2:-1]可取值
print(data[-1:-3:-1]) # on 第三个数是控制方向的
3.修改切片方向(间隔)
print(s1[1:5:2]) # 默认是1,隔2索引
print(s1[-1:-5:-1]) #从右往左取值(索引-1,-2,-3,-4的值)
print(s1[:]) # 不写数字就默认都要,相当于[],输出s1所有的值
print(s1[2:]) # 从索引2开始往后都要
print(s1[:5]) # 从索引0开始往后要到4
print(s1[::2]) # 不写数字就默认都要,隔2索引
4、统计字符串中字符的个数
eg:
s1=(1,2,2,6,9,6)
print(len(s1)) # 计算s1的长度,输出结果为6
5、移除字符串首尾指定的字符
strip()
例如网站的验证码,输入密码时偶尔会在首尾多敲出空格,但是也能够登录成功,这就应用到了strip的内置方法
eg:
username = input('username>>>:').strip()# 括号内不写,默认移除首尾的空格
username = username.strip()
if username == 'jason':
# 因为应用了strip内置方法,所以()里首尾有空格也不影响。
print('登录成功')
6、切割字符串中指定的字符
split()
用于以什么间隔断开的内置方法,然后就可以进行分别取值。
eg:
data = 'hello|world'
print(data.split('|')) # 以|为间隔,断开
# 输出结果为['hello', 'world'] # 以列表的形式产生
当使用split()内置方法间隔开字符串的时候,字符串是以列表的形式产生的。
- 多个间隔符,想断开第一个的用法
data = 'jason|123|read'
name, pwd = data.split('|', maxsplit=1)
# maxsplit=1的意思就是从左到右最多使用一次
print(name, pwd)
# 输出结果为列表['jason', '123|read']
- 从右往左切割指定个数
res = 'jason|123|read'
print(res.rsplit('|',maxsplit=1))
# 输出结果为['jason|123', 'read'] 从右往左切指定个数
7、字符串格式化输出
- format()等价于占位符
res = 'my name is {} my age is {}'.format('jason', 123)
print(res)
# 输出结果为 my name is jason my age is 123 (format内置方法充当了%s的作用)
- format() 索引取值并支持反复使用
res = 'my name is {0} my age is {1} {0} {0} {1}'.format('jason', 123)
print(res)
# 输出结果为my name is jason my age is 123 jason jason 123
# 索引取值()内的值,并支持反复使用
- format() 支持变量名取值,可批量修改变量的数值且支持重复使用
res = 'my name is {name1} my age is {age1} {name1} {age1} {name1} '.format(name1='jason', age1=123)
print(res)
# 输出结果为 my name is jason my age is 123 jason 123 jason
# 支持变量名取值,可批量修改变量的数值
- format() 格式化输出更简洁,推荐使用
name = input('username>>>:')
age = input('age>>>:')
res = f'my name is {name} my age is {age}'
print(res)
# 输出结果:
username>>>:jj
age>>>:123
my name is jj my age is 123
# 通过format方法,可以更便捷的修改我们想要获取的数据值
三、字符串需要了解的方法
1、大小写相关
可用于网站图片验证码,不用区分大小写。
- lower() 将字符串里的字母的大写转换成小写
res = 'hElLO WorlD 666'
print(res.lower())
# 输出结果为 hello world 666
- upper() 将字符串里的字母的小写转换成大写
res = 'hElLO WorlD 666'
print(res.upper())
# 输出结果为 HELLO WORLD 666
- 判断字符串大小写
res = 'hello world'
print(res.isupper())
# 判断字符串是否是纯大写 False
res = 'hello world'
print(res.islower()) # 判断字符串是否是纯小写 True
2、判断字符串中是否是纯数字
isdigit()
res = ''
print(res.isdigit())
guess_age = input('guess_age>>>:').strip()
if guess_age.isdigit():
guess_age = int(guess_age)
else:
print('非法字符')
3、替换字符串中指定的内容
replace()
res = 'my name is jason jason jason jason jason'
print(res.replace('jason', 'tonySB'))
# my name is tonySB tonySB tonySB tonySB tonySB
()内后面内容替换前面内容
res = 'my name is jason jason jason jason jason'
print(res.replace('jason', 'tonySB', 1))
# my name is tonySB jason jason jason jason
从左往右替换指定个数内容
4、字符串的拼接
join
格式:
'间隔标识'.join(拼接在一起的字符串)
eg:
ss1 = 'hello'
ss2 = 'world'
print(ss1 + '$$$' + ss2)
# 输出结果 hello$$$world
print(ss1 * 10)
# 输出结果 hellohellohellohellohellohellohellohellohellohello
print('|'.join(['jason', '123', 'read', 'JDB']))
# 输出结果 jason|123|read|JDB
print('|'.join(['jason', 123]))
# 输出结果 报错,参与拼接的数据值必须都是字符串
5、统计指定字符出现的次数
count()
res = 'hello world'
print(res.count('l'))
# 输出结果为3,'l'出现3次
6、判断字符串的开头或结尾
- startswith()判断字符串的开头
res = 'jason say hello'
print(res.startswith('jason'))
# True,判断jason是否在jason say hello的开头
print(res.startswith('j'))# True
print(res.startswith('jas'))# True
print(res.startswith('a')) # False
print(res.startswith('say')) # False
- endswith()判断字符串的结尾
res = 'jason say hello'
print(res.endswith('o'))
# True,判断o是否在jason say hello的结尾
print(res.endswith('llo'))# True
print(res.endswith('hello'))# True
7、其他方法补充
- title() 每个单词首字母大写
title()
res = 'helLO wORld hELlo worLD'
print(res.title())
# Hello World Hello World,使用title()把字符串变成每个单词首字母大写
- capitalize() 第一个字母大写
res = 'helLO wORld hELlo worLD'
print(res.capitalize())
# Hello world hello world,首字母大写,其余小写
- swapcase() 小写变大写,大写变小写
res = 'helLO wORld hELlo worLD'
print(res.swapcase())
# HELlo WorLD HelLO WORld,小写变大写,大写变小写
- index() 和find()
res = 'helLO wORld hELlo worLD'
print(res.index('O'))
print(res.find('O'))
#找到o,输出索引值;index找不到直接报错,find找不到默认返回-1
print(res.find('LO'))
#输出结果 3 ,'LO'在字符串里第一次出现的索引值