Баг в калькуляторе

Пытался писать кальулятор, но при вводе символов ** производится операция извлечения корня **. что делать?

import sys  #Импортирование модуля sys
import math #Импортирование модуля math
from math import pi #Из модуля math импортирование функции pi
def calculator() : #Создание функции калькулятор
    print('Enter operation symbol : ')
    operationsymbol = input() #Создание переменной с символом операции
    if operationsymbol == 'pi': #Число пи
        print(pi)
        sys.exit() #Преждевременный выход из выполнения скрипта
    print('Enter x : ')
    x = float(input()) #Создание переменной с первым числом, переведение его в другой тип данных: float
    if operationsymbol == '**.' or 'root of the equation':
        answer = math.sqrt(x) #Получение квадратного корня уравнения
        print(answer)
        sys.exit() #Преждевременный выход из выполнения скрипта
    print('Enter : ')
    y = float(input())
    if operationsymbol == '+': #Сложение чисел
        answer = x + y
    elif operationsymbol == '-': #Вычитание чисел
        answer = x - y
    elif operationsymbol == '*': #Умножение чисел
        answer = x * y
    if operationsymbol == '**': #Возведение чисел в степень
        answer = pow(x, y)
    elif operationsymbol == '/' or ':': #Деление чисел
        answer = x / y
    else:
        print('Ouch...Something went wrong') #Ошибка
    print('Ответ : ' + str(answer)) #Выведение ответа

print(calculator()) #Вызов функции калькулятор

Ответы (1 шт):

Автор решения: Александр

Не правильное условие здесь:

if operationsymbol == '**.' or 'root of the equation':

Так попробуйте

if operationsymbol == '**.' or operationsymbol == 'root of the equation':

Доказательство:

In [4]:  string = "**"
In [5]: if string == "**." or "*":
   ...:     print("Истина")
   ...: else:
   ...:     print("Ложь")
   ...:
Истина

In [6]: if string == "**." or "":
   ...:     print("Истина")
   ...: else:
   ...:     print("Ложь")
   ...:
Ложь

То есть пустая строка ложь а не пустая истина.

→ Ссылка