ЛЕКЦИЯ 3
.pdfЛекция 3. Числа. Логические операции. Динамическая типизация. Оператор присваивания. Условный оператор. Операторы цикла.
1.Числовые типы.
1.1.Операции с целыми и вещественными числами.
1.2.Битовые операции.
2.Операции с логическим значением.
3.Приоритет операций.
4.Динамическая типизация.
4.1.Разделяемые ссылки.
5.Синтаксис.
6.Оператор присваивания.
7.Условный оператор. 7.1.Пример.
8.Оператор цикла while. 8.1.Пример.
9.Оператор цикла for.
9.1.Пример.
1. Числовые типы
Тип |
Литералы/ создание |
Целые числа |
122, -4, 99999999999999999999999999, 0o177(octal), |
|
0x9ff(hexadecimal), 0b101010(binary) |
Вещественные числа |
1.0, 3.14, 0.5, .5, 4E21, 4.0e21 |
Комплексные числа |
3+4j, 3.0+4.0j, 3J |
Числа фиксированной точности |
decimal.Decimal ('0.1') |
Рациональные числа |
fractions.Fraction (3,4) |
Множества |
Set([1, 2, 3, 4]) |
|
{1, 2, 3, 4} |
Логические значения |
True (1), False (0) |
1.1. Операции с целыми и вещественными числами
Оператор/ функция |
Описание |
X + Y |
Сложение |
X - Y |
Вычитание |
X * Y |
Умножение |
X / Y |
Деление |
X // Y |
Деление c округлением вниз (до ближайшего меньшего) |
X % Y |
Остаток от деления |
divmod(X,Y) |
Пара (X // Y, X % Y) |
- X |
Смена знака числа |
abs(X) |
Модуль числа |
X ** Y |
Возведение в степень |
pow(X, Y[, Z]) |
X в степени Y, [ X в степени Y по модулю Z: вычисление остатка от деления |
|
числа X в степени Y на число Z (модуль)] |
X.as_integer_ratio() |
Возвращает пару целых чисел, чье отношение равно вещественному X |
X.is_integer() |
Проверка - является ли значение вещественного X целым числом |
int([строка-число], [основание |
Преобразование к целому числу в десятичной системе счисления числа в |
системы счисления]) |
системе от 2 до 36 (по умолчанию в десятичной) |
bin(X) |
Преобразование целого числа в двоичную строку |
hex(X) |
Преобразование целого числа в шестнадцатеричную строку |
oct(X) |
Преобразование целого числа в восьмеричную строку |
|
1.2. Битовые операции |
Оператор/ функция |
Описание |
X | Y |
Побитовое или |
X ^ Y |
Побитовое исключающее или |
X & Y |
Побитовое и |
X<<n |
Битовый сдвиг влево на n битов |
X>>n |
Битовый сдвиг вправо на n битов |
~X |
Инверсия битов |
X.bit_length() |
Количество бит, необходимых для представления числа X в |
|
двоичном виде, без учёта знака и лидирующих нулей |
X.to_bytes(length, byteorder, *, |
Возвращает строку байтов, представляющих число X |
signed={True,False}) |
|
X.from_bytes(bytes, byteorder, *, |
Возвращает число из данной строки байтов |
signed={True,False}) |
|
|
2. Операции с логическим значением |
Оператор |
Описание |
X and Y Логический оператор "И". Условие будет истинным если оба операнда истина. |
|
X or Y |
Логический оператор "ИЛИ". Если хотя бы один из операндов истинный, то и все |
|
выражение будет истинным. |
not X |
Логический оператор "НЕ". Изменяет логическое значение операнда на противоположное. |
|
Принадлежность |
a in B |
Возвращает истину, если элемент a присутствует в последовательности B, иначе |
|
возвращает ложь. |
a not in B Возвращает истину если элемента нет в последовательности. |
|
|
Тождественность |
X is Y |
Возвращает истину, если X и Y указывают на один объект. |
X is not Y Возвращает ложь, если X и Y указывают на один объект. |
|
Операции сравнения |
Оператор |
Описание |
X == Y |
Проверяет равны ли X и Y. Если да, то условие становится истинным. |
X != Y |
Проверяет равны ли X и Y. Если нет, то условие становится истинным. |
X <> Y |
Проверяет равны ли X и Y. Если нет, то условие становится истинным. |
X > Y |
Проверяет больше ли значение X, чем значение Y. Если да, то условие |
|
становится истинным. |
X < Y |
Проверяет меньше ли значение X, чем значение Y. Если да, то условие |
|
становится истинным. |
X >= Y |
Проверяет больше или равно значение X, чем значение Y. Если да, то условие |
|
становится истинным. |
X <= Y |
Проверяет меньше или равно значение X, чем значение Y. Если да, то условие |
|
становится истинным. |
|
3.Приоритет операций |
Операция |
Описание |
** |
Возведение в степень. |
~ ,+, - |
Комплиментарный оператор. |
*, /, %, // |
Умножение, деление, деление по модулю, целочисленное деление. |
+, - |
Сложение и вычитание. |
>>, << |
Побитовые сдвиги. |
& |
Побитовое и. |
^, | |
Побитовое исключающее или, побитовое или. |
<, <=, >, >= |
Сравнение. |
==, <>, != |
Проверка на равенство. |
= , -=, +=, *= и т.п. |
Операторы присваивания. |
is, is not |
Проверка на тождественность. |
in, not in |
Проверка на принадлежность. |
and, or, not |
Логические операторы. |
4.Динамическая типизация.
Типы данных в языке Python определяются автоматически во время выполнения, а не в результате объявлений в программном коде. Переменные создаются при выполнении операции присваивания, могут ссылаться на объекты любых типов и им должны быть присвоены некоторые значения, прежде чем к ним можно будет обратиться.
●Переменные – это записи в системной таблице, где предусмотрено место для хранения ссылок на объекты.
●Объекты – это области памяти с объемом, достаточным для представления значений этих объектов. Каждый объект имеет два стандартных поля: описатель типа, используемый для хранения информации о типе объекта, и счетчик ссылок, используемый для определения момента, когда память, занимаемая объектом, может быть освобождена.
●Ссылки – это указатели на объекты.
4.1.Разделяемые ссылки.
5.Синтаксис.
●Все составные инструкции записываются в соответствии с одним и тем же общим шаблоном:
Основная инструкция:
Вложенный блок инструкции ̆
●Если тело составных инструкций состоит только из простых, то возможна запись в одну строку: if x > y: print(x)
●Конец отступа – это конец блока:
if x > y: x= 1 Y= 2
print (' следующая после if инструкция')
●Круглые скобки не обязательны: if x < y вместо if (x < y)
●Конец строки автоматически считается концом инструкции: x = 1 вместо x = 1;
●; используется только в качестве разделителя простых инструкций, расположенных на одной строке: a = 1; b = 2; print(a + b)
●Допускается записывать одну инструкцию в нескольких строках. Для этого достаточно заключить часть инструкции в пару скобок – круглых (), квадратных [] или фигурных {}:
X = (A + B + C + D)