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

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

代碼順序問題

任務答案print [100*n1+10*n2+n3 for n1 in range(1,10) for n2 in range(0,10) for n3 in range(0,10) if n1 == n3]

為什么不寫成print [100*n1+10*n2+n3 if n1 == n3 for n1 in range(1,10) for n2 in range(0,10) for n3 in range(0,10) ]這樣呢,這個是怎么規范順序的,又是以什么順序運行的呢

正在回答

2 回答

##?正確代碼
print?[100*n1+10*n2+n3?for?n1?in?range(1,10)?for?n2?in?range(0,10)?for?n3?in?range(0,10)?if?n1?==?n3]

這個for循環生成式的意思是:

for?n1?in?range(1,10):
????for?n2?in?range(0,10):
????????for?n3?in?range(0,10):
????????????if?n1==n3

而題主給出的代碼:

print?[100*n1+10*n2+n3?if?n1?==?n3?for?n1?in?range(1,10)?for?n2?in?range(0,10)?for?n3?in?range(0,10)?]

就成了:

if?n1==n3:
????for?n1?in?range(1,10):
????????for?n2?in?range(0,10):
????????????for?n3?in?range(0,10):

所以邏輯上不合適, 而解釋器報錯一般都會報: invalid syntax.

或者簡單的記住,for循環生成式 是for 嵌套if.

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

python_美若天仙怪我咯 提問者

非常感謝!
2016-04-05 回復 有任何疑惑可以回復我~

先得有數才能做判斷吧?個人認為是這樣的

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

舉報

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

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

進入課程

代碼順序問題

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

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

幫助反饋 APP下載

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

公眾號

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