Баг в калькуляторе
Пытался писать кальулятор, но при вводе символов ** производится операция извлечения корня **. что делать?
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("Ложь")
...:
Ложь
То есть пустая строка ложь а не пустая истина.