Multiple assignment from method results in TypeError: Int is not iterable in Python
Multiple assignment from method results in TypeError: Int is not iterable in Python
我正在解决一个基本问题,它输出用于达到在方法调用时输入的总和的硬币类型的数量。
虽然我可以用其他一些方式做到这一点,但我想创建一个方法并想使用多个赋值。
divide方法应该得到2个输入,并且应该return原始值的除法和余数。
def divide(coin,value):
if value >= coin:
remains = value % coin
value = (value - remains) / coin
return value, remains
else:
return 0
主要函数如下,它调用divide函数,将coin和value作为参数发送,更新coin的数量和初始值。
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' object is not iterable
我没有使用任何迭代(至少不是故意的)。为什么我有这个错误?如果价值小于硬币,除法应该 return 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))
我正在解决一个基本问题,它输出用于达到在方法调用时输入的总和的硬币类型的数量。
虽然我可以用其他一些方式做到这一点,但我想创建一个方法并想使用多个赋值。
divide方法应该得到2个输入,并且应该return原始值的除法和余数。
def divide(coin,value):
if value >= coin:
remains = value % coin
value = (value - remains) / coin
return value, remains
else:
return 0
主要函数如下,它调用divide函数,将coin和value作为参数发送,更新coin的数量和初始值。
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' object is not iterable
我没有使用任何迭代(至少不是故意的)。为什么我有这个错误?如果价值小于硬币,除法应该 return 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))