def Calculator():
while True:
term = Expression.get("1.0", END)
term = term[0:-1]
long_term = len(term)
# Все индексы символов введеных пользователем
index = []
# Проводим проверку ввода пользователя
if long_term > 0:
# Получаем индекс каждого введеного пользователем символа
while long_term > 0:
long_term = long_term - 1
index.insert(0,long_term)
elif long_term == 0:
Expression.insert(END, '\nОшибка! Поле пусто\n')
break
# Все элементы строки введеной пользователем
term_list = [term[i] for i in index]
# Значение ариф.действия
variable_arithmetic = ''
# Индекс символа арифметики в списке term_list
arithmetic_index = 0
# Из списка term_list вырезаем арифметическое действие, а так же преобразовываем
# введеные пользователем данные обратно из списка, в числа\строки
for a in term_list:
if (a == '-' or a == '+' or a == '*' or a == '/'):
# Узнаем индекс символа арифметики в списке term_list
arithmetic_index = term_list.index(a, 0, len(term))
# Присваиваем variable_arithmetic значение ариф.действия
variable_arithmetic += a
break
# Проверка ввел ли пользователь ариф.действие
if (variable_arithmetic == '-' or variable_arithmetic == '+' or
variable_arithmetic == '*' or variable_arithmetic == '/'):
else:
print(variable_arithmetic)
Expression.delete(1.0, END)
Expression.insert(1.0, 'Ошибка! Нет \nарифметического \nзнака')
break
# Проверка, есть ли в том, что ввел пользователь число с плавоющей точкой
true_float_num1 = not set(".").isdisjoint(term_list)
if (true_float_num1 == True):
# До индекса ариф.действия делаем вырезку из списка term_list
num1 = term_list[0:arithmetic_index]
# Преобразовываем вырезанные значения списка в строку
try:
num1 = float(''.join(num1))
except ValueError:
Expression.insert(END, '\nОшибка! Невозможно \nвычислить\n')
break
else:
num1 = term_list[0:arithmetic_index]
# Проверка ввел ли пользователь число\строку
try:
# Преобразовываем вырезанные значения списка в строку
num1 = int(''.join(num1))
# Если пользователь ввел не число, то складываем строки без преобразования
# в числовое значение int, выполняя конкантенацию строк
except ValueError:
num1 = ''.join(num1)
# Сдвигаем значение вырезки на один символ вправо
arithmetic_index += 1
true_float_num2 = not set(".").isdisjoint(term_list)
if (true_float_num2 == True):
# После индекса ариф.действия делаем вырезку из списка term_list
num2 = term_list[arithmetic_index:]
try:
num2 = float(''.join(num2))
except ValueError:
Expression.insert(END, '\nОшибка! Невозможно \nвычислить\n')
break
else:
num2 = term_list[arithmetic_index:]
try:
num2 = int(''.join(num2))
except ValueError:
num2 = ''.join(num2)

你有一个空的 block
if,这在 Python 中是不允许的。如果这确实是您需要的,那么至少添加一个空语句pass:可以删除
else和添加not你可以摆脱一堆比较
in因为之后如果没有怎么办