【问题标题】:How to make a Symbol Chracter into a float如何将符号字符变成浮点数
【发布时间】:2019-05-09 18:20:18
【问题描述】:

当用户输入@符号时,我很难弄清楚如何让我的程序“中断”。

我必须创建一个简单的计算器,用户在其中输入一个数字、一个运算符和一个第二个数字。

我已经在运行了。

我只是想不通当用户被要求输入信息时,一旦用户输入“@”符号,我应该如何让我的程序停止。


num1 = float(input("Enter First Number: "))
operator = input("Enter Operator: ")
num2 = float(input("Enter Second Number: "))


while True:
    if num1 == float(["@"]):
        break
    if operator == "+":
        print("Result:" ,num1 ,operator, num2, "=" , num1+num2 )

    elif operator == "-":
        print("Result: " ,num1 ,operator, num2, "=" ,num1-num2)

    elif operator == "/":
        if num2 == 0 :
            print("Second Number Cannot Be A ZERO")
        else: print("Result: " ,num1 ,operator, num2, "=" ,num1/num2)

    elif operator =="**":
        print("Result: ", num1, operator, num2, "=", num1 ** num2)

    elif operator == "%":
        if num2 == 0 :
            print("Second Number Cannot Be A ZERO")
        print("Result: " ,num1 ,operator, num2, "=" ,num1%num2)

    elif operator == "*":
        print("Result: " ,num1 ,operator, num2, "=" ,num1*num2)

    else:
        print("Invaid Operator")
print("Thank you for playing this Simple Calculator designed by Joss")

【问题讨论】:

    标签: python-3.x character symbols break


    【解决方案1】:

    通过这个,我会做一些调整,而不是 while True,使用一个等于 True 的变量,这样你就可以在输入错误时将其更改为 False 并打破循环。

    kill = True  
    while kill:  
        if operator = '\@' 
            kill = False
        elif operator = '+':  
            add....
    

    如果您不仅要查找 @ 字符和其他字符,则可以将所有函数运算符组成一个数组,例如 operand = ['+','\-','/','**'] 等,并让第一个 if 说出类似

    的内容
    kill = True  
    while kill:  
        if operator not in operand: 
            kill = False
        elif operator = '+':  
            add....  
    

    【讨论】:

      【解决方案2】:

      我修改您的代码的一种方法是,一旦输入第一个数字,它就会检查它是否是数字。如果是,没问题。如果不是,则将其转换为稍后检查的字符串。

          num1 = input("Enter First Number: ")
      if num1 != "@":
          num1 = float(num1)
      else:
          num1 = str(num1)
      

      这样。那么您稍后只需检查“@”符号:

      while True:
        if num1 == "@":
          break
      

      最后一件事:您应该将所有代码移到 while 循环中,以便在它进行计算后它会再次询问(如果这是本意),因为现在它只循环打印答案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-23
        • 1970-01-01
        • 2010-10-23
        • 1970-01-01
        相关资源
        最近更新 更多