Top.Mail.Ru
Ответы

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

123456789101112131415
 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))     
 
По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
11мес

GPT-4o

В вашем коде есть несколько ошибок, которые могут вызывать его некорректное выполнение. Вот исправленный вариант:

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

Исправленный код:

12345678910111213141516171819202122232425262728
 
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)) 
 



Теперь код сначала проверяет, что введенные значения являются числами, и обрабатывает различные операции, включая проверку на деление на ноль.

Аватар пользователя
Мастер
11мес
123
 else:  
    print("неккоректная операция")  
print(str(answer)) 

Если операция будет не корректной - переменной answer не будет. В начале кода добавь переменную answer, либо оберни все это в функции с return'ом.

12345678
 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, а что-то иное - будет некорр. тип. сделай сразу проверку на тип:

1
 number.isdigit() 
Аватар пользователя
Просветленный
11мес

Вначале кода напиши: answer=""
Скорее всего не видит эту переменную