一、按照索引取值(正向取/反向取):只能取,不能按照索引改变值的操作
msg='Hello World!'
# 正向取
print(msg[0])
# 反向取
print(msg[-1])
二、切片:从一个大的字符串中复制出一个子字符串(顾头不顾尾)
msg='Hello World!'
res=msg[0:5] #顾头不顾尾
print(res)
print(msg)
# 步长
msg = 'Hello World!'
res=msg[0:5:2] #顾头不顾尾,0是起始位置可以取到,5是结束位置,不能取到,步长为2
print(res)
print(msg)
# 反向步长 ,可用于翻转字符串
res=msg[5:0:-1] #顾头不顾尾,5是起始位置可以取到,0是结束位置,不能取到,步长为-1是反向取值
print(res)
# 反转字符串
res=msg[::-1]
print(res)
# 复制字符串
res=msg[:]
print(res)
三、成员运算,in和not in使用
print('llo' in 'Hello World!')
print('llo' not in 'Hello World!')
print(not 'llo' in 'Hello World!') # 不推荐使用
四、移除字符串中左右两侧字符
msg=' dsf '
print(msg)
print(msg.strip())
msg='123fsakfoeprj2121'
print(msg.strip('123fsakfj'))
应用:
username='alice'
pwd='123'
inp_username=input('please input your username >> ').strip()
inp_pwd=input('please input your password >> ')
if inp_username == username and inp_pwd == pwd :
print('登录成功!!!!')
else:
print('账号或密码错误,请重新输入!')
### split()切分字符串,默认分隔符是空格,也可指定分隔符
str='syp 18 female'
res=str.split()
print(res)
五、split()切分字符串,默认分隔符是空格,也可指定分隔符
str='alice 18 female'
res=str.split()
print(res)
# ##指定分隔符
str='alice:18:female' # split以:作为分隔符
res=str.split(':')
print(res)
# ##指定分隔次数
str='alice 18 female'
res=str.split(' ',1)
print(res)
六、循环输出字符串
str='alice 18 female'
for x in str :
print(x)
七、字符串常用方法
- strip去掉字符串两头指定字符,lstrip去掉字符串左边指定字符,rstrip去掉字符串右边指定字符
str='12432fdfeaf34321431'
print(str.strip('12345')) # fdfeaf
print(str.lstrip('12345')) # fdfeaf34321431
print(str.rstrip('12345')) # 12432fdfeaf
- lower将字符串转换成小写字符串,upper将字符串转换成大写
msg = 'AbCdEf'
print(msg.lower()) # abcdef
print(msg.upper()) # ABCDEF
- startswith字符串以什么字符开头,endswith字符串以什么字符结束
msg='alice 18 female'
print(msg.startswith('al')) # True
print(msg.endswith('le')) # True
-
format见字符串格式化输出
-
join按照某个分隔符,将元素全部为字符串的列表拼接成字符串,如果列表中有数字类型,则不能使用
l=['alice','18','female']
res=':'.join(l)
print(res) # alice:18:female
- replace替换字符串中的内容,第三个参数表示替换次数,默认是字符串中全部替换
msg='you can you up!'
print(msg.replace('you','YOU',1)) # YOU can you up!
print(msg.replace('you','YOU')) # YOU can YOU up!
- isdigit判断字符串是否由纯数字组成,不包含任何其他字符
print('123'.isdigit()) # True
print('12.3'.isdigit()) # False
应用:猜年龄
age=input('请输入年龄').strip()
if age.isdigit():
age=int(age)
if age > 18:
print('猜大了!')
elif age < 18 :
print('猜小了!')
else:
print('猜对了')
else:
print("你输入的操作有误!")
八、字符串需要了解的方法
- find、rfind、index、rindex、count
msg = 'you can you up!'
print(msg.find('an')) #find返回要查找的字符串在大字符串中第一次出现的索引
print(msg.index('an')) #index返回要查找的字符串在大字符串中第一次出现的索引
# find和index的区别在于在大字符串中找不到要查找的字符串时,find返回值位-1,而index直接抛出异常
print(msg.find('y'))
print(msg.rfind('y')) # rfind,从右往左进行查找,返回要查找的字符串在大字符串中第一次出现的索引
print(msg.rindex('y')) # rindex,从右往左进行查找,返回要查找的字符串在大字符串中第一次出现的索引
print(msg.count('y')) # count,返回要查找的字符串在大字符串中出现的次数
- center、ljust、rjust、zfill,功能与format填充类似
msg = 'alice'
print(msg.center(50, '*')) # center,居中显示字符串,共输出50位,字符串不够用其他字符来填充
print(msg.ljust(50, '*')) # ljust,居左显示字符串,共输出50位,字符串不够用其他字符来填充
print(msg.rjust(50, '*')) # rjust,居右显示字符串,共输出50位,字符串不够用其他字符来填充
print(msg.zfill(50)) # zfill,居右显示字符串,默认用0来填充
- expandtabs指定制表符宽度(空格数)
msg='msg msg\tsg'
print(msg.expandtabs(16)) # msg msg sg
- capitalize、swapcase、title
print('you can you up ,'.capitalize()) # capitalize,字符串首字母大写
print('you can you up ,'.swapcase()) # swapcase,字符串中大小写字母翻转
print('you can you up ,'.title()) # title,字符串中单词首字母大写
# You can you up ,
# YOU CAN YOU UP ,
# You Can You Up ,
- is系列
print('123fds'.isalnum()) #字符串只由字符和数字组成
print('ljioi'.isalpha()) # 字符串由字母组成
print('hello'.islower() ) # 字符串由小写字母组成
print('HELLO'.isupper()) # 字符串由大写字母组成
print('Hello World '.istitle()) # 字符串中所有单词首字母大写
print('1一卌百'.isnumeric()) # 字符串由数字字符组成
print('0123'.isdigit()) # 字符串由纯数字组成
print(' '.isspace()) # 字符串由空格组成
print('msg'.isidentifier()) #名称是否合法,python内置的关键字都是合法的