我試圖用我自己的方法解決a + b + c = 1000和a^2 + b^2 = c^2找到a,b,c的乘積。爲什麼有必要在這個例子中打破?
我確實最終找到了自己的方法,但它讓我對另一個關於這件事情是如何工作的問題。
a= 1
b= 2
c= 997
product = 0
while a < 333:
while c > b:
if a**2 + b**2 == c**2:
product = a * b * c
break
else:
c += -1
b += 1
else:
a += 1
b = a + 1
c = 1000 - a - b
if product > 0:
break
print (product)
我第一次嘗試並不包括
if product > 0:
break
出於某種原因,我的代碼將無法完成,並一直運行下去。所以我決定在工作結束時添加它。太棒了。但是,我想知道爲什麼休息是必要的。
找到答案後,不首先打破停止循環?爲什麼有必要在相同的條件下進行第二次休息?即使沒有休息,當它變成> 333時,它是不是應該自然地結束?
我剛開始學習python昨天請幫我改進:)。
你爲什麼在內部'while'之後有一個浮動'else'? ....相應的「if」在哪裏? – depperm
因爲['while while](https://docs.python.org/3/reference/compound_stmts。html#the-while-statement)可以有一個'else'語句:「如果表達式爲假(可能是第一次被測試)else子句的套件(如果存在)被執行,並且循環終止」 –