python-3.x - 如何将符号字符变成浮点数
问题描述
当用户输入@符号时,我很难弄清楚如何让我的程序“中断”。
我必须创建一个简单的计算器,用户在其中输入一个数字、一个运算符和一个第二个数字。
我已经在运行了。
我只是想不通当用户被要求输入信息时,一旦用户输入“@”符号,我应该如何让我的程序停止。
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")
解决方案
我修改您的代码的一种方法是,一旦输入第一个数字,它就会检查它是否是数字。如果是,没问题。如果不是,则将其转换为稍后检查的字符串。
num1 = input("Enter First Number: ")
if num1 != "@":
num1 = float(num1)
else:
num1 = str(num1)
像那样。然后您稍后只需检查“@”符号:
while True:
if num1 == "@":
break
最后一件事:您应该将所有代码移动到 while 循环中,因此在它进行计算后它会再次询问(如果这是意图),因为现在它只循环打印答案。