Python 计算器代码

Python Calculator Code

我是 python 的新手,并尝试开发一个计算器。我创建它是为了让它一直问你问题,直到你按 9 退出。我在执行此操作时出错,它一直要求我输入第一个数字并不断循环

loop = 1
oper = 0

while loop == 1:    
    num1 = input("Enter the first number: ")
    print num1

    oper = input("+, -, *, /,9: ")
    print oper

    num2 = input("Enter the second number: ")
    print num2

    if oper == "+":
        result = int(num1) + int(num2)
    elif oper == "-":
        result = int(num1) - int(num2)
    elif oper == "*":
        result = int(num1) * int(num2)
    elif oper == "/":
        result = int(num1) / int(num2)
    elif oper == "9":
        loop = 0


    print "The result of " + str(num1) + str(oper) + str(num2) + " is " + str(result)

    input("\nPress 9 to exit.")

这是因为你从一开始就没有做任何破坏的事情。尝试将 oper 更改为包含 9:

oper = raw_input("+, -, /, *, or 9 (to exit)": )

然后包含 elif 语句并将 loop 更改为 0 以退出 while 循环:

elif oper == "9":
    loop = 0

另外,处理好你的缩进:

loop = 1

while loop == 1:    

    num1 = input("Enter the first number: ")
    print num1

    oper = input("+, -, *, /,9: ")
    print oper

    num2 = input("Enter the second number: ")
    print num2

    if oper == "+":
        result = int(num1) + int(num2)
    elif oper == "-":
        result = int(num1) - int(num2)
    elif oper == "*":
        result = int(num1) * int(num2)
    elif oper == "/":
        result = int(num1) / int(num2)
    elif oper == "9":
        loop = 0


print "The result of " + str(num1) + str(oper) + str(num2) + " is " + str(result)

问题似乎是你没有缩进。 Python 关心缩进多少,因此只有缩进的行才会被视为 while 循环的一部分。这里只有第一行 (num1 = input...) 被认为是 while 循环的一部分。解决此问题的最简单方法是在应该在循环中的每一行之前添加四个空格(以及在 if 语句中的每一行之前添加四个空格)。

有关更多帮助,请参阅 http://www.diveintopython.net/getting_to_know_python/indenting_code.html

您遇到了缩进问题,这是使用 break 退出 while 循环的更好方法:

loop = 1
oper = 0

while loop == 1:

    x = input("Press 9 to exit otherwise anything to continue:")#much better way
    if x == "9":
        break
    num1 = input("Enter the first number: ")
    print (num1)

    oper = input("+, -, *, /: ")
    print (oper)

    num2 = input("Enter the second number: ")
    print (num2)

    if oper == "+":
        result = int(num1) + int(num2)
    elif oper == "-":
        result = int(num1) - int(num2)
    elif oper == "*":
        result = int(num1) * int(num2)
    elif oper == "/":
        result = int(num1) / int(num2):
    else:
       print("Invalid operator!") #if user inputs something else other than those


    print ("The result of " + str(num1) + str(oper) + str(num2) + " is " + str(result))