[討論] 黑馬python教程 - 01-18 循環計算 - 討論區

[討論] 黑馬python教程 - 01-18 循環計算

文章瀏覽次數 1343 文章回覆數 10

Mingo

Mingo圖像(預設)

2021-05-04 20:47:09

From:27.53.146.63

116 循環計算 01 思路分析

所謂循環計算 就是在開發中利用 cpu 的強大計算功能通過循環來計算
在程序開发中,通常會遇到利用循環重覆計算的需求
遇到這種需求,可以:

  1. 在 while 上方定義一個變量,用於 存放最終計算結果
  2. 在循環體內部,每次循環都用 最新的計算結果,更新 之前定義的變量

117 循環計算 02 0到100數字累加

需求
計算 0 ~ 100 之間所有數字的累計求和結果

# 0 ~ 100 之間所有數字
# 定義一個整數的變量記錄循環的次數
i = 0

# 開始循環
while i <= 100:
    print(i)  # 先觀察 i 的變化

    # 處理計數器
    i += 1

print("0~100之間的數字求和結果 = %d" % result)
# 計算 0 ~ 100 之間所有數字的累計求和結果
# 定義最終結果的變量
result = 0

# 定義一個整數的變量記錄循環的次數
i = 0

# 開始循環
while i <= 100:
#    print(i)

    # 每一次循環,都讓 result 這個變量和 i 這個計數器相加
    result += i

    # 處理計數器
    i += 1

print("0~100之間的數字求和結果 = %d" % result)
# 你可以動手驗證答案是否正確 證明計算機的強大

118 循環計算 03 偶數求和 準備偶數

需求進階
計算 0 ~ 100 之間 所有 偶數 的累計求和結果

開发步驟

  1. 編寫循環確認要計算的數字
  2. 添加結果變量,在循環內部處理計算結果
# 循環確認要計算的數字
# 計數器
i = 0

# 開始循環
while i <= 100:

    # 判斷偶數  開始求偶
    if i % 2 == 0:  # 被 2 整除的就是偶數了
        print(i)

    # 處理計數器
    i += 1

119 循環計算 04 偶數求和 計算結果

# 最終結果
result = 0

# 計數器
i = 0

# 開始循環
while i <= 100:

    # 判斷偶數
    if i % 2 == 0:
        print(i)
        result += i

    # 處理計數器
    i += 1

print("0~100之間偶數求和結果 = %d" % result)

如果你把 result += i跟 i += 1 放在同一個縮進代碼的位置會發生什麼呢?
式的,那麼你得到的結果將不是你想要的了...
如果要判斷基數 你只要寫成 i % 2 != 0 就行了

留言

#1

特種兵

特種兵圖像(預設)

2021-05-05 09:42:54

From:1.161.141.36

開始求偶,好吧,我們臺灣好像比較不會這樣講…

#2

cello

cello圖像(預設)

2021-07-21 10:08:43

From:219.85.3.19

有沒有for迴圈做不到while迴圈的例子,或者僅需使用for迴圈即可?

#3

特種兵

特種兵圖像(預設)

2021-07-21 11:28:26

From:111.249.172.204

應該說兩種迴圈都可以達成相同的任務,只不過看什麼情境比較適合哪一種而已
但應該不會有完全無法取代的狀況才對

#4

cello

cello圖像(預設)

2021-07-21 13:22:35

From:219.85.3.19

覺得while與if也很像,同樣也拿來進行條件判斷

#5

特種兵

特種兵圖像(預設)

2021-07-21 17:19:34

From:111.249.172.204

只差在一個是迴圈,一個只判斷一次就沒了

#6

Maxe

Maxe圖像(預設)

2021-07-22 13:17:35

From:1.164.107.197

for 是用來簡化計數器的,也就是節省掉 i = 0, 與 i += 1, 計算偶數總和可以縮減成如下代碼:

result = 0

for i in range(100):
if i % 2 == 0:
result += i

print(result)

while 比較需要用到不固定技術的時候,比如 mainLoop 等這種不確定什麼時候結束的狀況。

#7

cello

cello圖像(預設)

2021-07-22 19:04:08

From:219.85.3.19

for的的三個參數靈活許多,,如果讓第三個參數每次+2感覺也是一個不錯的選擇,感覺嵌套的回圈縮排的概念也要很清楚否則也很容易讓自己進入自己的無限回圈

#8

特種兵

特種兵圖像(預設)

2021-07-23 09:12:03

From:111.249.172.204

應該是range函數的參數,不是 for 的參數
python 的 for 跟傳統 C, js, php 等語言的語法不同,它比較像 foreach

#9

cello

cello圖像(預設)

2021-07-23 10:30:31

From:219.85.3.19

沒錯,是range的參數才墜
for有單獨使用的情境嗎?

#10

特種兵

特種兵圖像(預設)

2021-07-23 17:13:36

From:111.249.172.204

有的,就是遍歷字串或列表、字典、數組、集合等等