001 Python學習 迴圈結構

2021-09-22 08:32:29 字數 4549 閱讀 9908

如果在程式中我們需要重複的執行某條或某些指令,例如用程式控制機械人踢足球,如果機械人持球而且還沒有進入射門範圍,那麼我們就要一直發出讓機械人向球門方向奔跑的指令。當然你可能已經注意到了,剛才的描述中其實不僅僅有需要重複的動作,還有我們上乙個章節講到的分支結構。再舉乙個簡單的例子,比如在我們的程式中要實現每隔1秒中在螢幕上列印乙個"hello, world"這樣的字串並持續乙個小時,我們肯定不能夠將print('hello, world')這句**寫上3600遍,如果真的需要這樣做那麼程式設計的工作就太無聊了。因此,我們需要了解一下迴圈結構,有了迴圈結構我們就可以輕鬆的控制某件事或者某些事重複、重複、再重複的發生。在python中構造迴圈結構有兩種做法,一種是for-in迴圈,一種是while迴圈。

如果明確的知道迴圈執行的次數或者是要對乙個容器進行迭代(後面會講到),那麼我們推薦使用for-in迴圈,例如下面**中計算∑n=

1100

n\sum_^n

∑n=110

0​n。

"""

用for迴圈實現1~100求和

version: 0.1

author: 駱昊

"""sum = 0

for x in range(101):

sum += x

print(sum)

需要說明的是上面**中的range型別,range可以用來產生乙個不變的數值串行,而且這個序列通常都是用在迴圈中的,例如:

知道了這一點,我們可以用下面的**來實現1~100之間的偶數求和。

"""

用for迴圈實現1~100之間的偶數求和

version: 0.1

author: 駱昊

"""sum = 0

for x in range(2, 101, 2):

sum += x

print(sum)

也可以通過在迴圈中使用分支結構的方式來實現相同的功能,**如下所示。

"""

用for迴圈實現1~100之間的偶數求和

version: 0.1

author: 駱昊

"""sum = 0

for x in range(1, 101):

if x % 2 == 0:

sum += x

print(sum)

如果要構造不知道具體迴圈次數的迴圈結構,我們推薦使用while迴圈,while迴圈通過乙個能夠產生或轉換出bool值的表示式來控制迴圈,表示式的值為true迴圈繼續,表示式的值為false迴圈結束。下面我們通過乙個「猜數字」的小遊戲(計算機出乙個1~100之間的隨機數,人輸入自己猜的數字,計算機給出對應的提示資訊,直到人猜出計算機出的數字)來看看如何使用while迴圈。

"""

猜數字遊戲

計算機出乙個1~100之間的隨機數由人來猜

計算機根據人猜的數字分別給出提示大一點/小一點/猜對了

version: 0.1

author: 駱昊

"""import random

answer = random.randint(1, 100)

counter = 0

while true:

counter += 1

number = int(input('請輸入: '))

if number < answer:

print('大一點')

elif number > answer:

print('小一點')

else:

print('恭喜你猜對了!')

break

print('你總共猜了%d次' % counter)

if counter > 7:

print('你的智商餘額明顯不足')

**說明:**上面的**中使用了break關鍵字來提前終止迴圈,需要注意的是break只能終止它所在的那個迴圈,這一點在使用巢狀的迴圈結構(下面會講到)需要引起注意。除了break之外,還有另乙個關鍵字是continue,它可以用來放棄本次迴圈後續的**直接讓迴圈進入下一輪。

和分支結構一樣,迴圈結構也是可以巢狀的,也就是說在迴圈中還可以構造迴圈結構。下面的例子演示了如何通過巢狀的迴圈來輸出乙個九九乘法表。

"""

輸出乘法口訣表(九九表)

version: 0.1

author: 駱昊

"""for i in range(1, 10):

for j in range(1, i + 1):

print('%d*%d=%d' % (i, j, i * j), end='\t')

print()

練習1:輸入乙個數判斷是不是素數。
"""

輸入乙個正整數判斷它是不是素數

version: 0.1

author: 駱昊

date: 2018-03-01

"""from math import sqrt

num = int(input('請輸入乙個正整數: '))

end = int(sqrt(num))

is_prime = true

for x in range(2, end + 1):

if num % x == 0:

is_prime = false

break

if is_prime and num != 1:

print('%d是素數' % num)

else:

print('%d不是素數' % num)

練習2:輸入兩個正整數,計算最大公約數和最小公倍數。
"""

輸入兩個正整數計算最大公約數和最小公倍數

version: 0.1

author: 駱昊

date: 2018-03-01

"""x = int(input('x = '))

y = int(input('y = '))

if x > y:

x, y = y, x

for factor in range(x, 0, -1):

if x % factor == 0 and y % factor == 0:

print('%d和%d的最大公約數是%d' % (x, y, factor))

print('%d和%d的最小公倍數是%d' % (x, y, x * y // factor))

break

筆記
x*y = 最大公約數*最小公倍數,求出了公約數公倍數自然就出來了

求公約數的方法很多,這裡採用從大到小依次查詢的辦法,方法較暴力

看下面方法:
x = int(input('x = '))

y = int(input('y = '))

a = x

b = y

while a != b:

if a > b:

a = a-b

else:

b = b - a

print('%d和%d的最大公約數是%d' % (x, y, a))

print('%d和%d的最小公倍數是%d' % (x, y, x * y // a))

練習3:列印三角形圖案。
"""

列印各種三角形圖案***

*******

********

*******

*****

****

*****

*******

*********

version: 0.1

author: 駱昊

"""row = int(input('請輸入行數: '))

for i in range(row):

for _ in range(i + 1):

print('*', end='')

print()

for i in range(row):

for j in range(row):

if j < row - i - 1:

print(' ', end='')

else:

print('*', end='')

print()

for i in range(row):

for _ in range(row - i - 1):

print(' ', end='')

for _ in range(2 * i + 1):

print('*', end='')

print()

001 Python中的變數和字串

所以有些 python程式設計師會說 python 沒有 變數 只有 名字 teacher 小甲魚 print teacher teacher 老甲魚 到目前為止,我們所認知的字串就是引號 雙引號 或單引號 內的一切東西,我們也把字串叫做文字,文字和數字是截然不同的 使用轉義字元反斜槓 2.使用原始...

001python需要了解的計算機核心基礎

二 計算機組成原理 三 作業系統概述 語言就是人與人之間溝通的介質 程式語言就是人與計算機之間溝通的介質 在程式設計的世界裡,計算機就好比人的手下,方便自己 程式設計就是人把自己想命令計算機幹的事用程式語言翻譯出來並寫到檔案裡 這一系列的檔案就是程式 程式設計的目的就是為了讓計算機按照人類的思維邏輯...

python學習 迴圈結構

語法 for 變數 in 序列 語句1語句2 列印朋友的姓名,如果是男朋友,那就是我的最愛呀 如果是別的人,那就冷酷的拒絕他。friend list eric 我的寶貝 frank for friend in friend list if friend 我的寶貝 print else print 對...