-
字符串创建
z = 'python' # 或 z = "python"
很多情况下单引号和双引号作用相同,但是一些情况还是存在微妙不同
例如:使用一对双引号(
""
)时,打印下面字符串无需转义字符(也就是\
字符)print("i don't understand")
输出结果:
i don't understand
使用一对单引号打印时,却需要添加转义字符 \
print('i don\'t understand')
输出结果:
i don't understand
如果遇到字符串偏长,一行展示不完全,需要展示为多行。一对三重单引号
'''
或三重"""
就会派上用场,它们能轻松实现跨行输入print("""雪压枝头低 虽低不着泥 一朝红日出 依旧与天齐""")
输出结果:
雪压枝头低 虽低不着泥 一朝红日出 依旧与天齐
字符串与数字
数字n
乘以字符串会克隆出n
倍个原字符串
print(3*"p y t h o n")
print("p y t h o n"*3)
输出结果:
p y t h o n p y t h o n p y t h o n
p y t h o n p y t h o n p y t h o n
10乘以字符-
会绘制出一条虚线
print(10*"-")
输出结果:
----------
2个字符串常量能直接结合,中间不用任何符号函数链接
print("py""thon")
输出结果:
python
单个字符还能与数值完成互转,内置函数ord
转换单个字符为整型
print(ord('赵'))
print(ord('钱'))
print(ord('孙'))
print(ord('李'))
输出结果:
36213
38065
23385
26446
chr
函数转换整数为单个字符
print(chr(36213))
print(chr(38065))
print(chr(23385))
print(chr(26446))
输出结果:
赵
钱
孙
李
- 字符串打印及格式化
使用 format
函数,字符串变量使用一对花括号{}
, format 参数中指定变量的取值
print("i am {0},age {1}".format("孙悟空",300))
输出结果:
i am 孙悟空,age 300
f 打印f
后面紧跟一个字符串,其中花括号{}
中直接写出变量名称
name = '孙悟空'
age = 300
print(f'i am {name}, age {age}')
输出结果:
i am 孙悟空, age 300
控制字符串打印,保留小数点后两位
print("{:.2f}".format(3.1415926))
输出结果:
3.14
控制字符串打印,带符号保留小数点后两位
print("{:+.2f}".format(-1))
输出结果:
-1.00
控制字符串打印,不带小数位
print("{:.0f}".format(3.388)) # 不带小数位
print("{:.0f}".format(3.788)) # 代码会进行四舍五入
输出结果:
3
4
控制字符串打印, 整数补零,填充左边, 宽度为3
print("{:0>3d}".format(5)) # 整数补零,填充左边, 宽度为3
输出结果:
008
控制字符串打印,以逗号分隔的数字格式
print("{:,}".format(20482048)) # 以逗号分隔的数字格式
输出结果:
20,482,048
控制字符串打印,百分比格式
print("{:.2%}".format(0.888)) # 百分比格式
输出结果:
88.80%
控制字符串打印,指数记法
print("{:.2e}".format(369369369)) # 指数记法
输出结果:
3.69e+08
- 字符串处理操作
join
串联多个字符串,注意Python中没有单个字符这种类型,单个字符在Python中也会被当作str
类型。如下连接多个字符串,最终打印出 Python
串
Chars = ['P', 'y', 't', 'h', 'o', 'n']
name = ''.join(Chars)
print(name)
输出结果:
Python
分割字符串,一般使用split
函数,第一个参数指明分割字符串使用的分割符
x ='孙悟空,猪八戒,沙悟净'.split(",")
print(x)
#split 从左面开始分割
输出结果:
['孙悟空01', '猪八戒02', '沙悟净03']
split
还有第二个参数指明需要做的分割次数,比如只做一次分割,得到如下两个元素
x ='孙悟空01,猪八戒02,沙悟净03'.split(",",1)
print(x)
#split 从左面开始分割
输出结果:
['孙悟空01', '猪八戒02,沙悟净03']
rsplit
就是从右侧开始分割字符串,某些场景rsplit
函数更好用一些
x ='孙悟空01,猪八戒02,沙悟净03'.rsplit(",",1)
print(x)
输出结果:
['孙悟空01,猪八戒02', '沙悟净03']
string.capitalize()
把字符串的第一个字符大写
chr = "f,python "
chr1 = "a,python "
chr.capitalize()
chr1.capitalize()
print(chr.capitalize())
print(chr1.capitalize())
输出结果:
F,python
A,python
string.center(width)
返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
str = "孙悟空"
str.center(20, "*")
print(str.center(20,"*"))
输出结果:
********孙悟空*********
string.startswith(obj, start=0,end=len(string))
检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果start和 end 指定值,则在指定范围内检查
str = "333333孙悟空猪八戒沙和尚88888888"
str1 = "333333孙悟空猪八戒沙和尚6666666"
print(str.startswith("8")) # 是不是以8开头 返回False
print(str.startswith("3")) # 以3开头返回True
print(str.startswith("3",0,9)) # 添加了查找范围在范围内返回True,否则返回False
输出结果:
False
True
True
str.endswith(ending[, start[, end]])
方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置
str = "唐僧,孙悟空,猪八戒,沙悟净......西游团队"
ending = "西游团队"
print(len(str)) #查看字符串长度
print (str.endswith(ending)) #打印以什么结尾,如果找到返回True
print (str.endswith(ending,0,24))# 0,24表示从0索引到最后一个索引,匹配到返回True
print (str.endswith(ending,0,20))#开始和结束位置找不到就返回False
输出结果:
True
True
False
str.find()
方法检测字符串中是否包含子字符串 str ,可选参数"start"与"end"为检索字符串的开始与结束位置
str = "唐僧,孙悟空,猪八戒,沙悟净......西游团队"
str2 = "红孩儿"
str3 = "唐僧"
str4 = "猪八戒"
str5 = "西游团队"
print (str.find(str2))
print (str.find(str3))
print (str.find(str4))
print (str.find(str5,0,3))
输出结果:
-1 #找不到红孩儿这个字符串返回-1
0 #找到字符串返回对应的索引
7 #找到字符串返回对应的索引
-1 #添加了开始和结束位置,没有找到指定的字符串返回-1
str.isalnum()
如果 str 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
str = "theshy12345567"
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
str4 = "唐僧孙悟空猪八戒沙悟净西游团队"
print("1",str.isalnum())
print("2",str1.isalnum())
print("3",str2.isalnum())
print("4",str3.isalnum())
print("5",str4.isalnum())
输出结果:
1 True #小写字母数字组合返回True
2 True #大写字母数字组合返回True
3 True #纯数字返回True
4 False# 虽然是纯数字,但是有符号和空格返回False
5 True #纯汉字也返回True
string.isalpha()
如果 str 至少有一个字符并且所有字符都是字母则返回 True
str = "theshy12345567"
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
str4 = "唐僧孙悟空猪八戒沙悟净西游团队"
str5 = "TheshyUzi"
print("1",str.isalpha())
print("2",str1.isalpha())
print("3",str2.isalpha())
print("4",str3.isalpha())
print("5",str4.isalpha())
print("6",str5.isalpha())
输出结果:
1 False
2 False
3 False
4 False
5 True #所有汉字返回True
6 True #大小写字母组合返回True
str.isdigit()
如果 str只包含数字则返回 True 否则返回 False
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
print("1",str1.isdigit())
print("2",str2.isdigit())
print("3",str3.isdigit())
输出结果:
1 False
2 True #只有纯数字才会返回True
3 False
str.islower()
如果 str中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
str1 = "theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
str4 = "tHeshy12345567"
print("1",str1.islower())
print("2",str2.islower())
print("3",str3.islower())
print("4",str4.islower())
输出结果:
1 True # 可以是字母和数字,但字母必须小写
2 False
3 False
4 False
str.isupper()
如果 str 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
str4 = "THESHY1,2,3,4"
print("1",str1.isupper())
print("2",str2.isupper())
print("3",str3.isupper())
print("4",str4.isupper())
输出结果:
1 False
2 False
3 False
4 True # 必须都是大写返回True
str.upper()
转换 str中的小写字母为大写
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "1,2 345567"
str4 = "THESHY1,2,3,4"
print("1",str1.upper())
print("2",str2.upper())
print("3",str3.upper())
print("4",str4.upper())
输出结果:
1 THESHY12345567
2 12345567
3 1,2 345567
4 THESHY1,2,3,4
str.lower()
转换 str中所有大写字符为小写
str1 = "Theshy12345567"
str2 = "12345567"
str3 = "唐僧孙悟空猪八戒沙悟净西游团队"
str4 = "THESHY1,2,3,4"
print("1",str1.lower())
print("2",str2.lower())
print("3",str3.lower())
print("4",str4.lower())
输出结果:
1 theshy12345567 #str中所有大写字符为小写
2 12345567 #数字不影响
3 唐僧孙悟空猪八戒沙悟净西游团队 #字符不影响
4 theshy1,2,3,4 #str中所有大写字符为小写
str.join(sequence)
方法用于将序列中的元素以指定的字符连接生成一个新的字符串,元组、列表、字典后,可以用 join()
来转化为字符串 # 比较实用的方法
list=['1','2','3','4','5']
list1=["孙悟空","猪八戒","沙和尚"]
print(''.join(list))
print('--'.join(list1))
输出结果:
12345
孙悟空--猪八戒--沙和尚
str.lstrip()
删除 str 左边的字符包括空格
str = "333333孙悟空猪八戒沙和尚 "
str1 = "333333孙悟空猪八戒沙和尚 "
print(str.lstrip("3"))
print(str1.lstrip())
输出结果:
孙悟空猪八戒沙和尚
333333孙悟空猪八戒沙和尚
string.rstrip()
删除 str 字符串末尾的字符包括空格
str = "333333孙悟空猪八戒沙和尚88888888"
str1 = "333333孙悟空猪八戒沙和尚6666666"
print(str.rstrip("8"))
print(str1.rstrip("6"))
输出结果:
333333孙悟空猪八戒沙和尚
333333孙悟空猪八戒沙和尚
string.swapcase()
翻转 str中的大小写
str = "THESHY,JACKLOVE"
str1 = "UZI,jacklove"
print(str.swapcase())
print(str1.swapcase())
输出结果:
theshy,jacklove
uzi,JACKLOVE
一行较长的字符串,将其转化为多行,每行只有10个字符
import textwrap
text ="神龟虽寿,犹有竟时;腾蛇乘雾,终为土灰。老骥伏枥,志在千里;烈士暮年,壮心不已。盈缩之期,不但在天;养怡之福,可得永年。幸甚至哉,歌以咏志。"
turtle = textwrap.fill(text,5)
print(turtle)
输出结果:
神龟虽寿,
犹有竟时;
腾蛇乘雾,
终为土灰。
老骥伏枥,
志在千里;
烈士暮年,
壮心不已。
盈缩之期,
不但在天;
养怡之福,
可得永年。
幸甚至哉,
歌以咏志。