贡献者: 叶燊Leafshen; addis
字符串可以通过 string[x]
的方式进行索引、分片,也就是加一个 []
(像不像一把刀)。字符串的分片(slice)实际上可以看作是从字符串这个大面包图 1 中找出来你要吃的那片美味(复制出来一小段你要的长度),放在你的嘴里(储存在另一个地方),而不会对字符串这个源文件改动。分片获得的每个字符串可以看作是原字符串的一个副本(面包片)。
我们来看一段程序:
name = 'My name is Mike'
print(name[0])
'M'
print(name[-4])
'M'
print(name[11:14]) # 从第一个到第十四个,第十四个不包括在内
'Mik'
print(name[11:15]) # 从第一个到第十五个,第十五个不包括在内
'Mike'
print(name[5:]) #代表着从编号为5的字符到结束的字符串分片。
'me is Mike'
print(name[:5]) #从编号为0的字符开始到编号为5但不包含第5个字符
'My na'
:两边分别代表着字符串的分割从哪里开始,并到哪里结束。我们不妨列个表格表 1 来说明字符的对应关系
字符 | M | y | n | a | m | e | i | s | M | i | k | e | |||
序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |
反序 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
索引小胖猫可以快速帮你找出你爱吃的面包哟,如下代码我们来模拟手机通讯簿中的电话号码联想功能(简陋的模拟)
s = '132'
na = '1386-132-0706'
nb = '1321-282-5046'
print(s+' is at '+ str(na.find(s))+' to '+ str(na.find(s)+len(s))+' of na')
print(s+' is at '+ str(nb.find(s))+' to '+ str(nb.find(s)+len(s))+' of nb')
你会得到结果:
132 is at 5 to 8 of na
132 is at 0 to 3 of nb
这样的填空题我们屡见不鲜,当字符串中有多个这样的 “空” 需要填写的时候,我们可以使用 .format()
进行批处理,它的基本使用方法有如下几种,输入代码:
print('{} word is what she needs. '.format('This'))
print('{} word is {} she needs. '.format('This','what'))
print('{p} word is what she needs. '.format('This'))
print('{jih} word is {wul} she needs. '.format('This','what'))
print('{0} word is {1} she needs. '.format('This','what'))
print('{1} word is {0} she needs. '.format('what','This'))
所有的结果都为:
This word is what she needs.
好了,到这里你就掌握了变量和字符串的基本概念和常用方法。加油!
1. ^ 此处电话随手打的,大家不要有任何的好奇心