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方法与切片操作符相一致。
结束。