Есть ли в приведенном коде ошибка?

num = int(input("Введите число"))
flag = False
if num % 2:
    print(f"Число нечётное")
    flag = True
else:
    print(f"число чётное")
name = int(input("Введите своё имя"))
if flag:
    end_message = "чётное"
else:
    end_message = "не чётное"

print(name,(f"ввёл", end_message))

Ответы (1 шт):

Автор решения: CrazyElf

Да, в коде есть логическая ошибка - в первой части кода вы выставляете flag = True в случае не чётного числа, а во второй части при истинности флага if flag: печатаете, что число чётное.

И ещё одна ошибка - имя не нужно преобразовывать в целое число.

Ну и в целом код можно несколько сократить. Например (при условии, что вы обязательно хотите использовать переменную flag):

num = int(input("Введите число"))
flag = num % 2:
if flag:
    end_message = "не чётное"
else:
    end_message = "чётное"
print(f"Число {end_message}")

name = input("Введите своё имя")
print(f"{name} ввёл {end_message}")

Но так то можно и без флага и ещё короче:

num = int(input("Введите число"))
end_message = f"{['','не'][num % 2]} чётное"
print(f"Число {end_message}")
name = input("Введите своё имя")
print(f"{name} ввёл {end_message}")
→ Ссылка