Помогите сделать домашнее задание по программированию на языке пайтон. - Компьютерные вопросы

Вопрос Помогите сделать домашнее задание по программированию на языке пайтон.

Регистрация
12 Дек 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Нужно найти в этом коде ошибки.

num = input(“Введите число”)

flag = False

if num % 2:

print(“Число нечетное”)

flag = True

else:

print(“число четное”)

name = int(input(“Введите свое имя”))

if flag:

end_message = “четное”

else:

end_message = “не четное”

print(name,”ввел”, end_message)
 
Регистрация
11 Дек 2013
Сообщения
97
Репутация
-3
Спасибо
0
Монет
0
в первой строчке напиши =int(input("")) если число целое. а то код думает что это срока а не число
 
Регистрация
15 Окт 2013
Сообщения
72
Репутация
-3
Спасибо
0
Монет
0
Главная ошибка - написано на Бейсике ранних версий с использованием элементов синтаксиса Питон. num = int(input('Введите число= '))
print('Число',('четное','нечетное')[num&1])
print(input('Введите свое имя= '),' ввёл',(' четное',' нечетное')[num%2] , ' число. Гы-гы-гы!!!') num = int(input('Введите число= '))
print('Число',('четное','нечетное')[num&1])
print(input('Введите свое имя= '),' ввёл',(' четное',' нечетное')[num%2] , ' число. Гы-гы-гы!!!')
 
Регистрация
28 Июл 2013
Сообщения
94
Репутация
0
Спасибо
0
Монет
0
Ознакомься с таким понятием как типы данных. Строки, числа...
 
Регистрация
14 Дек 2012
Сообщения
79
Репутация
-3
Спасибо
0
Монет
0
num = input(“Введите число”):

Ошибка: input() всегда возвращает строку. Мы не можем сразу использовать оператор % (остаток от деления) для строки.
Исправление: Оставляем input() как есть, но преобразуем ввод в число только внутри блока try (см. пункт 3).
try...except блок:

Проблема: Если пользователь введет что-то, что нельзя преобразовать в число (например, буквы), программа завершится с ошибкой ValueError.
Решение: Оборачиваем код, который преобразует строку в число и выполняет деление по модулю, в блок try...except. Если возникает ValueError, мы перехватываем ее и выводим сообщение об ошибке, чтобы программа не завершалась аварийно.
number = int(num):

Добавлено: Преобразует ввод пользователя в целое число (integer). Это необходимо, чтобы можно было выполнить операцию % 2.
if num % 2::

Ошибка: В Python любое ненулевое число интерпретируется как True. Выражение num % 2 возвращает 0 для четных чисел (что интерпретируется как False) и 1 для нечетных чисел (что интерпретируется как True). Это может сбивать с толку. Лучше явно проверять, равен ли остаток от деления нулю или нет.
Исправление: Заменяем на if number % 2 != 0: Это более явный и понятный способ проверить, является ли число нечетным.
name = int(input(“Введите свое имя”)):

Ошибка: Имя обычно является строкой, а не числом. Преобразование имени в число приведет к ошибке, если пользователь введет буквы.
Исправление: Удаляем int(), чтобы получить строковое значение имени: name = input("Введите свое имя: ")
end_message не соответствует результату:

Ошибка: Если число нечетное (flag = True), то должно выводиться сообщение “не четное”. Сейчас наоборот.
Исправление: Меняем местами значения в блоках if flag и else:
if flag:
end_message = "нечетное" # Исправлено
else:
end_message = "четное" # Исправлено

python
Вывод неправильного числа:

Ошибка: Нужно выводить то число, которое ввел пользователь (строку num), а не имя.
Исправление: print(name, "ввел", num, "и число", end_message)
Обработка ошибок при вводе числа:

Добавлено: Блок except ValueError перехватывает ошибку, возникающую, если пользователь вводит что-то, что нельзя преобразовать в целое число.
Почему важны try...except блоки?

Они делают вашу программу более надежной. Пользователи могут делать ошибки, и ваша программа должна уметь их обрабатывать, не “вылетая” с сообщением об ошибке. try...except позволяет вам предусмотреть возможные проблемы и дать пользователю полезное сообщение об ошибке.

Ключевые улучшения:

Обработка ввода пользователя (особенно преобразование в число).
Более явная проверка на четность/нечетность.
Правильное присваивание значений строке end_message.
Более надежная программа, которая не завершается аварийно при неправильном вводе.
 
Сверху Снизу