【发布时间】:2020-10-17 10:34:50
【问题描述】:
我正在玩 Python,我想打印从 0000 到 9999 的每个数字,但前提是这些数字不重复。
我这样开始只是为了打印每个数字:
for i in range(0000, 10000):
print(f"Checking: {1:04}")
打印最多 9999 的每个数字 我想打印每个没有重复数字的数字。 这是我的尝试:
for i in range(0000, 10000):
for n in i:
if i[n] != i[n + 1]
print(f"checking: {i:04}")
打印的错误是:
Traceback (most recent call last):
File "test.py", line 2, in <module>
for n in i:
TypeError: 'int' object is not iterable
谢谢,感谢任何提示!
【问题讨论】:
-
使用整数除法和取模我们可以验证一个数的唯一性;
-
该错误表示不能迭代整数类型;
-
这会失败,因为 int 对象不可迭代,因为它们不能像字符串一样循环。一种有点笨拙的解决方法是将整数转换为字符串,然后循环遍历它。此外,您需要在前面加上适当数量的零,因为整数会忽略多余的数字。
-
您可以使用可迭代的
str(i)。但是,您尝试使用的条件(如果已修复)将打印那些不是 aaaa 形式的数字。那是你想要的吗?或者您是否还想跳过一个数字重复但不是在所有四个位置都重复的数字,例如 abcb? -
如果我正确理解了这个问题,那么 123 以下的任何内容都不会起作用,主要是因为两个零。
标签: python