3、字符串续集

作者: 魔方宫殿 | 来源:发表于2022-03-16 23:50 被阅读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

下集见!

相关文章

  • 3、字符串续集

    上集回顾:初识字符串:单引号('……')或双引号("……")、三引号:"""...""" 或 '''...'''字...

  • 续集3

    我曾说,明亮的四月 是你的脸颊 花瓣落在风中 又落到地面续 它们仍然有好看的清晨 让我想你

  • 持续集成之代码静态检查

    CI: Continuous Integration,持续集成。持续集成过程中涉及到与测试相关的有3个重点:代码静...

  • 思姥姥,念姥姥

    没想到,这篇续集竟然来的这么快。写这篇续集的时候,姥姥已经离开我一个礼拜了。 现在是2019年1月25日凌晨3:3...

  • 算法与数据结构练习中常犯错误4——字符串相关算法

    3.字符串 3.1 字符串压缩 3.2 字符串查找——trie树 3.3 子字符串查找 3.3.1 暴力解法 3....

  • 关于数组、字符串、对象...的相互转化

    1、JSON 字符串转换为对象 2、对象转换为JSON 字符串 3、数组转换字符串 3、字符串转换数组

  • Swift4:字符串操作,数组操作

    取前3个字符 取后3个字符 遍历字符串 插入字符串 替换字符串 字符串切片,获取interesting 字符串切片...

  • 拔智齿续集3

    写的自己都烦了,简单收场得了。 七天后,如约去医院拆线。赶上医改,原来7块钱的挂号费变成了50,幸好医保支付40,...

  • 脑洞续集3

    凭借我与他多年的相处经验,我有预感今天要发生点什么。抬头看了他一眼道:“说吧,什么事。” “我没把你照顾好,不是一...

  • 判等

    let str1 = "字符串1" let str2 = "字符串1" let str3 = "字符串3" let...

网友评论

    本文标题:3、字符串续集

    本文链接:https://www.haomeiwen.com/subject/rsbddrtx.html