Python калькулятор с функцией math.sqrt - PullRequest
0 голосов
/ 08 ноября 2018

Я очень плохо знаком с 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)

Большое спасибо!

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Вы переводите оператор в верхний регистр, но у elif есть строчный 'sqrt'.

Измените его на

elif (operator) == "SQRT":
    result = math.sqrt(no1)
0 голосов
/ 08 ноября 2018

Вы преобразовываете ввод в верхний регистр, но затем проверяете на 'sqrt'.Вместо этого проверьте 'SQRT'.Вы также захотите удалить цикл while, иначе он никогда не завершится.

...