Python ';int';对象没有属性';输出';

Python ';int';对象没有属性';输出';,python,while-loop,python-3.9,Python,While Loop,Python 3.9,这可能是一个愚蠢的问题。我刚刚创建了一个函数,该函数将一个数字除以,如果该数字为偶数,则给出余数,否则将在python中执行一些其他数学运算 def collataz(number): if number % 2 == 0: output = number // 2 return int(output) else: output = 3 * number + 1 return int(output) import

这可能是一个愚蠢的问题。我刚刚创建了一个函数,该函数将一个数字除以,如果该数字为偶数,则给出余数,否则将在python中执行一些其他数学运算

def collataz(number):
    if number % 2 == 0:
        output = number // 2
        return int(output)

    else:
        output = 3 * number + 1
        return int(output)

import sys

try:
    c = collataz(int(input("Enter int")))
    while c.output != 1:
        print(c)
except KeyboardInterrupt:
    sys.exit()

但是,当我运行此代码时,在请求输入后,它会出现以下错误
'int'对象没有属性“output”
如何解决此问题?另外,请告诉我的代码出现此错误的原因,以便我能够理解问题。如果有什么不清楚,请告诉我


谢谢,

您的
collatz
函数中的名称
output
,除此之外没有任何意义。您
返回的值
只是一个int,您将其分配给名称
c

我认为您希望代码的最后一部分类似于:

    c = int(input("Enter int"))
    while c != 1:
        c = collataz(c)
        print(c)

在应用了您的解决方案后,它按预期工作。但是你能解释一下这部分的作用吗
c=collataz(c)
collataz(c)
调用
collataz
函数,当前值为
c
=
是赋值运算符;它获取右侧的值(这是调用函数的结果)并将其分配给左侧的名称(这是变量
c
)。每次执行这行代码时,它都通过函数运行
c
,并用结果替换它。