Python 构建一个简单的两位数运算型计算器?陷入错误

Python 构建一个简单的两位数运算型计算器?陷入错误,python,Python,错误是 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": addit

错误是

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)
回溯(最近一次呼叫最后一次):
文件“C:\Users\Aafaq\workspace\python\project 1.py”,第34行,在
c=输入(“类型操作”)
文件“C:\Program Files(x86)\eclipse\plugins\org.python.pydev_4.5.5.201603221110\pysrc\pydev_sitecustomize\sitecustomize.py”,第141行,输入
返回评估(原始输入(提示))
文件“”,第1行,在
名称错误:未定义名称“添加”

您的代码中存在一些问题。下面提到了一些。 如果主代码中使用了加法变量,则可能需要尝试其他名称或将加法声明为全局变量

在打印报表下方或上方: 加法=0

此外,您正在将接收到的操作设置为变量名c,该变量名未在任何地方引用,该变量名应设置为变量名输入(这是一个系统定义函数名,您不应使用该名称将其与字符串进行比较)

您可能正在尝试这样做:

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

input
是一个函数,因此不能将其用作变量(您甚至还没有定义)。将
c
作为参数传递给
add_numbers
,并使用该参数查看用户的选择。此外,您的
if
else
结构也会出错。您是否打算使用
elif
而不是附加的
if
s?还有一些事情。函数
添加编号
中的第一个
操作
从全局上下文中取出。最好将其作为附加参数提供。第二,“add_function”这个名字有误导性,因为这个函数不仅仅是添加两个数字。当然,在Python2中使用
input
是危险的。最好使用
raw\u input
并使用
int()
强制转换结果(如果需要)。是的,更好的方法是传递操作参数并更改函数名,因为它所做的工作远不止添加数字。
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)