私は、メソッド呼び出しで入力された合計に達するために使用されるコインの種類の数を出力する基本的な問題に取り組んでいます。
他の方法でそれを行うこともできますが、メソッドを作成し、複数の割り当てを使用したいと考えていました。
分割メソッドは 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)
)しかし、1つ以上のコインが0として計算される場合(たとえば、5を送信すると、出力は になるはずです(1,0,0)
)、次のエラーが発生します:
twos、x =除算(2、x)TypeError: 'int'オブジェクトは反復可能ではありません
反復は使用しませんでした (少なくとも意図的にではありません)。なぜこのエラーが発生するのですか? 値がコインより小さい場合、divide メソッドは 0 を返すはずですよね?