Последовательность Коллатца. Python

Не получается выполнить второй этап этой задачи, в обучающих материалах использовались только эти функции и инструкции + инструкция return. Можно использовать циклы for, while:

Задача

#Первый этап задачи (выполнил)
def collatz():
    numberX = int(input())
    if numberX % 2 == 0:
        print(numberX // 2)
    else:
        print(3 * numberX + 1)

#Второй этап задачи (не выполнил, выдаёт ошибку.)
number = collatz()
if int(number) % 2 == 0:
    print(int(collatz()) // 2)
else:
    print(3 * int(collatz()) + 1)

Ответы (3 шт):

Автор решения: Danis

как сказал @entithat функция collatz должна что то возвращать, поэтому print замените на return

def collatz():
    numberX = int(input())
    if numberX % 2 == 0:
        return numberX // 2
    else:
        return 3 * numberX + 1
→ Ссылка
Автор решения: roddar92

Действительно, функция должна что-то возвращать, если идёт речь об одном этапе. А если хотите довести число до единицы, добавьте цикл while.

def collatz_operation(n):
    return n // 2 if n % 2 == 0 else 3 * n + 1

def collatz():
    number = int(input())
    while number > 1:
        print(number)
        number = collatz_operation(number)
    print(1)
→ Ссылка
Автор решения: off set 552
def collatz(n):

    while n != 1:

        print(n)

        if n % 2 == 1:

            n= 3 * n + 1

        else:

            n = n // 2

        print(n)

n= int(input("Введи число:"))

collatz(n)
→ Ссылка