【发布时间】:2021-10-25 02:17:46
【问题描述】:
这是挑战题之一: 编写一个程序,找出 1000 到 3000 之间的所有数字(都包括在内),使得该数字的每个数字都是偶数。获得的数字应以逗号分隔的顺序打印在一行上。提示:如果向问题提供输入数据,则应假定它是控制台输入。 这是我正在尝试做的事情:如果有输入,则检查所有数字是否为偶数并显示一条消息。如果没有输入,则它将包含所有偶数数字的 1000 到 3000 的数字附加到列表中。我听说嵌套循环是不好的做法,所以欢迎更好的解决方案。 遇到错误: TypeError: 'int' object is not iterable.
num = input("Enter a number to check for even digit. Skip if you want to see 1000-3000: ")
if num:
list = [int(x) for x in num]
for i in list:
if i % 2 != 0:
x = False
break
else:
x = True
if x:
print("It has all even digits!")
else:
print("It contains odd digits.")
else:
t = True
printl = []
for i in range(1000,3001):
l = [str(x) for x in i] # the error line
for q in l:
if int(q) % 2 != 0:
t = False
break
else:
printl.append(q)
print(printl)
【问题讨论】:
-
l = [x for x in str(i)],您不能迭代int(而i是int,因此您需要将其转换为可以迭代的字符串)
标签: python