这么写怎么错了?
print [x for x in range(999) for x/100==x%10]
print [x for x in range(999) for x/100==x%10]
2016-03-27
哇,楼主好思路呀,不过有两个小问题:
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]
不过正常答案略无聊。。。
举报