2016-04-03 7 views
-1

私はPythonで分割して掛け算する2つの再帰関数を作成しなければなりません:答えがあれば== "M":print(mult(a、b))

def mult(a, b): 
    if a == 0: 
     return 0 
    elif a == 1: 
     return b 
    else: 
     return mult(a-1, b) + b 

def div(a, b): 
    if (a >= b): 
     return div(a - b, b) + 1 
    else: return 0 

def main(): 

    a = input("Please enter your first value.\n") 
    b = input("Please enter your second value.\n") 

    answer = input("Please enter M or D. M to multiply your 2 values or D for Divide.\n") 

    if answer == "M": 
     print(mult(a, b)) 
    elif answer == "D": 
     print(div(a, b)) 

main() 
+1

何が間違っていますか? – zondo

答えて

1

あなたがPython 3を使用していると仮定すると、abの両方が文字列です。あなたは、整数に変換したい場合は、行うことができます:

a = int(input("Please enter your first value.\n")) 
b = int(input("Please enter your second value.\n")) 
0

あなたがそうそして、常に文字列を返しますab

のPython 3でinput()機能をPythonの3使用している可能性があります整数ではなくコード内の文字列になります。あなたは、あなたがエラーを提供する、またはより良い、エラーをGoogleで検索している可能性が

0

a = int(a)b = int(b)を使用して整数に明示的に小文字を入力する必要があります。あなたのコードを実行しましたが、問題は入力が文字列であることですが、整数として使用しようとしています。

これらの行:

a = input("Please enter your first value.\n") 
b = input("Please enter your second value.\n") 

はされている必要があります。また、あなたのコードは小文字の "M" と "D" のためにチェックすることができ

a = int(input("Please enter your first value.\n")) 
b = int(input("Please enter your second value.\n")) 

、あなたは(.upperを追加することによってそれを行うことができます)あなたの入力行の最後に。

answer = input("Please enter M or D. M to multiply your 2 values or D for Divide.\n").upper()