Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему не работает код python

Слава Петров Ученик (163), на голосовании 3 месяца назад
 number = input('Введите первое число: ')  
number2 = input('Введите второе число: ')
do = input('Что нужно сделать? (+,-,/ или *)')
if do == '+':
answer = 'Ответ: ' + int(number) + int(number2)
elif do == '-':
answer = 'Ответ: ' + int(number) - int(number2)
elif do == '/':
answer = 'Ответ: ' + int(number) / int(number2)
elif do == '*':
answer = 'Ответ: ' + int(number) * int(number2)
else:
print("неккоректная операция")
print(str(answer))
Голосование за лучший ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157212) 4 месяца назад
GPT-4o
В вашем коде есть несколько ошибок, которые могут вызывать его некорректное выполнение. Вот исправленный вариант:

1. Преобразование строки в число нужно делать до операций.
2. Конкатенация строки и числа нужно сделать через `str()`.
3. Добавлена обработка деления на ноль.

Исправленный код:
 
number = input('Введите первое число: ')
number2 = input('Введите второе число: ')
operation = input('Что нужно сделать? (+,-,/ или *)')

try:
number = int(number)
number2 = int(number2)
except ValueError:
print("Ошибка: Введите числовые значения.")
exit()

if operation == '+':
answer = number + number2
elif operation == '-':
answer = number - number2
elif operation == '/':
if number2 == 0:
answer = "Ошибка: Деление на ноль."
else:
answer = number / number2
elif operation == '*':
answer = number * number2
else:
answer = "Некорректная операция."

print("Ответ: " + str(answer))


Теперь код сначала проверяет, что введенные значения являются числами, и обрабатывает различные операции, включая проверку на деление на ноль.
робот д24 Мудрец (19746) 4 месяца назад
Вначале кода напиши: answer=""
Скорее всего не видит эту переменную
ǫᴜᴢᴢ Мастер (1637) 4 месяца назад
 else:  
print("неккоректная операция")
print(str(answer))
Если операция будет не корректной - переменной answer не будет. В начале кода добавь переменную answer, либо оберни все это в функции с return'ом.
 if do == '+':  
answer = 'Ответ: ' + int(number) + int(number2)
elif do == '-':
answer = 'Ответ: ' + int(number) - int(number2)
elif do == '/':
answer = 'Ответ: ' + int(number) / int(number2)
elif do == '*':
answer = 'Ответ: ' + int(number) * int(number2)
Если у тебя в инпуте ввели не int, а что-то иное - будет некорр. тип. сделай сразу проверку на тип:

 number.isdigit() 
Похожие вопросы