Collat​​z功能:奇怪的尝试/除了Bugs

时间:2017-09-13 05:10:22

标签: python collatz

所以我正在进行编码,而我正在使用 Automate the Boring Stuff 一书进行练习。我想出了如何编写原始函数,但后来我想尝试添加更多内容,看看我是否可以在一个函数中使用它。

所以在Python 3.6.2中,如果我输入字符串,正整数,没有任何内容或输入"退出",此代码可以正常工作。但是,如果我在其他人之间的任何一点输入1,那么请尝试退出",在我进入"退出"之前,它不会退出。和我之前输入的次数相同1.(就像我必须取消它们一样)。

如果我输入0或任何int< 0,如果我尝试退出"它打印0,然后"输入一个正整数!"。

我刚刚加入时无法发布图片,但是有一个链接:https://imgur.com/a/n4nI7

我在类似的帖子上找不到关于这个特定问题的任何内容,我不会太担心这种情况,但我真的很好奇计算机在做什么

有人可以向我解释一下吗?

def collatz():
    number = input('Enter a positive integer: ')
    try:
        while number != 1:
            number = int(number) #If value is not int in next lines, execpt.
            if number <= 0:
                print('I said to enter a POSITIVE integer!')
                collatz()
            if number == 1:
                print('How about another number?')
                collatz()
            elif number % 2 == 0:  #Checks if even number
                number = number // 2
                print(number)
            else:                  #For odd numbers
                number = number * 3 + 1  
                print(number)

        print('Cool, huh? Try another, or type "quit" to exit.')
        collatz()

    except:
        if str(number) == 'quit':
            quit
        else:
            print('Enter an INTEGER!')
            collatz()


collatz()

0 个答案:

没有答案