Module (51%)
Section (100%)

Основные тезисы


1. Python поддерживает следующие логические операторы:

  • and → если оба операнда верны, условие истинно, например, (True и True) равно True,
  • or → если какой-либо из операндов истинен, условие истинно, например, (True или False) равно True,
  • not → возвращает false, если результат истинный, и возвращает true, если результат ложный, например, not True равно False.

2. Вы можете использовать побитовые операторы для манипуляции отдельными битами данных. Следующий пример данных:

  • x = 15, что равняется 0000 1111 в двоичном формате,
  • y = 16, что равняется 0001 0000 в двоичном формате.

будет использоваться для иллюстрации значения побитовых операторов в Python. Проанализируйте приведенные ниже примеры:

  • &выполняет побитовое и, например, x & y = 0, что равняется 0000 0000 в двоичном формате,
  • |выполняет побитовое или, например, x | y = 31, что равняется 0001 1111 в двоичном формате ,
  • ˜ выполняет побитовое не, например, ˜ x = 240*, что равняется 1111 0000 в двоичном формате,
  • ^ выполняет побитовое исключающее или, например, x ^ y = 31, что равняется 0001 1111 в двоичном формате,
  • >> выполняет побитовый сдвиг вправо, например, y >> 1 = 8, что равняется 0000 1000 в двоичном формате,
  • << выполняет побитовый сдвиг влево, например, y<< 3 = 128, что равняется 1000 0000 в двоичном формате,

* -16 (десятичное от дополнения до двух со знаком) - подробнее об операции Дополнительный код.



Упражнение 1

Что выведет следующий фрагмент кода?

x = 1 y = 0 z = ((x == y) and (x == y)) or not(x == y) print(not(z))

Упражнение 2

Что выведет следующий фрагмент кода?

x = 4 y = 1 a = x & y b = x | y c = ~x # tricky! d = x ^ 5 e = x >> 2 f = x << 2 print(a, b, c, d, e, f)