3 回答

TA貢獻1796條經(jīng)驗 獲得超4個贊
答案是0
因為這while False
意味著循環(huán)體甚至不會被執(zhí)行一次,并且由于total3
僅在體循環(huán)中遞增,因此其值將保持與循環(huán)前相同,即是0
因為total3=0
它上面的線。
為了讓循環(huán)體執(zhí)行之后的表達式的值while
應(yīng)該是真的。最常見的真值是True
。

TA貢獻1813條經(jīng)驗 獲得超2個贊
True 和 False 是布爾文字值。也就是說,它們的值是由語言已知和設(shè)置的。想象一下,如果你有這樣的事情:
while 1 < 2:
“1”和“2”是整數(shù)文字值。表達永遠不會改變,結(jié)果永遠是一樣的。在這種情況下,結(jié)果是一個等于 的布爾值True
。
因此,具有“True”或任何不變的真表達式(例如1 < 2
,作為條件)的 while 循環(huán)將希望“永遠”運行,因為它永遠不會失敗該測試。停止這種循環(huán)的唯一方法是生成一個鍵盤異常(通常通過按“Ctrl-C”),或者在代碼中的某處發(fā)生一個未捕獲的異常,或者讓一些代碼執(zhí)行一個break
語句。
在您的示例中,您將 中的數(shù)字相加并在遇到負數(shù)時given_list2
停止(通過執(zhí)行 a break
)。所以正數(shù)相加,即 17。
類似地,while
具有“False”或任何不變的假表達式作為條件的循環(huán)永遠不會運行,因為第一個測試while 1 > 2
將失敗并且循環(huán)將中止。這導(dǎo)致沒有執(zhí)行任何內(nèi)部代碼。
在您的示例中,您total3 = 0
從不運行任何代碼,因此它保持為 0。

TA貢獻1847條經(jīng)驗 獲得超7個贊
while 循環(huán)評估條件并在條件評估為 時執(zhí)行其塊中的代碼True,否則退出循環(huán)。條件True導(dǎo)致循環(huán)無限繼續(xù),因為它只能評估為 True,而False導(dǎo)致循環(huán)立即退出而不運行其塊中的代碼。
我知道這只是如何使用 while 循環(huán)的一個示例,但是,如果這是一個實際用例,您會想要使用 for 循環(huán)來代替。
given_list2 = [5, 4, 4, 3, 1, -2, -3, -5]
total3 = 0
for n in given_list2:
if n > 0:
total3 += n
else:
break
print(total3)
甚至
total3 = sum(n for n in given_list2 if n > 0)
添加回答
舉報