字符串是不可变序列
1.字符串级联
>>> str='1''2'
>>> str
'12'
2.常用的判断方法
>>> str2 = "123一二三"
>>> str2.isdigit() #判断是否全为数字
False
>>> str2.isnumeric() #判断是否全为数字(包含中文)
True
>>> str3 = "12abc"
>>> str3.isdigit()
False
>>> str3.isnumeric()
False
>>>
>>> str3.isalnum() #判断是否全为数字字母
True
>>> str4 = "The One"
>>> str4.istitle() #是否为标题格式(字符串中的单词 第一个字符大写,其他全为小写)
True
>>> str4 = "he One"
>>> str4.istitle()
False
>>> str4.isalpha() #是否全为字母
False
>>> str3.isalpha()
False
>>> str4.isupper() #是否全为大写
False
>>> str5 = "ABC"
>>> str5.isupper()
True
>>> str1 = "1abc"
>>> str1.isidentifier() #判断是否为合法标识符,但是不能判断关键字
False
>>> "1abc".isidentifier()
False
>>> "True".isidentifier()
True
>>> True = 10
File "<stdin>", line 1
SyntaxError: can't assign to keyword
>>> "if".isidentifier()
True
>>> str6 = "abc"
>>> str6.islower() #判断是否全为小写
True
>>> str7 = "helloabc xx zz"
>>> str7.startswith("hell") #判断字符串以xx开头,可以指定搜索范围
True
>>> str7.startswith("h")
True
>>> str7.startswith("ha")
False
>>> str7.startswith("abc",5)
True
>>> str7.startswith("abc",5,7)
False
>>> str7.endswith("zz") #判断以xx结束,也可以指定搜索范围
True
3.查找统计类
1、长度统计 len
>>> len(str7)
14
2、统计某个字符出现次数 count
>>> str7
'helloabc xx zz'
>>> str7.count("l")
2
>>> str7.count("ll")
1
3、查找某个子串第一次出现的下标位置 – index
如果没有就报错
>>> str7.index("l")
2
>>> str7.index("a")
5
>>> str7.index("y")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
4、find 返回第一次出现的下标,没有找到就返回-1
>>> str7.find("x")
9
>>> str7.find("y")
-1
4.字符串转换类
>>> str8 = "AbDDCfg"
>>> str8.upper() #转换成大写
'ABDDCFG'
>>> str8.lower() #转换成小写
'abddcfg'
>>> str8.title() #单词首字母大写
'Abddcfg'
>>> str8.swapcase() #大小写互换
'aBddcFG'
>>> str10 = "a#bcd#e"
>>> str10.split("#") #切割字符串
['a', 'bcd', 'e']
>>> lst1 = ["x","yy","z"]
>>> "@".join(lst1) #拼接字符串
'x@yy@z'
>>> "".join(lst1)
'xyyz'
>>> str1 = " abc "
>>> str1.strip()
'abc'
>>> str2 = "xxabcxx"
>>> str2.strip("xx") #去除收尾字符串,默认是空白
'abc'
5.字符串格式化
1、%
将格式符和实体对应起来
基本格式:
%s %+s
基本格式
%[(name)][flags][width].[precision]typecode
- (name):命名
- flags: +,-,’ ‘或0。+表示正数的加号;-表示左对齐;’ '为一个空格,表示在正数的左侧填充一个空
格,从而与负数对齐,0表示使用0填充。 - width表示显示宽度
- precision表示小数点后精度
typecode
s 字符串
d 十进制数
f 浮点数
x 十六进制数
%% 表示百分号本身、
format
>>> a=10
>>> b=5
>>> result=f'a:{
a},b:{
b}'
>>> result
'a:10,b:5'
name = "sc"
age = 4
print("format01 -->姓名:{},年龄:{}".format(name, age))
print("format02 -->姓名:{1},年龄:{0},{1},{1}".format(name,age))
print("format03 -->姓名:{username},年龄:{userage}".format(username=name,userage = age))
{变量:[填充字符][对齐方式 <^>][宽度][格式]}
print("format01 -->{0:*^10}".format(10,20))
print("format01 -->{1:*>10}".format(10,20))
print("format02 -->{1:*>15.2f}".format(1/3, 5.33333333))
print("format03 -->{0:b}".format(30))
#千分位格式
print("format04 -->{0:,}".format(234983745304958))