from math import *
def prime():
a = 0
b = 0
x = 2*a+1
y = b
for a in range (1,5000) and b in range (0,5000) and y<x :
ctr = 0
if (x % y == 0):
ctr += 1
return [None]
else:
primes = (x)
ctr+= 1
return [None]
print (primes[999]);
我有一个问题需要解决但是当它到达模数(%)符号时它会说TypeError:'bool'对象不可迭代“
答案 0 :(得分:2)
不是比较值,而是将0分配给x % y
,这是不可能的。你可以像这样修复它
if (x % y == 0):
修好后,
for a in range (1,5000) and b in range (0,5000) and y<x :
这一行不起作用,你必须像这样分割循环
for a in range (1,5000):
for b in range (0,5000):
...
...
答案 1 :(得分:1)
模数符号没问题,请注意错误消息中的^
。
File "so-modulo-test.py", line 11
if (x % y = 0):
^
SyntaxError: invalid syntax
=
表示assignment statement。您需要==
,equal comparison operator,如
if x % y == 0:
此外,and
是逻辑上的AND,不要与人类如何说话混淆。你的循环应该是这样的:
for a in range (1,5000):
for b in range (0, x):
...