3 回答
TA贡献1803条经验 获得超6个赞
问题是在 python 3 中/
执行浮点除法,而不是地板除法。更改t /= 10
为t //= 10
。
在 Python2 中,3 / 4
=> 0
。在 Python 3 中,3 / 4
=>0.75
和3 // 4
=> 0
。并且您的算法依赖于地板除法(或整数除法)来消除数字。
TA贡献1868条经验 获得超4个赞
def all_even(number):
num_str = str(number)
digit_bool = []
for digit in num_str:
if int(digit) % 2 == 0:
digit_bool.append(True)
else:
digit_bool.append(False)
return digit_bool
mylist = [i for i in range(2000, 2011) if all(all_even(i))]
退货
[2000, 2002, 2004, 2006, 2008]
如果你想打印它:
print(','.join([str(i) for i in mylist]))
TA贡献1890条经验 获得超9个赞
使用列表推导 python3.4 例如查找 1000 和 9001 之间的数字,其中每个数字都是偶数
1.检查数字本身是否偶数
2.如果是,则遍历该数字的每一位以检查其是否偶数
3.它的长度应等于数字的长度
[i for i in range(1000,9001) if i%2==0 and len([int(j) for j in list(str(i)) if int(j)%2==0])==len(str(i))]
产出 :
[2000, 2002, 2004, 2006, 2008, 2020, 2022, ...... 8880, 8882, 8884, 8886,8888]
添加回答
举报