2016-06-08 45 views
-3
print("Welcome to MusCalculator") 
print("For adding two no type add") 
print("for mutiplying type multiply") 
print("for subtraction type subtract") 
print("for dividing type divide") 

def add_numbers(x, y): 
    if input == "addition": 
     addition = x + y 
     print addition 

    if input == "multiply": 
     multiply = x*y 
     print multiply 

    if input == "subtract": 
     if x > y: 
      sub = x - y 
      print sub 
     else: 
      sub = y - x 
      print sub 

    if input == "divide": 
     div = x/y 
     print div 
    else: 
     print("Use me if you know me") 



x = input("First No.") 
y = input("Second No.") 
addition = x + y 
c = input("Type Operation") 

add_numbers(x, y) 

誤差構建兩位數的簡單操作型計算器?停留在錯誤

Traceback (most recent call last): 
    File "C:\Users\Aafaq\workspace\python\project 1.py", line 34, in <module> 
    c = input("Type Operation") 
    File "C:\Program Files (x86)\eclipse\plugins\org.python.pydev_4.5.5.201603221110\pysrc\pydev_sitecustomize\sitecustomize.py", line 141, in input 
    return eval(raw_input(prompt)) 
    File "<string>", line 1, in <module> 
NameError: name 'addition' is not defined 
+0

'input'是一個功能 - 所以你不能把它作爲一個變量(你還沒有定義)。將'c'作爲參數傳遞給'add_numbers'並用它來查看用戶的選擇是什麼。另外,你的'if'和'else'結構會搞砸。你的意思是使用'elif'而不是附加的'if's? –

回答

0

有在你的代碼中的一些問題。一些在下面提到。 在您的主代碼中使用了加法變量,您可能想要嘗試使用不同的名稱或聲明加法作爲全局變量。

之下或之上打印語句: 相加= 0

而且要設置接收的操作爲變量名C,這是沒有在任何地方提到,本來應該設置爲變量名輸入(這是一個系統定義函數名稱,您不應該使用該名稱與字符串進行比較)。

你可能嘗試做這樣的事情:

operation = " " 
addition = 0 
def add_numbers(x, y): 
    if operation == "addition": 
     addition = x + y 
     print addition 

    if input == "multiply": 
     multiply = x*y 
     print multiply 

    if operation == "subtract": 
     if x > y: 
      sub = x - y 
      print sub 
     else: 
      sub = y - x 
      print sub 

    if operation == "divide": 
     div = x/y 
     print div 
    else: 
     print("Use me if you know me") 


x = input("First No.") 
y = input("Second No.") 
addition = x + y 
operation = input("Type Operation") 

add_numbers(x, y) 
+0

還有一些東西。首先在函數add_numbers中的'operation'從全局上下文中取出。提供這個作爲附加參數會更好。第二,名稱「add_function」是誤導性的,因爲這個函數不僅僅是添加兩個數字。當然,在Python 2中使用'input'是很危險的。最好使用'raw_input'並將結果與​​'int()'(需要的地方)一起轉換。 – Matthias

+0

是的,更好的方法是傳遞操作參數並更改函數名稱,因爲它比添加數字做得更多。 –