简体   繁体   English

你能帮我解决这个问题吗? 我正在尝试使用 python 创建一个简单的计算器

[英]can you help me with this? im trying to crete a simple calculator using python

ive been trying to run this code but the fuctions i have created are not being called我一直在尝试运行此代码,但没有调用我创建的功能

def add(*args,**kwargs):
    sum=0
    for m in args:
        sum=sum+m
    for n in kwargs.values():
        sum=sum+n
    return sum
def subtract(*args,**kwargs):

    sum=0
    for m in args:
        sum=m-sum
    for n in kwargs.values():
        sum=n-sum
    return sum

def multiply(*args,**kwargs):
    sum=1
    for m in args:
        sum=m*sum
    for n in kwargs.values():
        sum=n*sum
    return sum

def divide(*args,**kwargs):
    sum=1
    for m in args:
        sum=m/sum
    for n in kwargs.values():
        sum=n/sum
    return sum


def square(*args,**kwargs):
    sum=1
    for m in args:
        sum=sum*m**2
    for n in kwargs.values():
        sum=sum*n**2
    return sum

def Menu():
    print """
            What operation do you want to perform?
            1. Addition
        2. Subtraction
            3. Multiply
            4. Divide
            5. Square
            6. Exit
            """

    choice = input("Enter choice:")


    tup1= float(input("Enter numbers: "))


    if choice == ("1,add, Add"):
        print add()

    elif choice == ("2,subtract, Subtract"):
        print subtract()

    elif choice == ("3,multiply, Multiply"):
        print divide()

    elif choice == ("4,divide, Divide"):
        print multiply()

    elif choice == ("5,square, Square"):
        print multiply()

    elif choice == ("6,exit, Exit"):
        exit()
    else:

        Menu()
Menu()

Choice will never equal all of ("6,exit, Exit") . Choice永远不会等于("6,exit, Exit") What you want is你想要的是

if choice in ("6","exit", "Exit"):

The code below converts the choice string to lowercase, then checks if it matches anything in the list.下面的代码将choice字符串转换为小写,然后检查它是否与列表中的任何内容匹配。

if choice.lower() in ['1','add']:
    print add(1,2,3)

change the lines where you are checking for choices:更改您正在检查选项的行:

if choice == ("1,add, Add"):

to:到:

if choice in ["1", "add", "Add"]:

At the moment you are checking for an exact string目前您正在检查一个确切的字符串

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM