While循环语法错误
问题描述:
我有以下代码 - 用于在Collatz函数的源代码:While循环语法错误
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
答
此:
number = int(input('enter a number')
应该是:
number = int(input('enter a number'))
一旦你解决了这个问题,你应该看看取消打印你的打印语句。这些缩进不是必需的。
答
您有缩进问题,并且没有关闭第一行中的括号。另外,由于您需要在每个循环中更新它,因此请将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
+0
非常感谢。它的工作,我现在对这个问题感到无聊。 – Vish
+0
@Vish如果您单击此问题旁边的复选标记,它会将其标记为已接受,这基本上意味着它适合您。 – anonymoose
正如[答案]声明,请避免回答不清楚,宽,SW REC,错字,意见为基础,不可重复或重复的问题。编写我的代码请求和费力的家庭作业问题不适用于[所以],更适合于专业编码/辅导服务。良好的问题坚持[问],包括[mcve],有研究的努力,并有潜力对未来的访问者有用。回答不适当的问题会使网站变得更难以浏览和鼓励更多这样的问题,从而损害其他用户的志愿者时间和专业知识。 – TigerhawkT3