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

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

這么寫怎么錯了?

print [x for x in range(999) for x/100==x%10]

正在回答

2 回答

哇,樓主好思路呀,不過有兩個小問題:

print?[x?for?x?in?range(999)?for?x/100==x%10]

第一: x/100==x%10 , 這個語句是邏輯判斷 而不是成員資格判斷(如: x in range(999)) , 所以不能用for, 應該用 if.

第二,?x/100==x%10, 在 x 為0,10,20,30,40,50,60,70,80,90 是也是成立的。

所以樓主的代碼不能得到正確的結果,稍加修改就可以了:

##正確代碼:
print?[x?for?x?in?range(999)?if?x/100==x%10?and?x>100]
##?這個結果不包括?999,?所以再稍作修改:
print?[x?for?x?in?range(1000)?if?x/100==x%10?and?x>100]

不過,這一節 就是為了練習多層for 循環, 所以 正常的答案是:

print?[x*100+y*10+z?for?x?in?range(1,10)?for?y?in?range(0,10)?for?z?in?range(1,10)?if?x==z]

不過正常答案略無聊。。。

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

氵天天天天氵 提問者

邏輯判斷和成員判斷的區別和用法在哪里有???好像沒有學過的印象。
2016-03-30 回復 有任何疑惑可以回復我~
#2

清波 回復 氵天天天天氵 提問者

in 成員判斷, == < > != 邏輯判斷。 并不是說 成員判斷前面不能加 if, 不管什么判斷返回的都是bool值, 只是在 這個生成式中 一般都是 for in , if 邏輯判斷。
2016-03-31 回復 有任何疑惑可以回復我~

print [x for x in range(100,1000) if x/100==x%10]

按你的思路可以這樣寫也能獲得可以通過的結果,出錯的原因有兩個:range的范圍要求是三位數,還有就是?x/100==x%10應該是一個條件表達式。此外,注意題目的要求,用三層的for循環,print [x*100 + y*10 + z for x in range(1,10) for y in range(0,10) for z in range(0,10) if x == z ],這樣寫會比較好些。

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

舉報

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

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

進入課程

這么寫怎么錯了?

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

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

幫助反饋 APP下載

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

公眾號

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