摘要:畫(huà)圈換一個(gè)說(shuō)法就是循環(huán)。就相當(dāng)于讓依次等于中的各個(gè)值。例找出以?xún)?nèi)的能夠被整除的正整數(shù)。以上做了簡(jiǎn)單分析,要實(shí)現(xiàn)流程,還需要細(xì)化一下。代碼代碼運(yùn)行結(jié)果這里僅僅列舉一個(gè)簡(jiǎn)單的例子,看官可以在這個(gè)例子基礎(chǔ)上深入打印某范圍內(nèi)的偶數(shù)奇數(shù)等。
畫(huà)圈?換一個(gè)說(shuō)法就是循環(huán)。循環(huán),是高級(jí)語(yǔ)言編程中重要的工作?,F(xiàn)實(shí)生活中,很多事情都是在循環(huán),日月更迭,斗轉(zhuǎn)星移,無(wú)不是循環(huán);王朝更迭,尋常百姓,也都是循環(huán)。
在python中,循環(huán)有一個(gè)語(yǔ)句:for語(yǔ)句。
簡(jiǎn)單的for循環(huán)例子>>> hello = "world" >>> for i in hello: ... print i ... w o r l d
上面這個(gè)for循環(huán)是怎么工作的呢?
hello這個(gè)變量引用的是"world"這個(gè)str類(lèi)型的數(shù)據(jù)
變量 i 通過(guò)hello找到它所引用的"world",然后從第一字符開(kāi)始,依次獲得該字符的引用。
當(dāng) i="w"的時(shí)候,執(zhí)行print i,打印出了字母w,結(jié)束之后循環(huán)第二次,讓 i="e",然后執(zhí)行print i,打印出字母e,如此循環(huán)下去,一直到最后一個(gè)字符被打印出來(lái),循環(huán)自動(dòng)結(jié)束
順便補(bǔ)充一個(gè)print的技巧,上面的打印結(jié)果是豎著排列,也就是每打印一個(gè)之后,就自動(dòng)換行。如果要讓打印的在一行,可以用下面的方法,在打印的后面加一個(gè)逗號(hào)(英文)
>>> for i in hello: ... print i, ... w o r l d >>> for i in hello: ... print i+",", #為了美觀,可以在每個(gè)字符后面加一個(gè)逗號(hào)分割 ... w, o, r, l, d, >>>
因?yàn)榭梢酝ㄟ^(guò)使用索引編號(hào)(偏移量)做為下表,得到某個(gè)字符。所以,還可以通過(guò)下面的循環(huán)方式實(shí)現(xiàn)上面代碼中同樣功能:
>>> for i in range(len(hello)): ... print hello[i] ... w o r l d
其工作方式是:
len(hello)得到hello引用的字符串的長(zhǎng)度,為5
range(len(hello),就是range(5),也就是[0, 1, 2, 3, 4],對(duì)應(yīng)這"world"每個(gè)字母的編號(hào),即偏移量。
for i in range(len(hello)),就相當(dāng)于for i in [0,1,2,3,4],讓i依次等于list中的各個(gè)值。當(dāng)i=0時(shí),打印hello[0],也就是第一個(gè)字符。然后順序循環(huán)下去,直到最后一個(gè)i=4為止。
以上的循環(huán)舉例中,顯示了對(duì)字str的字符依次獲取,也涉及了list,感覺(jué)不過(guò)癮呀。那好,看下面對(duì)list的循環(huán):
>>> ls_line ["Hello", "I am qiwsir", "Welcome you", ""] >>> for word in ls_line: ... print word ... Hello I am qiwsir Welcome you >>> for i in range(len(ls_line)): ... print ls_line[i] ... Hello I am qiwsir Welcome you上一個(gè)臺(tái)階
我們已經(jīng)理解了for語(yǔ)句的基本工作流程,如果寫(xiě)一個(gè)一般化的公式,可以這么表示:
for 目標(biāo) in 對(duì)象: 操作語(yǔ)句
用for語(yǔ)句來(lái)解決一個(gè)實(shí)際問(wèn)題。
例:找出100以?xún)?nèi)的能夠被3整除的正整數(shù)。
分析:這個(gè)問(wèn)題有兩個(gè)限制條件,第一是100以?xún)?nèi)的正整數(shù),根據(jù)前面所學(xué),可以用range(1,100)來(lái)實(shí)現(xiàn);第二個(gè)是要解決被3整除的問(wèn)題,假設(shè)某個(gè)正整數(shù)n,這個(gè)數(shù)如果能夠被3整除,也就是n%3(%是取余數(shù))為0.那么如何得到n呢,就是要用for循環(huán)。
以上做了簡(jiǎn)單分析,要實(shí)現(xiàn)流程,還需要細(xì)化一下。按照前面曾經(jīng)講授過(guò)的一種方法,要畫(huà)出問(wèn)題解決的流程圖。
下面寫(xiě)代碼就是按圖索驥了。
代碼:
#! /usr/bin/env python #coding:utf-8 aliquot = [] for n in range(1,100): if n%3 == 0: aliquot.append(n) print aliquot
代碼運(yùn)行結(jié)果:
[3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99]
這里僅僅列舉一個(gè)簡(jiǎn)單的例子,看官可以在這個(gè)例子基礎(chǔ)上深入:打印某范圍內(nèi)的偶數(shù)/奇數(shù)等。
如果要對(duì)list的循環(huán)進(jìn)行深入了解的,可以到我專(zhuān)門(mén)撰寫(xiě)的python and algorithm里面閱讀有關(guān)文章
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/45289.html
摘要:有的前面有空格,有的后面有空格去掉元素前后的空格這是一個(gè)有意思的內(nèi)置函數(shù),本來(lái)我們可以通過(guò)的方式得到一個(gè)的每個(gè)元素編號(hào),然后在用的方式得到該元素。 對(duì)于list,由于她的確非常非常龐雜,在python中應(yīng)用非常廣泛,所以,雖然已經(jīng)介紹完畢了基礎(chǔ)內(nèi)容,這里還要用一講深入一點(diǎn)點(diǎn),往往越深入越... list解析 先看下面的例子,這個(gè)例子是想得到1到9的每個(gè)整數(shù)的平方,并且將結(jié)果放在li...
摘要:操練一下字符串吧。它是在告訴計(jì)算機(jī),它里面包裹著的是一個(gè)字符串。連接字符串方法在中按照下面方法操作老齊教老齊教這是一種最簡(jiǎn)單連接兩個(gè)字符串的方法。請(qǐng)看官字符編碼就知道了。 如果對(duì)自然語(yǔ)言分類(lèi),有很多中分法,比如英語(yǔ)、法語(yǔ)、漢語(yǔ)等,這種分法是最常見(jiàn)的。在語(yǔ)言學(xué)里面,也有對(duì)語(yǔ)言的分類(lèi)方法,比如什么什么語(yǔ)系之類(lèi)的。我這里提出一種分法,這種分法尚未得到廣大人民群眾和研究者的廣泛認(rèn)同,但是,我相...
摘要:萊布尼茲所指的函數(shù)現(xiàn)在被稱(chēng)作可導(dǎo)函數(shù),數(shù)學(xué)家之外的普通人一般接觸到的函數(shù)即屬此類(lèi)。中文的函數(shù)一詞由清朝數(shù)學(xué)家李善蘭譯出。前面提供的維基百科中的函數(shù)詞條,里面可以做一個(gè)概覽。 函數(shù),對(duì)于人類(lèi)來(lái)講,能夠發(fā)展到這個(gè)數(shù)學(xué)思維層次,是一個(gè)飛躍??梢哉f(shuō),它的提出,直接加快了現(xiàn)代科技和社會(huì)的發(fā)展,不論是現(xiàn)代的任何科技門(mén)類(lèi),乃至于經(jīng)濟(jì)學(xué)、政治學(xué)、社會(huì)學(xué)等,都已經(jīng)普遍使用函數(shù)。 下面一段來(lái)自維基百科(...
摘要:我的決定是學(xué)人工智能,當(dāng)時(shí)對(duì)這個(gè)比較感興趣。從機(jī)器學(xué)習(xí)學(xué)到深度學(xué)習(xí)再學(xué)回機(jī)器學(xué)習(xí)。面試,成功地去公司從事機(jī)器學(xué)習(xí)深度學(xué)習(xí)方面的基礎(chǔ)工作。這個(gè)系列不僅僅以學(xué)習(xí)為目的,目的是為了達(dá)到機(jī)器學(xué)習(xí)的工作入門(mén)標(biāo)準(zhǔn)。 每個(gè)字都是經(jīng)驗(yàn)所得,都是站在一個(gè)零基礎(chǔ)的人的角度寫(xiě)的,純手打+網(wǎng)上優(yōu)秀資源整合,希望大家能每個(gè)字都認(rèn)真看。 接下來(lái)文章會(huì)側(cè)重在以下幾方面 1、零基礎(chǔ)如何進(jìn)行人工智能的自學(xué)(以找工作為目...
閱讀 1763·2021-11-24 09:39
閱讀 3313·2021-11-22 15:24
閱讀 3190·2021-10-26 09:51
閱讀 3372·2021-10-19 11:46
閱讀 2963·2019-08-30 15:44
閱讀 2298·2019-08-29 15:30
閱讀 2608·2019-08-29 15:05
閱讀 856·2019-08-29 10:55