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

結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM