課程
/后端開發(fā)
/Python
/初識Python
print [x for x in range(999) for x/100==x%10]
2016-03-27
源自:初識Python 10-4
正在回答
哇,樓主好思路呀,不過有兩個小問題:
print?[x?for?x?in?range(999)?for?x/100==x%10]
第一: x/100==x%10 , 這個語句是邏輯判斷 而不是成員資格判斷(如: x in range(999)) , 所以不能用for, 應(yīng)該用 if.
第二,?x/100==x%10, 在 x 為0,10,20,30,40,50,60,70,80,90 是也是成立的。
所以樓主的代碼不能得到正確的結(jié)果,稍加修改就可以了:
##正確代碼: print?[x?for?x?in?range(999)?if?x/100==x%10?and?x>100] ##?這個結(jié)果不包括?999,?所以再稍作修改: print?[x?for?x?in?range(1000)?if?x/100==x%10?and?x>100]
不過,這一節(jié) 就是為了練習(xí)多層for 循環(huán), 所以 正常的答案是:
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]
不過正常答案略無聊。。。
氵天天天天氵 提問者
清波 回復(fù) 氵天天天天氵 提問者
print [x for x in range(100,1000) if x/100==x%10]
按你的思路可以這樣寫也能獲得可以通過的結(jié)果,出錯的原因有兩個:range的范圍要求是三位數(shù),還有就是?x/100==x%10應(yīng)該是一個條件表達式。此外,注意題目的要求,用三層的for循環(huán),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 ],這樣寫會比較好些。
舉報
學(xué)python入門視頻教程,讓你快速入門并能編寫簡單的Python程序
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2016-03-28
哇,樓主好思路呀,不過有兩個小問題:
第一: x/100==x%10 , 這個語句是邏輯判斷 而不是成員資格判斷(如: x in range(999)) , 所以不能用for, 應(yīng)該用 if.
第二,?x/100==x%10, 在 x 為0,10,20,30,40,50,60,70,80,90 是也是成立的。
所以樓主的代碼不能得到正確的結(jié)果,稍加修改就可以了:
不過,這一節(jié) 就是為了練習(xí)多層for 循環(huán), 所以 正常的答案是:
不過正常答案略無聊。。。
2016-03-27
print [x for x in range(100,1000) if x/100==x%10]
按你的思路可以這樣寫也能獲得可以通過的結(jié)果,出錯的原因有兩個:range的范圍要求是三位數(shù),還有就是?x/100==x%10應(yīng)該是一個條件表達式。此外,注意題目的要求,用三層的for循環(huán),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 ],這樣寫會比較好些。