我正尝试在下面链接的页面底部找到The Collatz Sequence。但我不知道为什么我的返回值会返回?感谢。
https://automatetheboringstuff.com/chapter3/
我没有收到错误。如果用户输入值10.Elif线运行并打印出5,应该如此。但随后程序退出循环。
userNum = int(input("Please enter a number, any number!"))
def collatz(number):
while True:
if number == 1:
print("Of course 1 works....")
break
elif number % 2 == 0:
print(number // 2)
return number
else:
print(3 * number + 1)
return number
collatz(userNum)
答案 0 :(得分:0)
如果函数返回值,则必须保存或打印它以显示值。
尝试
Python 3+ 打印(在Collatz(userNum))
Python 2 print collatz(userNum)
答案 1 :(得分:0)
While True
将返回语法错误。
您需要制作W
小写。
while True
应该可以正常使用。
答案 2 :(得分:0)
在你的函数中,函数只有一种方法不返回任何东西: 如果参数编号为1。 在这种情况下,python将突破你的循环,然后到函数的末尾。 也许你想使用continue而不是break,它将保持循环或更好:只需删除break。
答案 3 :(得分:0)
我相信你想做的就是这个。
userNum = int(input("Please enter a number, any number!"))
def collatz(number):
while True:
if number == 1:
return number
elif number % 2 == 0:
number = number // 2
else:
number = 3 * number + 1
collatz(userNum)
print("It worked! Collatz Conjecture must be true!")
虽然,目前形式的数学可能还没准备好告诉你是否总能终止。