亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這個程序錯在哪里了

L=[1,2,3,4]

for a in L:

? ? while True:

? ? ? ? print a

if a>3:

? ? break

這個程序錯在哪里了


正在回答

3 回答

你第一個循環的a=1永遠小于3 ?那么就是死循環,輸出的永遠為1,

L=[1,2,3,4]

for a in L:

? ? while True:

? ? ? ? print a?

? ? ? ? a=a+1

? ? ? ? if a>3:

? ? ? ? ? ? break

當你用上述的語句執行時,他會先循環先a=1,當1+a>3時,會結束循環,然后繼續a=2直至2+a>3,然后是循環a=3. ? 所以上述語句輸出結果為:1,2,3,2,3,3,4


0 回復 有任何疑惑可以回復我~
#1

慕瓜2101731

不是你說的問題,for循環本身就會把list迭代賦值給a。
2017-08-10 回復 有任何疑惑可以回復我~

L=[1,2,3,4]

for a in L:

? ? while True:

? ? ? ? print a

????????if a>3:

? ????? break


縮進問題


0 回復 有任何疑惑可以回復我~
#1

qq_蘇格拉沒有底_14 提問者

不是這個問題,是邏輯問題,你可以運行一下你的程序
2017-07-12 回復 有任何疑惑可以回復我~
L?=?[1,2,3,4]
for?a?in?L:
????while?True:
????????if?a?>?3:
????????????break
????????print?a


0 回復 有任何疑惑可以回復我~
#1

qq_蘇格拉沒有底_14 提問者

不是這個問題,這樣輸出的是持續不斷的1,我是想輸出1,2.這個程序存在邏輯錯誤,但是我不知道錯在哪里了
2017-07-12 回復 有任何疑惑可以回復我~
#2

xyyyy318 回復 qq_蘇格拉沒有底_14 提問者

如果你只想輸出1,2 這樣就可以了 為什么要還要在里面寫個死循環? 第一次循環a是1 a永遠不可能大于3 所以是死循環 你之前那么寫 就會一直卡在 while True: print a出不來 L = [1,2,3,4] for a in L: if a > 2: break print a
2017-07-12 回復 有任何疑惑可以回復我~
#3

xyyyy318 回復 xyyyy318

正確的話采納我的哈
2017-07-12 回復 有任何疑惑可以回復我~
#4

qq_蘇格拉沒有底_14 提問者 回復 xyyyy318

你這樣寫輸出的是3,你可以試一下
2017-07-12 回復 有任何疑惑可以回復我~
#5

慕瓜2101731 回復 qq_蘇格拉沒有底_14 提問者

if判斷的順序問題,先對a賦值為3,再做if判斷才會break,而3已經賦出值了。你想只輸出(1,2),改成'if a > 1'就可以; 或者改成: for a in L: if a < 3: print(a)
2017-08-10 回復 有任何疑惑可以回復我~
查看2條回復

舉報

0/150
提交
取消
初識Python
  • 參與學習       758382    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

這個程序錯在哪里了

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號