PY基础之字符串类型内置方法
用途:
描述性质的东西,如人的名字、单个爱好、地址、国家等
定义:
使用''、""、''''''、""""""包裹的的一串字符
- u'unicode': unicode编码的字符串
- b'101': 二进制编码的字符串
- r' ': 原生字符串,也就是说' '这是普通的两个字符,并没有换行的意思
常用操作+内置方法
重要
按索引取值,切片(只可取不可改变,顾头不顾尾)
str = 'nick ugly'
print(str[1]) # 'i'
print(str[1:3]) # 'ic'
print(str[:4]) # 'nick'
print(str[-4:]) # 'ugly'
print(str[::-1]) # 'ylgu kcin'
print(str[1:-2]) # 'ick ug'
print(str[1:-1:2]) # ikul
长度len
取字符串长度
str = 'nick ugly'
print(len(str)) # 9
成员运算in|not in
msg = 'my name is nick, nick handsome'
print('nick' in msg) # True
print('jason' not in msg) # True
print(not 'jason' in msg) # True
移除空白strip
s1 = ' nick handsome '
print(s1.strip()) # 去两端的空白
s2 = '***!!!!!nick handsome----***'
print(s2.strip('-*!')) # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
print(s2.strip('nick')) # 指定多个字符一起去掉,只要strip里面有的字符就全部干掉
# 首先判断字符串s的两端字符,为*,再去strip里找有没有*,有就去掉,再去判断字符串s的两端字符,!-,再从strip里面找,有去掉,没有则停止
strip实例
# 给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词
s = ["Hello", "Alaska", "Dad", "Peace"]
lis = []
for i in s:
ls = i.lower()
if ls.strip('qwertyuiop') == '' or ls.strip('asdfghjkl') == '' or ls.strip('zxcvbnm') == '':
lis.append(i)
print(li
切分split
s = '***!!!!!nick handsome----***'
print(s.split()) # 默认以空格切割字符串
print(s.split('!')) # 以!切割
print(s.split('!', 2)) # 指定切割两次
循环
s = 'nick ugly'
for i in s: # for 循环遍历s
print(s)
比较重要
lstrip&rstrip
s2 = '***!!!!!nick handsome----***'
print(s2.lstrip('*'))
print(s2.rstrip('*'))
'''
!!!!!nick handsome----***
***!!!!!nick handsome----
'''
lower&upper
s3 = 'aaabbJ'
print(s3.lower()) # 大写->小写
print(s3.upper()) # 小写->大写
'''
aaabbj
AAABBJ
'''
startswith&endswith
s3 = 'aaabbJ'
print(s3.startswith('b')) # 是否以'b'开头-> False
print(s3.endswith('J')) # 是否以'J'结尾-> True
rsplit
s2 = '***!!!!!nick handsome----***'
print(s2.split('*', 1))
print(s2.rsplit('*', 1))
'''
['', '**!!!!!nick handsome----***']
['***!!!!!nick handsome----**', '']
'''
join 一般和split联用
s3 = '*'
# 以s3为间隔符,拼接列表里的每一个元素
print(s3.join(['234', '234', '234'])) # 234*234*234
s = '辣条/薯片/汽水/泡面/火腿肠/枸杞/当归/鹿茸'
s1 = s.split('/')
print('*'.join(s1)) # 辣条*薯片*汽水*泡面*火腿肠*枸杞*当归*鹿茸
replace
s2 = 'yongjiu handsome'
# 用信字符串替代旧字符串输出
print(s2.replace('yongjiu', 'gebilaowang')) # gebilaowang handsome
isdigit,isalpha
# 一般用于登陆验证输入
s2 = '12312'
print(s2.isdigit()) # 判断s2是否全为数字
s3 = 'aaac1c'
print(s3.isalpha()) # 判断s3是否全为字母
find|rfind|index|rindex|count
s = '***!!!!!nick $ handsome----***'
# find()遍历找到的第一个字符的索引,默认从左找,找不到返回-1,不会报错
print(s.find('$')) # 13
print(s.rfind('-')) # 26
# index()遍历找到的第一个字符的索引,默认从左找,找不到会报错(建议不使用)
print(s.index('$')) # 13
print(s.rindex('-')) # 26
# count()返回字符串中指定字符的个数
print(s.count('!')) # 5
center|ljust|rjust|zfill
s2 = 'nick handsome'
print(s2.center(50, '*')) # ******************nick handsome*******************
print(s2.ljust(50, '*')) # nick handsome*************************************
print(s2.rjust(50, '*')) # *************************************nick handsome
print(s2.zfill(50)) # 0000000000000000000000000000000000000nick handsome
expandtabs
# 针对 ,只对 起作用
s2 = 'a a'
print(s2)
print(s2.expandtabs(8)) # 针对 而言
'''
a a
a a
'''
captalize|swapcase|title
# 只针对英文
s2 = 'harry Potter'
print(s2.capitalize()) # 首字母(一句话的开头)大写,其他全小写,用在段落开始
print(s2.swapcase()) # 大小写互换
print(s2.title()) # 所有单词首字母大写
'''
Harry potter
HARRY pOTTER
Harry Potter
'''
is系列
.isdecim.(): # 检查字符串是否值包含十进制字符,如果是返回True,否则返回False。
.isdigit(): # 如果字符串只包含数字则返回True,否则返回False。
.isnumeric(): # 如果字符串中只包含数字字符,则返回True,否则返回False。
.isalnum(): # 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False。
.isalpha(): # 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
.islower(): # 如果字符串中只包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回True,否则返回False。
.isspace(): # 如果字符串中只包含空白,则返回True,否则返回False
.isupper(): # 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回True,# 否则返回False。
.istitle(): # 如果字符串是标题类型的(见title()),则返回True,否则返回False。