在上節(jié)課中,我們學(xué)習(xí)了變量和數(shù)據(jù)類型,這兩個知識點是編程最基礎(chǔ)的概念,相信大家應(yīng)該已經(jīng)都有了基本的掌握了,今天要學(xué)習(xí)的知識點是循環(huán),顧名思義,所謂循環(huán)就是一段代碼重復(fù)性執(zhí)行,給大家舉一個簡單的例子,游戲其實就是一個大的循環(huán),只要你沒有明確的退出,就一直在游戲中不斷的循環(huán)往復(fù),好了,接下來就正式開始課程吧。
名人堂
學(xué)習(xí)過計算機相關(guān)知識的人應(yīng)該都聽過“馮諾伊曼體系結(jié)構(gòu)”,到目前為止,我們使用的計算機依然遵循著馮諾伊曼結(jié)構(gòu)的設(shè)計,而馮諾伊曼就是今天要講述的名人,他同時被稱為計算機之父 和博弈論之父。1903年,馮諾伊曼出生于匈牙利的一個猶太家庭,他從小就表現(xiàn)出了數(shù)學(xué)和記憶方面的天才,八歲時就掌握了微積分,不到18歲,已經(jīng)被大家公認(rèn)為數(shù)學(xué)家了。 在1940年以前,馮諾伊曼主要是進(jìn)行理論性數(shù)學(xué)研究,取得了非常驕人的成就,1940年以后,他轉(zhuǎn)向應(yīng)用數(shù)學(xué),在力學(xué),經(jīng)濟學(xué),數(shù)值分析和電子計算機方面都做出了杰出的貢獻(xiàn),無愧是上世紀(jì)最偉大的全才之一。 1944年,馮諾伊曼參加原子彈的研制工作,在這個過程中,需要用到大量的計算,他們雖然雇用了一百多名計算員,但依然不能滿足需要,一個偶然的機會,他接觸到了ENIAC計算機研制工作,他敏銳的意識到了這項工作的深遠(yuǎn)意義,于是,他全力參與其中,發(fā)表了一個全新的存儲程序通用電子計算機方案——EDVAC,并起草發(fā)表了一份長達(dá)101頁的總結(jié)報告,這份報告是計算機歷史上一個劃時代的文獻(xiàn),它宣告著電子計算機的時代開始了。
知識點
今天的知識點是講循環(huán)。大家知道,計算機執(zhí)行程序的時候,是一行行代碼執(zhí)行下去的,但有些代碼可能要執(zhí)行多次,每次執(zhí)行的時候僅僅是部分變量的值不一樣,這種時候就要用到循環(huán)了,循環(huán)是改變代碼執(zhí)行順序的一種很重要的方式。下面立刻看一個例子:
當(dāng)輸入以上代碼之后,就能得到左邊的圖形,但是右邊的代碼太冗余了,最后的八行代碼都是重復(fù)的,如果我們不是畫四個圈,而是畫100 個群,那同樣的代碼要重復(fù)100次,這么寫代碼都會把手寫抽筋。在這種情況下,就需要使用循環(huán)了,改善后的代碼如下:
我們使用了For 循環(huán),把核心的兩行代碼循環(huán)了四次,這樣就能獲得與上面程序相同的結(jié)果。如果此時我們想畫6個圓圈而不是4個圓圈呢? 操作很簡單,程序簡單修改下就能得到想要的結(jié)果:
要想進(jìn)一步優(yōu)化這段程序,能夠根據(jù)用戶輸入的個數(shù)來繪制圓圈,可以這樣改造:
這代代碼執(zhí)行的時候,會首先詢問用戶需要繪制多少圓圈,當(dāng)輸入數(shù)字后,就開始啟動一個循環(huán),不停的重復(fù)執(zhí)行繪制動作。
Python 中 For 循環(huán)的語法非常簡單,在 For 循環(huán)中,有兩個關(guān)鍵字,for 和 in,變量 x 在每次循環(huán)中,會賦予序列 range()中的某一個值。此處的 range(6)可以認(rèn)為是生成了一個從0到5 的序列,大家可以在命令行中輸入以下代碼了解range 的作用:
for i in range(6):
print(i)
for 循環(huán)已經(jīng)介紹完畢,接下來介紹一下While 循環(huán)。 很多人可能會比較好奇,就一個循環(huán)的功能,為何需要兩個關(guān)鍵字呢? 接下來就看一下這兩個關(guān)鍵字的區(qū)別:
For 循環(huán)一般都是循環(huán)固定數(shù)量的次數(shù),這個次數(shù)是根據(jù) in 關(guān)鍵后面的序列個數(shù)決定的。 而 While 循環(huán)則是一個條件判斷循環(huán),也就是說,如果條件滿足的情況下,它會一直循環(huán)下去。在上圖的例子中,左邊的 For 循環(huán)會循環(huán)10次,而右邊的While 循環(huán),只要變量 name 不等于空字符串,它會一直循環(huán)下去,下面我們完整的看一個 While 循環(huán)的例子:
在上面的例子中,程序首先會提示你輸入名字,輸入任意名字后,它會循環(huán)打印100次,然后再次提示你輸入名字,如果想要結(jié)束,直接按 "Enter" 鍵,這樣 name 變量就是空字符串了,程序就直接退出了。
總結(jié)
今天我們學(xué)習(xí)了循環(huán)的概念,程序中因為有了循環(huán)的邏輯,使得很多需要重復(fù)執(zhí)行的代碼能夠簡單的進(jìn)行編寫。循環(huán)在代碼編寫中非常重要,沒有循環(huán),很多邏輯無法實現(xiàn),在Python中,循環(huán)有兩個關(guān)鍵字,分別是 For 和 While,一個是用于固定數(shù)量次循環(huán)操作,一個用于非固定數(shù)量的循環(huán)操作,在使用時記得進(jìn)行區(qū)分。