PY基础之字符串类型内置方法

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。

原文地址:https://www.cnblogs.com/dadazunzhe/p/11290722.html