Лекция 4. Язык Питон. Начало (1152907), страница 3
Текст из файла (страница 3)
таблицу логическихоперацийдаст True3 > 3 даст False;-3 > -5 даст True3 <= 3 даст True;3 <= 2 даст False3 >= 3 даст True;-3 >= -2 даст Falseесли x=2; y=4, то x == yдаст Falseесли x=2; y=4, то x != yдаст Trueунарная операция: not A;not (3<5)бинарная операция: A andB;A and (3<5)бинарная операция: A orB;A or (3<5)Сокращенные записи операцийОператор присваивания ‘=’ мы с вами уже обсуждали.
Он действует поправилу: сначала вычисляется выражение справа от оператора и потомприсваивается операнду слева. Очевидно, что слева не может стоять выражение,иначе смысл операции присваивания полностью теряется.Типичные команды для программирования, такие как: a = a + 1 можнописать в сокращенном виде. Пусть a = 1 – целое число, тогда:a += 7# a=8a *=2# a=16a /= 2# a= 8.0 – вещественное!a %= 3# a= 2.0 – вещественноеa = int(a) # a= 2 – опять сделали целымa *= 7# a= 14a %=3# a= 2 - целоеПорядок вычисленийРазумным был бы вопрос, в каком порядке вычисляются выражения.
Изкурса математики мы знаем, что операции умножения и деления имеют15Воробьева И.А. «Информатика. Язык Питон»приоритет перед сложением и вычитанием. Если же нам надо изменитьприоритет, то мы используем скобки. В случае равных приоритетов, вычисленияпроходят «слева направо».Языки программирования, как правило, неизобретают ничего нового в этих интуитивно понятных правилах. Однако в языкахпрограммирования операций значительно больше, чем «чисто арифметических»и тут расстановка приоритетов может сильно отличаться, например запись, не вызовет ошибок в Python и наоборот, вызовет в Pascal из-заразных приоритетов. В Pascal нужны скобки :.
Однако личноя вам рекомендую, ставить скобки в любом случае – как только выражение станетхоть чуть сложнее и длиннее, его читабельность резко ухудшится, а значит ивероятность допустить ошибку увеличится. Ниже представлена таблицаприоритетов основных операторов в Python.Таблица 4.3. Приоритет основных операторовПриоритетОператорОписаниевысший↓{ключ: данные, …}словарь[выражения, …]список(выражения, …)кортежf(аргументы)x[индекс1, индекс2]x[индекс]**+x, -xвызов функциивырезкаобращение по индексувозведение в степеньположительное, отрицательноекмножение, деление, целочисленноеделение, деление по модулюсложение, вычитаниеоперации сравненияпроверка тождественностипроверка принадлежностилогическое НЕлогическое Илогическое ИЛИ*, /, //, %+, <,>,<=,>=<,==,!=is, is notin, not innotandor↑lambdaлямбда-выражениенизшийПри совпадении приоритетов вычисление происходит слева направо.Используйте скобки для улучшения читабельности и исключения ошибок взаписи выражений -> выражения в скобках обрабатываются первыми.16Воробьева И.А.
«Информатика. Язык Питон»Логические операцииОтдельно напишем про логические операции. В принципе, большинствовопросов снимается таблицей истинности для логических операций (см. таблица4.4) . Однако, если мы рассмотрим области на рисунке 4.1., то увидим, что вязыке Python не хватает еще одной известной математической операции XOR --ИСКЛЮЧАЮЩЕЕ ИЛИ.Таблица 4.4.
Истинность и приоритеты логических операцийприоритетоперациивыше→abоперации сравнения<, ≤, =, ≥, >,≠TrueTrueFalseFalseTrueFalseTrueFalseвсегда брать в скобкиоперации, если естьсомнения в приоритете→not aНЕ a¬aFalseFalseTrueTrueпусть X=True, тогда:1) X= not X and X == (not X)даст False;2) X= (not X and X) == (not X)даст True.Рисунок 4.1.
Диаграммы Эйлераa and baИba˄bTrueFalseFalseFalseнижеa or ba ИЛИ ba˅bTrueTrueTrueFalse17Воробьева И.А. «Информатика. Язык Питон»Заменить «XOR» можно комбинацией существующих операций:A xor B ≡ (A or B) and not (A and B) # здесь скобки принципиальныили так:A xor B ≡ (A and not B) or (B and not A) # здесь скобки только улучшают# читабельность кодаНапоследок отметим, что ниже даны два приложения: список полезныхфункций встроенных библиотек в Python: библиотеки математических функцийmath и аналогичной библиотеки для работы с комплексными числами cmath.Приложение 1.Модуль math – предоставляет обширный функционал для работы с числами.math.ceil(X) – округление до ближайшего большего числа.math.fabs(X) - модуль X.math.floor(X) - округление вниз.math.fmod(X, Y) - остаток от деления X на Y.math.modf(X) - возвращает дробную и целую часть числа X. Оба числа имеют тотже знак, что и X.math.trunc(X) - усекает значение X до целого.math.exp(X) - eX.math.log(X, [base]) - логарифм X по основанию base.
Если base не указан,вычисляется натуральный логарифм.math.log10(X) - логарифм X по основанию 10.math.log2(X) - логарифм X по основанию 2. Новое в Python 3.3.math.pow(X, Y) - XY.math.sqrt(X) - квадратный корень из X.math.acos(X) - арккосинус X. В радианах.math.asin(X) - арксинус X. В радианах.math.atan(X) - арктангенс X. В радианах.math.cos(X) - косинус X (X указывается в радианах).math.sin(X) - синус X (X указывается в радианах).math.tan(X) - тангенс X (X указывается в радианах).math.degrees(X) - конвертирует радианы в градусы.math.radians(X) - конвертирует градусы в радианы.math.pi – π = 3,1415926...18Воробьева И.А.
«Информатика. Язык Питон»math.e – e = 2,718281...Приложение 2.Модуль cmath – предоставляет функции для работы с комплексными числами.Получить модуль комплексного числа можно с помощью встроенной функции Python – abs():a = 2 - 3jb = abs(a)с = -1jd = abs(c)# запись комплексного числа# b = 3.605551275463989# запись комплексного числа – только мнимая часть# d = 1.0print(a.real)print(a.imag)# вещественная часть числа ( 2 - 3j) -> 2.0# мнимая часть числа ( 2 + 3j) -> -3.0cmath.polar(x) - преобразование к полярным координатам.
Возвращает пару (r, phi).cmath.rect(r, phi) - преобразование из полярных координат.cmath.exp(x) - ex.cmath.log(x[, base]) - логарифм x по основанию base. Если base не указан, возвращается натуральный логарифм.cmath.log10(x) - десятичный логарифм.cmath.sqrt(x) - квадратный корень из x.cmath.acos(x) - арккосинус x.cmath.asin(x) - арксинус x.cmath.atan(x) - арктангенс x.cmath.cos(x) - косинус x.cmath.sin(x) - синус x.cmath.tan(x) - тангенс x.cmath.isfinite(x) - True, если действительная и мнимая части конечны.cmath.isinf(x) - True, если либо действительная, либо мнимая часть бесконечна.cmath.pi – π = 3,1415926...19Воробьева И.А.
«Информатика. Язык Питон»cmath.e – e= 2,718281...Написано с использованием:[1]. “A Byte of Python” Автор – Swaroop Chitlur, перевод – В. Смоляр[2]. Описание библиотек с сайта https://pythonworld.ru.