Итак, вот моя ситуация. Я пытался сделать расширенный калькулятор на python 3.4, где вы можете просто ввести что-то вроде этого. «1 + 1», и тогда вы получите ответ «2». Теперь я объясню, как должен работать мой калькулятор. Итак, вы начинаете с ввода математического уравнения, затем оно подсчитывает введенные вами слова на основе пробелов. Он делает это, чтобы знать, какой длины должны быть некоторые будущие циклы. Затем он разделяет все, что вы ввели. Он разбивает его на str и int, но все по-прежнему находится в одной переменной, и все по-прежнему в порядке. У меня проблемы с тем, когда он предназначен для фактических вычислений.
вот весь мой код-
# This is the part were they enter the maths equation
print("-------------------------")
print("Enter the maths equation")
user_input = input("Equation: ")
# This is were it counts all of the words
data_count = user_input.split(" ")
count = data_count.__len__()
# Here is were is splits it into str's and int's
n1 = 0
data = []
if n1 <= count:
for x in user_input.split():
try:
data.append(int(x))
except ValueError:
data.append(x)
n1 += 1
# And this is were it actually calculates everything
number1 = 0
number2 = 0
n1 = 0
x = 0
answer = 0
while n1 <= count:
#The code below checks if it is a number
if data[n1] < 0 or data[n1] > 0:
if x == 0:
number1 = data[n1]
elif x == 1:
number2 = data[n1]
elif data[n1] is "+":
if x == 0:
answer += number1
elif x == 1:
answer += number2
n1 += 1
x += 1
if x > 1:
x = 0
print("Answer =", answer)
но при расчете сбивается и выдает мне и ошибку
ошибка-
if data[n1] < 0 or data[n1] > 0:
TypeError: unorderable types: str() < int()
может кто-нибудь увидеть, что я делаю неправильно здесь? Спасибо