Спасибо за совет.

у цикл не заканчивается в первый разcollatz() возвращает 1?

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

try:
    number = int(input('Please enter an integer except zero.\n'))
except ValueError:
    print("ValueError: invalid value.")
    number = int(input('You must enter an integer except zero.\n'))


while collatz() != 1:   # if input(4), the output will be: 4 2 1 4 2 1 
    collatz()


# another way, which works:
while number != 1:  --> # also input(4), the output will be: 4 2 1
    collatz()

Ответы на вопрос(1)

Ваш ответ на вопрос