@Kizzrt

В чем ошибка в калькуляторе?

while True:

    a=input("Введите первое число ")
    b=input("Введите второе число ")
    c=str (input("Введите условный знак(*-+/) "))
    if c == "+":
        summa=a+b
        print ("Ответ", summa )
    elif c == "-":
        summa=a-b
        print ("Ответ", summa )
    elif c == "*":
        summa=a*b
        print ("Ответ", summa )
    elif c == "/":
        summa=a/b
        print ("Ответ", summa )

Вот код
  • Вопрос задан
  • 194 просмотра
Пригласить эксперта
Ответы на вопрос 3
MinTnt
@MinTnt
Причина ошибка - невозможно производить чисельные операции со строками.
Варянт исправления, добавление проверки, являются ли введёные данные числами, для их последующего преобразования
while True:

	a=input("Введите первое число: ")
	b=input("Введите второе число: ")
	if a.isdigit() and b.isdigit():
		a, b = int(a), int(b)

		c = input("Введите условный знак(*-+/) ")
		if c == "+":
			summa=a+b
			print ("Ответ", summa )
		elif c == "-":
			summa=a-b
			print ("Ответ", summa )
		elif c == "*":
			summa=a*b
			print ("Ответ", summa )
		elif c == "/":
			summa=a/b
			print ("Ответ", summa )
	else:
		print('Вы ввели не числа')
Ответ написан
@alexbprofit
Junior SE
while True:

    a=input("Введите первое число ")
    b=input("Введите второе число ")
    c=str (input("Введите условный знак(*-+/) "))
    if c == "+":
        summa=a+b
        print ("Ответ", summa )
    elif c == "-":
        summa=a-b
        print ("Ответ", summa )
    elif c == "*":
        summa=a*b
        print ("Ответ", summa )
    elif c == "/":
        try:
            summa=a/b
        except ZeroDivisionError:
            summa=0
        print ("Ответ", summa )
Ответ написан
@twistfire92
Python backend developer
Основная проблема в том, что вы проводите операции со строками. Поэтому когда пытаетесь сложить 3 и 4 получаете 34.
Преобразовывайте результат input в int
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы