2017-04-16 96 views
0

好吧所以我似乎有一個問題在我的主要功能的某個地方。我能夠同時輸入Base和Exponent,當它移動到下一個函數時,它會輸出一個不受支持的操作數錯誤。我不完全確定我做錯了什麼。基本上我所要做的就是輸入一個基數和指數,然後輸出答案。遞歸聲明錯誤

我目前正在使用2.x編寫,但是,我也可以使用3.x 下面是我目前的代碼。

def power (base, exponent): 
    if exponent == 0: 
     return base 
    else : 
     return base * power(base, exponent - 1) 


def main(): 
    base = input('Please Enter An Integer for the Base: ') 
    exponent = input ('Please Enter An Exponent: ') 
    print(power(base,exponent)) 
main() 
+0

爲什麼會程序給我翻倍回答?例如,當輸入2^2時它輸出8,當它應該是4或當我做4^2時它給我64.0.0 – Yrroth

回答

0

應該轉換基地和指數型爲int /浮...由於輸入語句的類型是海峽。

下面的代碼工作:

def power (base, exponent): 
    if exponent == 0: 
     return 1 
    if exponent == 1: 
     return base 
    else : 
     return base * power(base, exponent - 1) 

def main(): 
    base = int(input('Please Enter An Integer for the Base: ')) 
    exponent = int(input ('Please Enter An Exponent: ')) 
    print(power(base,exponent)) 
main() 
+2

OP表示代碼在Py2上運行;在Py2上,'自動'輸入'eval'輸入字符串,所以如果他們輸入了數字,它就是'int' /'float'。 – ShadowRanger

+0

數字我會錯過這樣一個簡單的解決方法-.-現在試圖找出爲什麼我的數學輸出不正確。 4^2絕對不是64 – Yrroth

+0

@Yrroth: if exponent == 1 will fine fine add this before also: if exponent == 0: return 1 – anati