我有以下代码 - Collatz功能的源代码:
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
答案 0 :(得分:4)
此:
number = int(input('enter a number')
应该是:
number = int(input('enter a number'))
修复此问题后,您应该查看非缩进打印语句。那些缩进是不需要的。
答案 1 :(得分:1)
您有缩进问题,并且未关闭第一行中的括号。此外,将n
切换为number
,因为您需要在每个循环中更新它。否则,您的功能不会执行Collatz进程。这将完成这项工作:
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