字符串是一个像元组一样的不可变的序列,所以它满足序列的常见用法包括索引,切片,拼接拷贝和一系列内置函数。它是python中的一种数据类型,用单引号 ‘ 双引号 ’‘ 或者三引号 ’‘’ 或 '''''' 来定义。
1.字符串的大小写转换和左右中间对齐
1.1大小写转换
upper() 所有字母大写
lower() 所有字母小写
casefold() 所有字母小写,其他语言也可
capitalize() 首字母大写
title() 每个单词首字母大写
swapcase() 大小写反转
1.2左右中间对齐
center(width,fillchar='') 中间对齐,width指总长度,fillchar指填充内容
ljust(width,fillchar='') 左对齐
rjust(width,fillchar='') 右对齐
zfill(width) 左边用0填充
2.字符串的查找和替换
2.1查找
count(sub [,start] ,end ] ]) 查找词sub在字符串中出现的次数,start是起始位置,end是结束位置
find(sub [,start] ,end ] ]) 从左边查找词sub在字符串中的索引下标值,不存在会显示-1
rfind(sub [,start] ,end ] ]) 从右边查找词sub在字符串中的索引下标值,-1
2.2替换
expandtabs([tabsize=8]) 将tab替换为空格,括号内是空格的数量
replace(old, new, count = -1) 将old替换为new,替换的数量为count
translate(table) 首先使用table = str.maketrans(x[,y[,z]])用y替换x,然后“字符串”.translate(table),z表示忽略z字符串
3.字符串的判断
14个方法判断,返回布尔类型的值
startswith(prefix[,start],end]]) 判断字符串的索引值从start到end,是否以prefix开头
endswith() 判断字符串的索引值从start到end,是否以prefix结束
istitle() 判断字符串是否首字母大写
isupper() 判断字符串是否全大写
isspace() 判断字符串是否全空格
isprintable() 判断字符串是否可打印
isdecimal() 判断是否是十进制
isdigit() 判断字符串,True:Unicode,byte数字,全角数字,罗马数字 False:汉字数字
isnumeric() 判断字符串,True:Unicode,全角数字,罗马数字,汉字数字False: Error:byte数字
isalpha() 判断是否为全字母
isalnum() 以上四种只要返回True他就为True
isidentifier() 判断字符串是否是合法的标识符
iskeyword() 判断字符串是否是关键词,import keyword print(keyword.iskeyword( ' if ' ))
4.字符串的截取,拆分,拼接
4.1字符串的截取
lstrip() 截去左侧的留白
rstrip() 截去右侧的留白
strip() 截去左右两侧的留白
4.2字符串的拆分
partition()从左侧以括号内的内容拆分一次(不可以规定次数)
rpartition()从右侧以括号内的内容拆分一次
split()从左侧以括号的内容全部拆分并删除该内容(可以规定次数)默认无数次
rsplit()从右侧以括号的内容全部拆分并删除改内容
splitlines()指定结果是否包含分隔符,默认不包括,splitlines(True)即包括
4.3字符串的拼接
‘ a ’.join(' b ' , ' c ' , ' d ')将a拼接进括号内的逗号位置处
bacad
print("fishc".join(["", "", ""]))
print("".join(("fishc", "fishc"))) # 速度更快,也是高手的方法
s = "fishc"
s += s
print(s) # 新手的方法,速度更慢
输出:
fishcfishc
fishcfishc
fishcfishc
5.格式化字符串
format()
year = 2010
print("我出生于{}年".format(year))
print(f"我出生于{year}年")
输出:
我出生于2010年
我出生于2010年
位置参数:在括号内写上数字0,1,2,...
关键字参数:在括号内写上关键字名称
字符串的格式化语句:
{ :}冒号左边是位置索引,右边是对齐方向,数字是宽度
print("{0:<10}和{1:>20}和{2:0=10}和{3:^20}".format(222, 333, 777, 6666666))
输出:
222 和 333和0000000777和 6666666
输入:
print("{:{fill}{align}{width}.{precision}{ty}}".
format(3.1415, fill='+', align='^',width=10, precision=3, ty='g'))
输出:
+++3.14+++
语法糖:
print("{:010}".format(-520))
print(f"{-520:010}")
-000000520
-000000520