Python ';int';对象没有属性';输出';
这可能是一个愚蠢的问题。我刚刚创建了一个函数,该函数将一个数字除以,如果该数字为偶数,则给出余数,否则将在python中执行一些其他数学运算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
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
,并用结果替换它。