Python 中的基本计算器

Basic Calculator in Python

我是 Python 的新手。我试图制作一个基本的计算器,但我找不到问题所在。它 returns 退出代码为 0,但什么也没有出现,没有输入什么也没有。对此的任何帮助将不胜感激。谢谢。

def add(num1, num2):
    return num1 + num2

def subtract(num1, num2):
    return num1 - num2

def div(num1, num2):
    return num1/num2

def multi(num1,num2):
    return num1*num2

def main():
    operation = input("What do you want to do?(+, -, *, or /):")
    if (operation != "+" and operation != "-" and operation != "*" and operation != "/"):
        print("Your input is invalid. Please enter a valid input.")
    else:
        num1 = float(input("Enter value for num1: "))
        num2 = float(input("Enter value for num2: "))
        if (operation == "+"):
            print(add(num1, num2))
        elif (operation == "-"):
            print(subtract(num1, num2))
        elif (operation == "*"):
            print(multi(num1,num2))
        elif (operation == "/"):
            print(div(num1,num2))

    main()

我想你错过了:

if __name__ == "__main__":
    main()

您在 main 内部对 main() 的调用本身不会执行,这可能就是您没有获得任何输入的原因。

除此之外,您的代码应该按预期工作(确保您不除以零;))。

编辑:为了让我的回答更明显,您应该这样做:

def main():
    operation = input("What do you want to do?(+, -, *, or /):")
    if (operation != "+" and operation != "-" and operation != "*" and operation != "/"):
        print("Your input is invalid. Please enter a valid input.")
    else:
        num1 = float(input("Enter value for num1: "))
        num2 = float(input("Enter value for num2: "))
        if (operation == "+"):
            print(add(num1, num2))
        elif (operation == "-"):
            print(subtract(num1, num2))
        elif (operation == "*"):
            print(multi(num1,num2))
        elif (operation == "/"):
            print(div(num1,num2))

if __name__ == "__main__":
    main()

根据上面的代码,您实际上从未运行宁main()。现在,您说 main 的定义是提示用户,检查输入是否正确,然后进行数学运算。最后的 main() 导致程序在完成所有这些操作后重复(不确定是否需要循环)。

如果你不想循环,只想运行一次计算器,只需删除最后一个main()的缩进,因为现在缩进意味着它在里面def main()。只需将它向左移动到与 def main(): 相同的缩进级别,您的程序应该 运行 没问题。

num1=float(input("enter the first number :"))
op = input("sellect the operation :")
num2 = float(input("enter the second number :"))
if op== "+" :
    print(num1+num2)
elif op == "-":
    print(num1 - num2)
elif op == "*":
    print(num1*num2)
elif op == "/":
    print(num1 / num2)
else:
    print("please enter a real operation ")   
 #this one is more simple

基本计算器:

方法一:

# This function adds two numbers 
def add(x, y):
    return x + y
# This function subtracts two numbers 
def subtract(x, y):
    return x - y
# This function multiplies two numbers
def multiply(x, y):
    return x * y
# This function divides two numbers
def divide(x, y):
    return x / y
print("Select operation.")
print("1.Add")
print("2.Subtract")
print("3.Multiply")
print("4.Divide")
# Take input from the user 
choice = input("Enter choice(1/2/3/4): ")
num1 = float(input("Enter first number (Should be in numeric form): "))
num2 = float(input("Enter second number (Should be in numeric form): "))
if choice == '1':
    print(num1,"+",num2,"=", add(num1,num2))
elif choice == '2':
    print(num1,"-",num2,"=", subtract(num1,num2))
elif choice == '3':
    print(num1,"*",num2,"=", multiply(num1,num2))
elif choice == '4':
    print(num1,"/",num2,"=", divide(num1,num2))
else:
    print("Invalid input")

方法二:

print("Select operation.")
print("1.Add")
print("2.Subtract")
print("3.Multiply")
print("4.Divide")
# Take input from the user 
choice = input("Enter choice(1/2/3/4): ")
num1 = float(input("Enter first number (Should be in numeric form): "))
num2 = float(input("Enter second number (Should be in numeric form): "))
if choice == '1':
    print(num1,"+",num2,"=", num1+num2)
elif choice == '2':
    print(num1,"-",num2,"=", num1-num2)
elif choice == '3':
    print(num1,"*",num2,"=", num1*num2)
elif choice == '4':
    print(num1,"/",num2,"=", num1/num2)
else:
    print("Invalid input")

快乐学习...:)