Python养成记

3、字符串续集

2022-03-16  本文已影响0人  魔方宫殿

上集回顾:

  1. 初识字符串:单引号('……')或双引号("……")、三引号:"""...""" 或 '''...'''
  2. 字符串拼接:拼接数字、多次重复一个字符串
  3. 大小写转换:upper()、lower()、title()、capitalize()

字符串的应用范围比较广泛,熟练使用print输出字符串也可以方便以后实际编程中调试程序,优美的输出可以更好的了解程序运行状态以及定位问题根源。所以这集还要继续发掘字符串的强大功能!接上集:
四、字符串索引
再次回到字符串本身,例如word = "Python"。如果想知道字母“y”在什么位置,或者字符串某个字母出现了多少次,某个单词出现了多少次?这就会用到字符串的索引功能。下标索引,第一个字符的索引是 0。

>>> word = "Python"
>>> word[0] #第一个字符的索引是0
'P'
>>> word[5] #第6个字符
'n'

索引还支持负数,用负数索引时,从右边开始计数:

>>> word[-1] #最后一个字符
'n'
>>> word[-6] #倒数第6个字符
'P'

查找某个字符或者字符串在什么位置,可以用index函数:

>>> word.index('y')
1
>>> word[1]
'y'
>>> word.index('h')
3
>>> word[3]
'h'
>>> word.index('a')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: substring not found

可以发现如果查找不到的话,index函数会报错。为了避免出错,我们可以用“in”或者“not in”提前判断是否能够查找的到。

>>> 'a' in word # False就是不存在,这时查找就会出错
False
>>> 'o' in word # True就代表存在,能够查找到
True
>>> 'a' not in word # not in 正好相反, 返回True代码不存在,此时查找会出错
True
>>> 'o' not in word # not in 返回False代表存在,能够查找到,不会出错
False

当然我们也可以用find函数进行查找,find函数查找不到时不会报错,会返回“-1”代表没有找到,这个“-1”可代表在最后一位:

>>> word.find('h')
3
>>> word[3]
'h'
>>> word.find('a') #返回“-1”,代表没有查找到,不代表索引是“-1”。索引“-1”代表的是最后一位。
-1
>>> word[-1]
'n'

五、字符串切片
切片的意思就是把字符串像面包一样切成一片一片的,或者一段一段的。前面下标索引理解透彻的话,切边就会很好理解。切片就是在下标的基础上加个冒号“:”,word[x:y]就代表从索引x切到索引y。

>>> word[0:3]
'Pyt'
>>> word[:3] #冒号前面可以省略,代表从0开始
'Pyt'
>>> word[1:3]
'yt'
>>> word[3:] #冒号后面也可以省略,代表到最后一位
'hon'

切片同样也支持负数:

>>> word[-5:-1]
'ytho'
>>> word[:-1] #冒号前面可以省略,代表从0开始
'Pytho'
>>> word[-5:] #冒号后面也可以省略,代表到最后一位
'ython'

通过切片就可以灵活地对字符串进行切割,负号可以巧妙的用在格式化时间上,比如把时分秒统一格式化成2位数显示,就可以写成:('0' + time)[-2:]。

>>> ('0' + '0')[-2:]
'00'
>>> ('0' + '3')[-2:]
'03'
>>> ('0' + '9')[-2:]
'09'
>>> ('0' + '19')[-2:]
'19'

五、字符串替换

replace替换函数

示例:

>>> word = 'Python'
>>> word.replace('P', 'p')
'python'
>>> word = 'aaaaaaaaaaa'
>>> word.replace('a', 'b')
'bbbbbbbbbbb'
>>> word.replace('a', 'b', 3) #最后一位数字可以控制替换次数
'bbbaaaaaaaa'

本集技能总结:

  1. 字符串下标索引
  2. 字符串切片,负数索引的妙用
  3. 字符串替换replace

下集见!

上一篇下一篇

猜你喜欢

热点阅读