Python:迭代中的语法分配错误

时间:2013-01-16 12:49:22

标签: python syntax iteration counter

我正在为python中的自学习做一个简单的脚本,其中脚本依次找到第1000个素数,但是我得到了语法错误。

x = 0
y = 2
counter = x
integer = y
while (counter>999):
      if (y%2 == 0 or y%3 == 0):
          y = y + 1
      else:(counter = counter + 1 and integer = integer + 1)
print (y)    

当说到ELSE运算符之后的='赋值时,我不明白为什么它不会让我在计数器和整数中添加一个,当它在其他迭代场景中有效时

3 个答案:

答案 0 :(得分:2)

在python中,你不能在表达式中进行赋值,以避免===之间的拼写错误。所以你必须分两行:

x = 0
y = 2
counter = x
integer = y
while (counter>999):
    if (y%2 == 0 or y%3 == 0):
        y = y + 1
    else:
        counter += 1
        integer += 1
print (y)    

答案 1 :(得分:0)

试试这个

   else:
      counter = counter + 1
      integer = integer + 1

答案 2 :(得分:0)

在python中,赋值给variable没有布尔值。并且意味着布尔运算符不执行此操作。

所以你需要拆分语句。

x = 0
y = 2
counter = x
integer = y
while (counter>999):
    if (y%2 == 0 or y%3 == 0):
        y = y + 1
    else:
        counter += 1
        integer += 1
print (y)