字符串内置方法与操作

字符串内置方法与操作

一、类型转换

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'在字符串里第一次出现的索引值
posted @ 2022-09-29 22:58  知了了了了  阅读(61)  评论(0)    收藏  举报