Python计算器Cod

2024-04-28 08:10:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我对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.")

Tags: theloopnumberinputresult计算器intprint
3条回答

那是因为你一开始从不做任何事来打破它。尝试将您的oper更改为包括9

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

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

^{pr2}$

另外,处理你的缩进:

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 for the 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))

相关问题 更多 >