循环语法错误

时间:2017-04-08 21:35:11

标签: python python-3.x loops while-loop collatz

我有以下代码 - Collat​​z功能的源代码:

number = int(input('enter a number')

while number != 1:
  if number%2 == 0:
    n = number//2
      print (str(n))
  elif number%2 == 1:
    n = 3*number+1
      print (str(n))
  else:
    break 

错误消息如下:

Python 3.5.2 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux

Traceback (most recent call last):
  File "python", line 5
    while number != 1:
        ^
SyntaxError: invalid syntax

2 个答案:

答案 0 :(得分:4)

此:

number = int(input('enter a number')

应该是:

number = int(input('enter a number'))

修复此问题后,您应该查看非缩进打印语句。那些缩进是不需要的。

答案 1 :(得分:1)

您有缩进问题,并且未关闭第一行中的括号。此外,将n切换为number,因为您需要在每个循环中更新它。否则,您的功能不会执行Collat​​z进程。这将完成这项工作:

number = int(input('enter a number'))

while number!=1:
    if number%2 == 0:
        number = number//2
        print(str(number))
    elif number%2 == 1:
        number = 3*number+1
        print(str(number))
    else:
        break 

然后,如果输入20,则会打印:

enter a number20
10
5
16
8
4
2
1