Python字符串_循环和计数_方法

一,循环和计数

下面这个程序计算了字母 a 在一个字符串中出现的次数:

$ cat b.py

#!/bin/python

word = 'banana'

count = 0

for letter in word:

    if letter == 'a':

       count = count + 1

    print(count)

$ python3 b.py

0    

1   

1

2

2

3

解释一下这个执行结果。

循环开始,第1个字母为b,执行if条件,b不等于a,故不再执行累加语句count = count + 1,直接打印count的初始值0;

循环第二次,字母为a,执行if条件,a等于a,执行累加语句count = 0 + 1,count值变为1;

循环第三次,字母为n,执行if条件,n不等于a,故不再执行累加,count值仍然是1;

循环第四次,字母为a,执行if条件,a等于a,执行累加语句count = 1 + 1,count值变为2;

第五次,第六次依次类推,最终打印的count值是3,即赋值为word的字符串中有3个字母a。

这一程序展示了另外一种计算模式,叫做计数。变量count被初始化为0,然后循环性地去找字母a,每次在字符串中找到一个a,就让count加1,当循环退出的时候,count就包含了 a 出现的总次数。

二,字符串方法

字符串提供了一些方法,这些方法能够进行很多有用的操作。方法和函数有些类似,也接收参数然后返回一个值,但语法稍微不同。

比如,upper这个方法就读取一个字符串,返回一个全部为大写字母的新字符串。

但是,与函数的 upper(word)语法不同,字符串方法的语法是 word.upper()

>>> word = 'banana'

>>> new_word = word.upper()

>>> new_word

'BANANA'

这种用点号分隔的方法表明了使用的方法名字为upper,使用这个方法的字符串的名字为word。后面括号里面是空白的,表示这个方法不接收参数。我们可以说调用了word的upper方法。

字符串还有一个方法叫find,看例子:

>>> word = 'banana'

>>> index = word.find('a')

>>> index

1

在这里我们调用了word的find方法,然后给定了我们要找的字母 a作为一个参数,输出索引值为1。

实际上,这个find方法比我们的find函数功能更通用,它不仅能查找字符,还能查找字符串:

>>> word = 'banana'

>>> word.find('na')

2

返回所查找字符串的第一个字符在‘banana’所在的索引位置。即'na'中n在字符串'banana'的索引位置是2。

默认情况下 find方法是从字符串的开头查找,不过可以给它定义第二个参数,让它从指定位置查找:

>>> word = 'banana'

>>> word.find('na', 3)

4

即从第3个索引位置查找。

另外,find 方法还能接收第三个参数,可以指定查找终止的位置:

>>> name = 'jack'

>>> name.find('a', 1, 2)

1

>>> name.find('a', 2, 4)

-1

第二个语句的搜索失败了,因为a并没有在索引2到4且不包括4的字符中间出现。搜索到指定的第三个变量作为索引的位置,但不包括该位置,这就让find方法与切片操作符相一致。

结束。

 

posted @ 2020-06-19 21:01  巴州夜雨  阅读(2063)  评论(0编辑  收藏  举报