Python 具有 math.sqrt 功能的计算器
Python calculator with the math.sqrt function
我是 Python 的新手,但我想编写一个计算器。除了 sqrt 函数,它工作正常。每次我尝试计算数字的平方根时,都会收到错误消息。
我知道可能有数千种方法可以编写更好的计算器,但我真的很想知道我做错了什么以及如何解决这个问题。
这是我的代码:
import math
no1 = float(input('Insert a number: '))
operator = input("Operator: ").upper()
result = no1
while operator != "=":
if (operator) == "-":
no2 = float(input('Insert next number: '))
result = result - no2
operator = input("Operator: ").upper()
elif (operator) == "/":
no2 = float(input('Insert next number: '))
result = result / no2
operator = input("Operator: ").upper()
elif (operator) == "+":
no2 = float(input('Insert next number: '))
result = result + no2
operator = input("Operator: ").upper()
elif (operator) == "*":
no2 = float(input('Insert next number: '))
result = result * no2
operator = input("Operator: ").upper()
elif (operator) == "^":
no2 = float(input('Insert next number: '))
result = math.pow(result,no2)
operator = input("Operator: ").upper()
elif (operator) == "sqrt":
result = math.sqrt(no1)
else:
print('Error!')
operator = "="
print(result)
非常感谢!
您正在将输入转换为大写,然后测试 'sqrt'
。改为测试 'SQRT'
。您还需要删除 while
循环,否则它将永远不会退出。
您将运算符转换为大写,但 elif 为小写 'sqrt'。
改为
elif (operator) == "SQRT":
result = math.sqrt(no1)
我是 Python 的新手,但我想编写一个计算器。除了 sqrt 函数,它工作正常。每次我尝试计算数字的平方根时,都会收到错误消息。 我知道可能有数千种方法可以编写更好的计算器,但我真的很想知道我做错了什么以及如何解决这个问题。 这是我的代码:
import math
no1 = float(input('Insert a number: '))
operator = input("Operator: ").upper()
result = no1
while operator != "=":
if (operator) == "-":
no2 = float(input('Insert next number: '))
result = result - no2
operator = input("Operator: ").upper()
elif (operator) == "/":
no2 = float(input('Insert next number: '))
result = result / no2
operator = input("Operator: ").upper()
elif (operator) == "+":
no2 = float(input('Insert next number: '))
result = result + no2
operator = input("Operator: ").upper()
elif (operator) == "*":
no2 = float(input('Insert next number: '))
result = result * no2
operator = input("Operator: ").upper()
elif (operator) == "^":
no2 = float(input('Insert next number: '))
result = math.pow(result,no2)
operator = input("Operator: ").upper()
elif (operator) == "sqrt":
result = math.sqrt(no1)
else:
print('Error!')
operator = "="
print(result)
非常感谢!
您正在将输入转换为大写,然后测试 'sqrt'
。改为测试 'SQRT'
。您还需要删除 while
循环,否则它将永远不会退出。
您将运算符转换为大写,但 elif 为小写 'sqrt'。
改为
elif (operator) == "SQRT":
result = math.sqrt(no1)