split ввод в одну строчку ошибка с "с"
помогите. Написал простой калькулятор,в котором элементы вводятся в одну строчку. Использовал split, ошибка с "с"
def sum (a, b, c):
if c == "+":
return a + b
elif c == "-":
return a - b
elif c == "*":
return a * b
elif c == "/":
return a / b
else:
return "unknown value"
result = sum (int, input().split())
print(result)
Ответы (2 шт):
Не особо понял, зачем наворотили туда сплиты и тип переменной. Можно попросту огласить три переменные-вводы и затем провести над ними операцию.
intA = int(input("Введите число: "))
intB = int(input("Введите число: "))
oper = input("Введите оператор: ")
result = sum(intA, intB, oper)
print(result)
Этот код вставляете вместо вашей переменной result. Также, советую не называть такую функцию sum(), ибо здесь кроме сложения присутствуют другие операторы.
Вероятно вот что вы хотели получить. Ошибки были в том, что вы складывали строки и тогда 1+3 = 13, а во вторых функция split возвращает массив, а не несколько переменных, и тогда весь массив из [1,+,3] попадал в переменную b, а переменная c оставалась пустовать. А в переменной a вообще какая-то страшилка сидела в виде просто типа int
def sum (a):
if a[1] == "+":
return int(a[0]) + int(a[2])
elif a[1] == "-":
return int(a[0]) - int(a[2])
elif a[1] == "*":
return int(a[0]) * int(a[2])
elif a[1] == "/":
return int(a[0]) / int(a[2])
else:
return "unknown value"
result = sum((input().split()))
print(result)