私は単純な乗算プログラムをPythonで初めて書こうとしています。私のコードも以下に掲載されています。Pythonスクリプトはネストされたif文にtyperrorを与えます
#!/usr/bin/env python
from math import *
def main():
multiplier = raw_input('multiplier?')
multiplicand = raw_input('multiplicand?')
print (recursive(multiplier, multiplicand))
def recursive(multiplier, multiplicand):
if (multiplier == 0):
answer = 0
if (multiplier == 1):
answer = multiplicand
if ((multiplier > 1) & ((multiplier % 2) == 0)):
answer = recursive((multiplier/2), (multiplicand*2))
if ((multiplier > 1) & ((multiplier % 2) == 1)):
answer = (multiplicand + (recursive((multiplier/2), (multiplicand*2))))
return answer
main()
エラー:
multiplier?5
multiplicand?5
Traceback (most recent call last):
File "./multiplication.py", line 20, in <module>
main()
File "./multiplication.py", line 7, in main
print (recursive(multiplier, multiplicand))
File "./multiplication.py", line 14, in recursive
if ((multiplier > 1) & ((multiplier % 2) == 0)):
TypeError: not all arguments converted during string formatting
があるが、私は数が桁/整数の場合でも、「5」 –
右数で入力していたときに、それは文字列の書式設定を行います。 'input'を使用して設定された変数自体が文字列であるため、変換する必要があります。 – Pythonista
よろしくお願いします –