• Предмет: Информатика
  • Автор: starmen2002
  • Вопрос задан 3 месяца назад

Объясните пожалуйста по поподробнее
for i in range(5):
if i & 1: ??????????
continue
print(i)

Ответы

Ответ дал: TemaZpro
1

Объяснение:

for i in range(5): создается цикл с переменной i, который будет идти от 0 до 4.

if i & 1: делает побитовую операцию "И" между i и 1 и если условие = true, выполнится блок условия if. (Например i = 1, 1 & 1 = 1 * 1 = 1. В логических операциях 0 = false, 1 = true. В нашем случае i & 1 означает, что число будет проверятся на четность. Условие будет истинно, если i является нечетным числом.

continue: команда прерывает текущую итерацию цикла и переходят на следующую.

print(i): печатает текущее значение переменной i.


starmen2002: а если i & 2 то проверяется на нечетность
TemaZpro: Для проверки четности и нечестнои следует использовать операцию остатка от деления %. Например i % 2 == 0 означает, что число четное (т.к. при делении на 2 остаток 0), а если нечетное, то i % 2 != 0 (то есть есть остаток от деления на 2).
TemaZpro: & это побитовая операция. Конкретно в случае i & 2, если значение i имеет битовое представление, то эта операция сохранит только тот бит, который находится в позиции, соответствующей биту 2. Все остальные биты будут сброшены в 0. Например, если i = 5 (в двоичной сс: 101), то i & 2 будет равно 0 (в двоичной сс: 000), так как только первый бит в i равен 1, а второй бит в 2 равен 0.
Вас заинтересует