从方法进行多次赋值会导致 TypeError:Int 在 Python 中不可迭代



我正在解决一个基本问题,它输出用于达到方法调用时输入的总和的硬币类型数量。

虽然我可以用其他方式做到这一点,但我想创建一个方法,并希望使用多个赋值。

除法应该得到 2 个输入,并且应该返回除法和原始值的剩余。

def divide(coin,value):
if value >= coin:
remains = value % coin
value = (value - remains) / coin
return value, remains
else:
return 0

主函数如下,它调用除法函数,发送硬币和值作为参数,以更新硬币的数量和初始值。

def stamps(x):
fives, x = divide(5, x)
twos, x = divide(2, x)
print(fives, twos, x)  
print stamps(0)

当硬币输出计算为正整数时,这工作正常。(如输入 8 将输出(1,1,1))但是,如果一个或多个硬币计算为 0(例如,如果您发送 5,则输出应为(1,0,0)),但它会给出以下错误:

twos, x =divide(2, x) TypeError: 'int' 对象不可迭代

我没有使用任何迭代(至少不是故意的)。为什么会出现此错误?如果价值小于硬币,除法应该返回 0 不是正确的吗?

你的代码是正确的,唯一的问题是你在 else 条件下只返回一个值,这就是抛出这个错误。

试试下面的代码-

def divide(coin, value):
if value >= coin:
remains = value % coin
value = (value - remains) / coin
return value, remains
else:
return 0, 0  #or return 0, value
def stamps(x):
fives, x = divide(5, x)
twos, x = divide(2, x)
print(fives, twos, x)
print(stamps(0))

相关内容

  • 没有找到相关文章

最新更新