Python

Добрый вечер, начал изучать Python, столкнулся с ошибкой (

Вот код простого калькулятора:

what = input("Что будем делать? + или -: " )

a = input("Первое число: ")
b = input("Второе число: ")

if what == "+":
c = a + b
print("resultat: " + c)
elif what =="-":
c = a - b ## LINE 10 это тут
print("resultat: " + c)
else:
print("oshibka")

## Выдает вот такую ошибку:
Traceback (most recent call last):
File "D:\Python\3.py", line 10, in
c = a - b
TypeError: unsupported operand type(s) for -: 'str' and 'str'
a = input() - строка. Надо преобразить в число: a = int(input("Первое число: "))
Валера Деменков
Валера Деменков
5 620
Лучший ответ
a и b - строки.
Складывать (+) строки можно, а вот вычитать их нельзя.
Я так понял это калькулятор? Значит логично было бы преобразовать строки в числа т. е
a = int(input("Первое число: "))
b = int(input("Второе число: "))

int() - преобразует в целое число
операция минус не работает для строк
А@
Авраам @
9 213
Сделайте так:
вместо a = input("Первое число: ") добавьте в начало int(), то есть a = int(input("Первое число: ")). Или можете привести тип потом.
Вообще, вам ответ уже дал интерпретатор
TypeError: unsupported operand type(s) for -: 'str' and 'str' переводится как ошибка типа, складывать строки нельзя.
И на будущее, вкладывайте код на сторонние сервисы, все же у питона важны отступы и будь ваш код длиннее, его было бы куда сложнее отладить
... ...
... ...
4 307
Всё мега просто, ты не создал блок отступа для нужной тебе конструкции. Вот что будет:

what = input("Что будем делать? + или -:\n")

a = float(input("Первое число: \n"))
b = float(input("Второе число: \n"))

if what == "+":
    c = a + b
    print("result: " + str(c))
elif what == "-":
    c = a - b ## LINE 10 это тут
    print("result: " + str(c))
else:
    print("error")

Ещё пару моментов:
- можно разрешать только целые числа, для этого смени float на int
- без преобразования в числовой тип данных твоя конструкция бы просто делала тоже самое, что и JS