循环

时间:2018-02-20 13:35:04

标签: python python-3.x

我正尝试在下面链接的页面底部找到The Collat​​z 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)

4 个答案:

答案 0 :(得分:0)

如果函数返回值,则必须保存或打印它以显示值。

尝试

Python 3+ 打印(在Collat​​z(userNum))

Python 2 print collat​​z(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!")

虽然,目前形式的数学可能还没准备好告诉你是否总能终止。