2016-04-03 19 views
-1

ben bölmek iki özyinelemeli fonksiyonlar yapmak ve Python çoğalmaya var ve aşağıdaki kodla sorunun ne bilmiyorum:eğer cevap == "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

Sorun nedir? – zondo

cevap

1

Python 3'ü kullandığınızı varsayarsak, a ve b dizeleridir. Eğer tamsayılar onları dönüştürmek istiyorsanız, bunu yapabilirsiniz:

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

kadar sonra hep bir dize döndürür a ve b

Python 3'te input() fonksiyon Python 3. kullanıyor olması muhtemeldir Tamsayılar yerine kodunuzdaki dizeler olacaktır. Sen hatayı sağlanan veya daha iyisi, hata googled olabilirdi

0

a = int(a) ve b = int(b) kullanarak tamsayılar için bunları açıkça harf yazmalısınız. Kodunu çalıştırdım ve problem senin girişin bir dize, ama onu bir tamsayı olarak kullanmaya çalışıyorsun.

Bu satırlar:

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

olmalıydı:

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

Ayrıca kod küçük "M" ve "D" için kontrol edebilir, bunu yapabilirsiniz .upper ekleyerek() giriş hattınızın sonunda.

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