python数据类型(字符型)第五节

字符串用双引号" "或单引号' '都可以。

(一)字符串拼接

s1 = "数字:"
a = 33
b = str(a)#使用str()将数值转换成字符串
c = 55
print(s1+b)
print(a+c)
print(s1+str(a))
print(s1+a)#字符串直接拼接数值,程序报错

结果:

数字:33
88
数字:33
Traceback (most recent call last):
  File "D:/untitled/demo.py", line 296, in <module>
    print(s1+a)
TypeError: can only concatenate str (not "int") to str

(二)字符串切片

代码:

s = '0123456789987654321'
print(s[0:5])
#获取s中从索引0处到索引5处(不包含)的子串

print(s[0:-5])
#获取s中从索引0处到倒数第5个(不包含)字符串的子串

print(s[-8:-4])
#获取s中从倒数第8个字符串到倒数第4个(不包含)字符串的子串

print(s[-18:6])
#获取s中从倒数第18个字符串到索引6处(不包含)字符串的子串

print(s[::2])
#每隔一个取一个字符

print(s[::3])
#每隔两个,取一个字符

print(s[3:])
#获取s中从索引三到结束的字符串的子串

print(s[-7:])
#获取s中从倒数第七个字符到结束的子串

print(s[:7])
#获取s中从索引0处到索引7(不包含)处的子串

print(s[:-7])
#获取s中从索引0处到倒数第7处(不包含)的子串

结果:

01234
01234567899876
8765
12345
0246897531
0369741
3456789987654321
7654321
0123456
012345678998

(三)len()函数

len()函数获取字符串长度或者字节数。

代码:

b = '123我是小可爱吗?'
print(len(b))
#计算该字符的长度
print(len(b.encode()))
#将字符串进行编码后再获取它的字节数
#汉字加中文标点符号共 7 个,7*3占 21 个字节,而英文字母及数字和英文的标点符号占 3 个字节,一共占用 24个字节。
a = '不,你不是!'
print(len(a))
print(len(a.encode()))

结果:

10
24
6
18

(四)count()函数

count()函数统计字符串出现的次数。

代码:

str = '01234567890123456789'
#从指定索引处查找字符串
print(str.count('12345678',0,-2))
#从索引0处到倒数第二处(不包含)查询查询指定字符串的个数(012345678901234567中找12345678的个数)

print(str.count('1234567',0,-2))
#从索引0处到倒数第二处(不包含)查询指定字符串的个数(012345678901234567中找1234567的个数)

print(str.count('3456',3,7))
#从索引3处到索引7处(不包含)查询指定字符串的个数(3456中查询3456的个数)

print(str.count('3456',3,6))
#从索引3处到索引6处(不包含)查询指定字符串的个数(345中查询3456的个数)

print(str.count('3456',3,17))
#从索引3处到索引17处(不包含)查询指定字符串的个数(34567890123456中查询3456的个数)

print(str.count('3456',3,16))
#从索引3处到索引16处(不包含)查询指定字符串的个数(3456789012345中查询3456的个数)

print(str.count('23456',-18,-3))
#从倒数第18处到倒数第三处(不包含)查询指定字符串的个数(234567890123456中查询23456的个数)

print(str.count('23456',-18,-4))
#从倒数第18处到倒数第三处(不包含)查询指定字符串的个数(23456789012345中查询23456的个数)

结果:

1
2
1
0
2
1
2
1

五)split()函数

split()函数用于字符串分割。

代码:

str = "您好!欢迎走上码农这条不归路. 想逃? >>> 看招!hahaha"
list1 = str.split() #采用默认分隔符进行分割(默认以空格形式进行)
print(list1)
list2 = str.split('>>>') #采用多个字符进行分割
print(list2)
list3 = str.split('.') #采用.号进行分割
print(list3)
list4 = str.split(' ',4) #采用空格进行分割,并规定最多只能分割成 4 个子串
print(list4)
list5 = str.split('>') #采用 > 字符进行分割
print(list5)

结果:

['您好!欢迎走上码农这条不归路.', '想逃?', '>>>', '看招!hahaha']
['您好!欢迎走上码农这条不归路. 想逃? ', ' 看招!hahaha']
['您好!欢迎走上码农这条不归路', ' 想逃? >>> 看招!hahaha']
['您好!欢迎走上码农这条不归路.', '想逃?', '>>>', '看招!hahaha']
['您好!欢迎走上码农这条不归路. 想逃? ', '', '', ' 看招!hahaha']

(六)format()函数

format() 方法对字符串进行格式化。

代码:

#以货币形式显示
print("货币形式:{:,d}".format(1000000))
    #科学计数法表示
print("科学计数法:{:E}".format(1200.12))
    #以十六进制表示
print("100的十六进制:{:#x}".format(100))
    #输出百分比形式
print("0.01的百分比表示:{:.0%}".format(0.01))

print("货币形式输出:{:,d}".format(875638768))
print("十六进制形式输出:{:#x}".format(100))
print("科学计数法形式输出:{:E}".format(1567.786))
print("0.19的百分比表示:{:.0%}".format(0.19))

结果:

货币形式:1,000,000
科学计数法:1.200120E+03
100的十六进制:0x64
0.01的百分比表示:1%
货币形式输出:875,638,768
十六进制形式输出:0x64
科学计数法形式输出:1.567786E+03
0.19的百分比表示:19%

猜你喜欢

转载自www.cnblogs.com/abcd8833774477/p/11779894.html