【发布时间】:2019-08-15 16:54:35
【问题描述】:
我是python的初学者。但我不明白为什么我仍然收到错误。我以前在 MATLAB 工作,现在我需要学习 python 来实习。有人可以帮我解决这个问题吗?
下面是我查找素数个数的代码
def prime_number(num):
myprime = []
for x in range(2,num):
prime = True
if x == 2:
myprime.append(x)
else:
for y in prime:
if x%y == 0:
prime = False
break;
if prime:
myprime.append(x)
return myprime
这是我的错误:
TypeError Traceback (most recent call last)
<ipython-input-87-cd2bf40e6117> in <module>
----> 1 prime_number(100)
<ipython-input-86-169e0a64e50a> in prime_number(num)
13 else:
14
---> 15 for y in prime:
16
17 if x%y == 0:
TypeError: 'bool' object is not iterable
你能告诉我如何修复缩进或了解更多关于 python 中的缩进。我知道python中的标识非常重要。我使用的是 python 3 版本。
【问题讨论】:
-
您将素数设置为
True然后尝试使用for y in prime:遍历prime您无法遍历布尔值 (True),因为没有什么可以遍历 -
prime是布尔类型。要使用 for 循环,您需要像列表这样的可迭代对象。你想迭代myprime也许 -
您不能遍历
boolean。您希望变量prime中包含什么? -
您的意思是
for y in myprime:?
标签: python formatting primes