0

我正在尝试为作业创建一个简单的 python 计算器。它的基本思想很简单,并且在网上到处都有记录,但我正在尝试创建一个用户实际输入运算符的地方。因此,用户不会打印 1:加法、2:减法等,而是选择 + 表示加法、- 表示减法等。我也在尝试让 Q 或 q 退出程序。关于如何允许用户键入运算符来表示操作的任何想法?

注意:我知道我仍然需要定义我的余数运算。

    import math

loop = 1
choice = 0

while loop == 1:
    print("your options are:")
    print("+ Addition")
    print("- Subtraction")
    print("* Multiplication")
    print("/ Division")
    print("% Remainder")
    print("Q Quit")
    print("***************************")

    choice = str(input("Choose your option: "))
    if choice == +:
        ad1 = float(input("Add this: "))
        ad2 = float(input("to this: "))
        print(ad1, "+", ad2, "=", ad1 + ad2)
    elif choice == -:
        su2 = float(input("Subtract this: "))
        su1 = float(input("from this: "))
        print(su1, "-", su2, "=", su1 - su2)
    elif choice == *:
        mu1 = float(input("Multiply this: "))
        mu2 = float(input("with this: "))
        print(mu1, "*", mu2, "=", mu1 * mu2)
    elif choice == /:
        di1 = float(input("Divide this: "))
        di2 = float(input("by this: "))
        print(di1, "/", di2, "=", di1 / di2)
    elif choice == Q:
        loop = 0

print("Thank-you for using calculator")
4

2 回答 2

2

首先,您不需要分配choice为零

其次,您的代码是正确的,但是您需要在 if 语句中的运算符周围加上引号,如下所示

if choice == '+':

表明您正在检查一个字符串

让你的循环像这样:

while 1: #or while True:
    #do stuff

    elif choice == 'Q': #qoutes around Q
           break #use the `break` keyword to end the while loop

然后,您无需loop在程序顶部分配

于 2013-09-24T00:41:58.930 回答
0

您应该尝试替换if choice == +if choice == "+".

您从输入中得到的实际上是一个字符串,这意味着它可以包含任何字符,甚至是代表运算符的字符。

于 2013-09-24T00:41:13.043 回答