dadazunzhe

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

用途:

描述性质的东西,如人的名字、单个爱好、地址、国家等

定义:

使用\'\'、""、\'\'\'\'\'\'、""""""包裹的的一串字符

  • u\'unicode\': unicode编码的字符串
  • b\'101\': 二进制编码的字符串
  • r\'\n\': 原生字符串,也就是说\'\n\'这是普通的两个字符,并没有换行的意思

常用操作+内置方法

重要

按索引取值,切片(只可取不可改变,顾头不顾尾)

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

# 针对\t,只对\t起作用
s2 = \'a\ta\'
print(s2)
print(s2.expandtabs(8))  # 针对\t而言
\'\'\'
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。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-09-28
  • 2022-12-23
  • 2021-10-03
  • 2022-02-28
  • 2021-10-19
  • 2021-06-13
  • 2022-12-23
猜你喜欢
  • 2021-08-30
  • 2022-12-23
  • 2023-02-20
相关资源
相似解决方案