python数据结构:字符串
Posted Hub-Link
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python数据结构:字符串相关的知识,希望对你有一定的参考价值。
一、字符串的格式化输出
1.1、格式化运算符
print("我跑完了第" + str(lap + 1) + "圈")
上面这段输出的代码使用了两个加号做了字符串拼接,并且将整形转换成了字符串。也可以使用一种更好的办法,格式化输出来打印这句话。
print("我跑完了第%d圈" % 1)
这里的百分号就是格式化符号,跟模运算符一样,但在不同的地方用法不一样。%d是一种占位,表示要显示在这里是一个整数
常用的占位符有以下几种
占位符 | 描述 |
---|---|
%d | 整数占位符 |
%f | 浮点数占位符 |
%.f | 指定精度的浮点数占位符 |
%s | 字符串占位符 |
%% | 输出百分号% |
如果给%d 传入一个浮点数,那它会自动将它转换成整数
print("%d" % 3.14) # 输出3
print("%d" % 3.99) # 输出3
转换成整数的规则和类型转换的规则一 样,不会四舍五入。
%f的用法有两种,一种就是直接使用,比如
print("%f" % 3.14) # 输出3.140000,后面的0是自动补齐的
## 如果我们只想要输出小数点后两位
print("%.2f" % 3.14)
print("%.2f" % 3.1415926)
即使浮点数后面的小数部 分超出了2位,也只会输出两位。如果不足两位,或者是个整数,会自动补零到两位
print("%.2f" % 3) # 3.00
print("%.2f" % 3.1) # 3.10
%s 是胜任最广泛的占位符,它可以对应任何类型的变量
print("%s" % 100) # 输出100
print("%s" % 3.14) # 输出3.14
print("%s" % "python") # 输出python
在同一个字符串可以同时使用多个占位符:
report = "%d年%s公司营收增长了百分之%.2f" % (2019, "腾讯", 20.28)
print(report)
1.2 format函数
除了%运算符外,Python还为我们提供了字符串的format函数提供丰富的格式化
如说,在输出一个 较长的数字时,根据国际惯例,每三位用逗号分隔
':,'.format(1234567890)
# 1,234,567,890
format函数也可以像%那样来格式化多个参数
report = "0年1公司营收增长了2%".format(2019, "腾讯", 20.28)
print(report)
0表示第一个参数,12表示第二、第三个参数,以此类推。这样做的好处是,如果有参数在字符串出现多次,可以不用重复的传入
二、字符串的下标和切片
字符串其实也是一种序列,可以理解为一串整齐的按顺序排着队的字符,组成了字符串,那每个字符在队伍中都有自己的位置,这个位置就是下标,又叫作索引。
比如,CHINA"这个字符串,从左往右每一个字符对应了一个下标(索引),需要特别注意的是,在 计算机编程中,所有的下标都是从0开始的,当我们要访问一个字符串的第1个字符时,使用的下标应该是0。
使用中括号加数字的方式,表示要访问的是具体哪个位置上的字符
"CHINA"[1] # 第2个字符"H"
"CHINA"[4] # 第5个字符"A"
第5个字符"A"是这个字符串的最后一个,我们也可以这样来访问
"CHINA"[-1] # 最后一个字符"A"
使用负数下标可以从右往左访问,这种写法是Python特有的,非常的快捷,对于任意长度的字符串,我们都可以使用-1来获取它的最后一个字符,注意使用负数下标是是从-1开始的,因为-0也是0,产生重复了。
切片操作也是Python的一大特色,极大简化了序列访问和操作
那如果想得到切片出整个字符串,可以有多种写法
"CHINA"[0:6] # CHINA
"CHINA"[0:] # CHINA
"CHINA"[:] # CHINA
## 事实上,前面的0也可以不写,冒号左边为空表示从第一个字符开始截取。
如果想要隔一个字符取一个,可以这样写
# 每隔两个字符截取一个
"CHINA"[::2] # CIA
第二个冒号表示截取步长,这里的2表示每两个字符取一个,如果不传,默认就是每一个都取。步长也可以为负数,如果传递了一个负数,则表示是从右往左进行截取
三、字符串函数
3.1 去除空白字符函数
所谓的空白字符,其实就是空格、换行(\\n)、制表符(\\t)等等一些看不见的特殊字符
print("A\\tB\\tC\\nD\\tE\\tF")
很多时候做判断的时候我们的字符带有空白字符那是会判断失败的
password = "123"
input_password = " 123"
print(password == input_password)
print输出为False,由于在1前面有一个空格,导致了密码校验失败,所以必须对用户的输入先进行处理
password = "123"
input_password = " 123"
print(password == input_password.strip())
我们在input_password后面加了一个函数strip(),现在输出变成了True。strip函数的作用就是去除字符 串首尾的所有空白字符
另外还有 lstrip 和 rstrip 函数,分别去除字符串左边和右边的空白字符
" abc ".lstrip() # 结果'abc '
" abc ".rstrip() # 结果' abc'
3.2 大小写操作
# 将所有字符变成大写
"china".upper() # CHINA
# 将字符串的首字母变成大写
"china".capitalize() # China
# 将所有字符变成小写
"CHINA".lower() # china
# 将每个单词的首字母变成大写
"i have a dream".title() # I Have A Dream
1.3.3 字符串判断
判断字符串是否以指定的字符串开头或者结尾
函数 | 说明 |
---|---|
startswith | 是否以指定的字符串开头 |
endswith | 是否以指定的字符串结尾 |
isdigit | 是否是一串数字 |
islower | 是否全是小写字母 |
isupper | 是否全是大写字母 |
3.4 查找与替换
查找与替换 我们可以使用find()函数
password = '123'
input_pwd = '456123789'
password in input_pwd # True
上面代码我们使用in可以判断出input_pwd中是否有password,但如果想要知道password在input_pwd中的确切位置,就需要使用find函数
input_pwd.find(password) # 结果是3
结果是3。在input_pwd中寻找password,找到了,且它的出现的位置是3,也就是第4个字符。如果没 有找到则会返回-1
除了find函数,index函数也有相同的功能,唯一的区别是 ,index函数如果没有找到相应的字符串就会报错
input_pwd.index(password) # 结果是3
# 这行代码将会在运行时报错
input_pwd.index("notexists")
count函数能够查找出指定的字符串一共出现了几次,如果没有出现,则返回0
"abba".count('a') # 2
'abba'.count('c') # 0
replace函数提供了替换字符串中某些部分的功能
"abba".replace('a', 'b') # 结果是'bbbb'
'apple banana'.replace('apple', 'orange')
# 结果是'orange banana'
3.5 字符串长度
字符串本身没有测量长度的函数,需要借助一个Python内置函数len。它不光可以测量字符串的长度,也可以测量其他所有有长度的对象
len("China") # 5
len("") # 0
len("a") # 1
r = range(10)
len(r) # 10
3.5 字符串长度
字符串本身没有测量长度的函数,需要借助一个Python内置函数len。它不光可以测量字符串的长度,也可以测量其他所有有长度的对象
len("China") # 5
len("") # 0
len("a") # 1
r = range(10)
len(r) # 10
以上是关于python数据结构:字符串的主要内容,如果未能解决你的问题,请参考以下文章