在不考慮意外事件下,我們一年365天,每天都會吃三餐:早餐、午餐、晚餐。若Python要寫個模擬每天用餐的程式要怎麼寫呢?可能會有下面的寫法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| print('第1天吃早餐、中餐、晚餐')
print('第2天吃早餐、中餐、晚餐')
print('第3天吃早餐、中餐、晚餐')
print('第4天吃早餐、中餐、晚餐')
print('第5天吃早餐、中餐、晚餐')
print('第6天吃早餐、中餐、晚餐')
print('第7天吃早餐、中餐、晚餐')
...
...
...
print('第359天吃早餐、中餐、晚餐')
print('第360天吃早餐、中餐、晚餐')
print('第361天吃早餐、中餐、晚餐')
print('第362天吃早餐、中餐、晚餐')
print('第363天吃早餐、中餐、晚餐')
print('第364天吃早餐、中餐、晚餐')
print('第365天吃早餐、中餐、晚餐')
|
哇!哇!哇!我們寫出上百行的程式碼囉!但是好像
複製(Copy)與貼上(Paste)居多,CP值超高的程式師誕生了。恭喜,恭喜,恭喜。
一年過去了,在某天的下午,這位
CP值超高的程式師翻起「蟒蛇Python養成日記」一書,看到書中的一個程式範例:
1
2
| for day in range(1, 366):
print('第' + str(day) + '天吃早餐、中餐、晚餐')
|
!!!程式師大驚!!!
???心想這是什麼寫法與觀念啊???
為什麼程式跑出來的結果和我一年前寫的一模一樣啊?!
於是程式師再度踏上學習之路,要好好學習這神奇的魔法:「重複式迴圈」。為了讓自己的學習更有心得,程式師所開始寫下筆記。首先了解range的用法:
1
| range(start, stop, step)
|
start:起始值。
stop:結束值。
step:遞增值。
例如底下例子會輸出
1, 3, 5, 7, 9, :
1
2
3
4
| # 輸出 1 至 11 之間的奇數
# 不包含 11
for n in range(1, 11, 2):
print(n, end=', ')
|
那要輸出
2, 4, 6, 8, 10, 的結果,該怎麼做呢?一個參考做法如下:
1
2
3
| # 輸出 1 至 11 之間的偶數
for n in range(2, 11, 2):
print(n, end=', ')
|
for迴圈(for Loop)
語法如下:
1
2
3
4
5
| for 變數 in 序列:
程式碼第1行
程式碼第2行
...etc
程式碼第n行
|
for loop範例:
1
2
3
4
5
6
7
8
9
10
| import string
# 列出小寫英文字母
for lowCase in string.ascii_lowercase:
print(lowCase, end=',')
print()
# 列出大寫英文字母
for upCase in string.ascii_uppercase:
print(upCase, end=',')
|
while迴圈(while Loop)
語法如下:
1
2
3
4
5
| while 判斷敘述:
程式碼第1行
程式碼第2行
...etc
程式碼第n行
|
while loop範例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| import string
# 列出小寫英文字母
idx = 0
while idx < len(string.ascii_lowercase):
print(string.ascii_lowercase[idx], end=',')
idx = idx + 1
print()
# 列出大寫英文字母
idx = 0
while idx < len(string.ascii_uppercase):
print(string.ascii_uppercase[idx], end=',')
idx = idx + 1
|
巢狀迴圈(nested Loop)
語法如下:
1
2
3
4
5
6
| for 變數 in 序列:
for 變數 in 序列:
程式碼第1行
程式碼第2行
...etc
程式碼第n行
|
或
1
2
3
4
5
6
| while 判斷敘述:
while 判斷敘述:
程式碼第1行
程式碼第2行
...etc
程式碼第n行
|
nested loop範例:
1
2
3
4
5
6
7
| # 九九乘法表
for i in range(1,10):
for j in range(1,10):
r = i * j
print ('%d * %d = %d' %(i, j , r), end="\t")
print('')
|
或
1
2
3
4
5
6
7
8
9
10
11
| # 九九乘法表
i = 1
while i < 10:
j = 1
while j < 10:
r = i * j
print ('%d * %d = %d' %(i, j , r), end="\t")
j = j + 1
i = i + 1
print()
|
本部落的文章
Python Tutor 線上Coding工具介紹一文說明了
Python Tutor可以將程式碼視覺化來了解程式碼的運作流程,所以筆者建立的一個
簡易的迴圈範例。
若您覺得文章寫得不錯,請點選文章上的廣告,來支持小編,謝謝。
If you like this post, please click the ads on the blog or buy me a coffee. Thank you very much.
留言