如果结果= 1,如何在函数中使用,然后退出

时间:2018-06-02 14:11:39

标签: python function loops if-statement while-loop

我已经开始学习Python了。我写了这段代码来检查数字是偶数还是奇数。如果数字是偶数,则取该数字并除以2.如果数字是奇数,则将数字乘以3并加1。

我不知道在哪里放置while循环。

我的代码:

def collatz(number):

    if number % 2 == 0:
        return number / 2
    else:
        return 3 * number + 1    
print("Enter the number: ")
qassam = int(input())
print(collatz(qassam))

我想退出任何if条件的结果== 1.怎么做?

2 个答案:

答案 0 :(得分:1)

您希望在当前号码不是1时继续调用您的功能。因此请使用while number != 1

def collatz(number):
    if number % 2:
        number = (3 * number) + 1
    else:
        number =  number//2
    print(number)
    return number

number = int(input("Number: "))
while(number != 1):
    number = collatz(number)

答案 1 :(得分:0)

def collatz(number):
    If number%2==0:
        return number //2
    else:
        return 3*number+1
userInput = int(input())
while userInput != 1:
    userInput = collatz(userInput)
    print(userInput)

我希望这会有所帮助.. 根据您提供的链接中的信息,当您执行num // 2(地板分割,因为您只需要整数而不是浮动)时,每个数字最终变为1,偶数和3 * num + 1的结果反复出现