коды python и их значение
№8 Операторы в Python / Уроки по Python для начинающих
Операторами пользуются для выполнения операций с переменными и значениями.
Python делит операторы на следующие группы:
Арифметические операторы в Python
Арифметические операторы используются с числовыми значениями для выполнения общих математических операций:
Оператор | Значение | Пример |
---|---|---|
+ | добавление | 4 + 5 |
— | вычитание | 8 — 3 |
* | умножение | 5 * 5 |
/ | деление | 4 / 2 |
% | остаток от деления | 7 % 2 |
** | возведение в степень | 2 ** 3 |
// | целочисленное деление | 15 // 4 |
Операторы присваивания в Python
Операторы присваивания используются для присваивания значений переменным:
Операторы сравнения используются для сравнения двух значений:
Логические операторы используются для объединения условных операторов:
Оператор | Значение | Пример | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
and | Возвращает значение True если оба утверждения верны | x Операторы тождественности в Python Операторы тождественности используются для сравнения объектов. Являются ли они одним и тем же объектом с одинаковым местоположением в памяти:
Операторы принадлежности в PythonОператоры принадлежности используются для проверки того, представлена ли последовательность в объекте:
Побитовые операторы в PythonПобитовые операторы используются для работы в битовом (двоичном) формате: Базовые команды Python3Здесь и далее: Типы данныхisinstance (x, str/int/bool/…) — определение типов данных. Проверка соответствия типу данных: Фича с делениемОперации со строкамиФорматирование строкФичи работы с булевыми даннымиДругие полезные функцииrange(X1, X2, Х3) — генерирует массив данных от Х1 до Х2 с шагом Х3. input(‘Введите Х:’) — запрашивание информации у пользователя. Выводprint (‘something <> calling <>’.format(‘is’, 457)) — форматирование текста dir(x) — просмотр всех характеристик переменной, аналог print_r pprint — модуль для более удобного чтения вывода из консоли. Списки и Справочникиlist.append(‘z’) — добавить к концу списка dict.update(
print (‘some_string’ [0:5]) — выведет some_ — слайс. enumerate(x) — возврат индекса списка: МножестваСоздан для математических операций над множествами объектов. В множество нельзя добавить повторяющиеся значения — все значения множества всегда уникальны. При этом элементы внутри множества хранятся в неупорядоченном виде, и какой порядок будет внутри — программисту неизвестно. ЦиклыОтлов ошибокФункцииФункции выполняются интерпретатором только в момент вызова. При этом у функции — своя область видимости, т.е. находящиеся в ней переменные доступны только в рамках этой функции, и после выполнения функции сразу уничтожаются.
При этом при передаче дефолтных значений переменные с дефолтными значениями приема должны располагаться в самом конце списка приема, именно поэтому function X (x=5, y) — вызовет ошибку..
Python — объекту-ориентированный язык программирования. Функция — это тоже объект. Функции могут читать объявленные глобальные переменные, но не могут их переписать. Исключение — если внутри функции перед изменением глобальной переменной её вызвать как global var, что нарушает безопасность кода. Глобальные переменные принято писать большими буквами. Функции могут быть запущены и в одну строку: Распаковка элементов спискаКлассыКласс — это структура данных, объединяющая одинаковые объекты. Названия классов принято писать с большой буквы. Названия функций — с маленькой.
Конструктор
1. Наследование
То есть новый класс может забирать все методы и поля родительского класса. Переопределение2. Инкапсуляция
Методы классов, начинающихся с нижнего подчеркивания (_name) являются внутренними функциями. Методы классов, начинающихся с двух нижних подчеркиваний (__name) отличаются тем, что при наследовании таких классов будет происходить мэнглинг (mangling), делающий еще более приватным метод класса, не давая переопределить его значение. 3. Полиморфизм
4. Абстракция
В каких случаях следует однозначно использовать классы? Super()
mro = method resolution object Если метод присутствует под одним и тем же именем в разных наследуемых классах, при его вызове будет вызван метод самого дочернего класса. Вынос кода в разные файлыКаждый Python-файл по сути является модулем. Всё, что в нём есть, может быть прочитано и импортировано. При запуске кода подключаются интерпретатором стандартные модули, идущие с Python, такая папка называется служебной. Папка с запускаемым скриптом также становится служебной для интерпретатора, и из нее все файлы также могут быть импортированы без дополнительного указания путей нахождения модулей. Импортировать принято нужные модули в каждом подключаемом файле. Да, иногда может быть повторный вызов одного и то же модуля в разных подключаемых файлах, но на производительность это не влияет, т.к. интерпретатор вызовет модуль лишь 1 раз вне зависимости от числа вызовов этого модуля. Все модули стандартной сборки перечислены здесь. Также, можно вызвать весь модуль, по суть превратив его в объект: Если нам нужно импортировать скрипт, лежащий в подпапке: if __name__ == ‘main’: #обрабатываться код будет только в случае, если файл НЕ вызван сторонним файлом. Работа с файламиmy_file = open (‘PATH_TO_FILE’, ‘MODE’, encoding=’cp1251′) Encoding = опциональный параметр, по умолчанию = UTF-8. MODE = опциональный параметр, по умолчанию = чтение: При открытии файла курсор интерпретатора ставится в 0 позицию, в самое начало файла. После операции по чтению содержимого файла курсор ставится в конец файла. Чтение больших файлов осуществляется с помощью цикла, т.к. такой функционал работает в качестве генератора, записывая каждую отдельную строку в память (в отличие от остальных методов чтения файла, когда весь файл загружается целиком в память компьютера): Но есть более удобный формат открытия и закрытия файлов, с помощью with: Для чего нужна побайтовая запись? Для работы с не текстовыми форматами. Например, с картинками: Для работы с csv в Python есть встроенная библиотека csv. Можно работать через неё, а можно — через работу с текстовыми файлами. Сериализация в Dump и JsonСериализация — это сохранение словаря в файл, с последующим открытием данных файла сразу в словарь. В Python встроено 2 библиотеки, которые позволяют делать дампы памяти в файл, с возможностью последующих импортов — это Dump & Json. Dump: Json: Работа с операционной системойМодуль OS, встроенный в интерпретатор, призван для выполнения действий с самой операционной системой: Базы данных
Данные хранят в виде таблиц, которые могут быть взаимосвязанными (реляционными). Зачастую они поддерживают язык SQL для работы с данными. Относительно медленные из-за постоянных операций чтения и записи на диск. MySQL, PostgreSQL, SQLite. Другая разновидность баз данных — документные (noSQL), которые хранят данные в разных видах: «ключ:значение — Redis», «ключ:json — MongoDB», «графы — OrientDB» и т.д. Для работы с SQL базами в Python есть специальные библиотеки. А есть — сторонние системы ORM (object relational mapping, которые работают без «голого» SQL), мы же рассмотрим модуль sqlalchemy. Использовать можно софт для визуализации работы с СУБД можно например Valentino Studio (бесплатно распространяется под MacOS, Linux и Windows). Работа с APIВсегда прежде чем использовать АПИ следует читать инструкцию. Если API работает с Get-запросами, то можно получать результаты работы API через браузер. IPythonМногопоточность
Несколько потоков могут существовать в рамках одного процесса. Потоки выполнения разделяют функции процесса (его код) и его контекст (значения переменных, которые они имеют в любой момент времени). За многопоточность в Python отвечает модуль threading. Когда потоки работают с одним и тем же ресурсом, например, пишут в файл, могут быть накладки и непорядок. Для случаев, когда результаты многопоточной работы требуется сложить в упорядоченном виде, предусмотрены блокировки потоков. Для работы с очередью потоков хорошо подходит модуль queue (тип данных = очередь). Так как многопоточность — это условная величина (все потоки обрабатываются не параллельно, а последовательно компьютером, с минимальным переключением по времени), зачастую имеет смысл внедрять многопоточность, если в порядке работы имеет место быть ожидание другого сайта.
Скрипт парсинга всех страниц сайта в несколько потоков: Многопоточность лучше вызывать из функций, в рамках которой работать с методами классов. Обучающее видео PythonПродублировал всю информацию выше о Пайтоне в обучающий видео ролик. Операторы PythonВ этом руководстве речь пойдет об операторах языка программирования Python. Вы узнаете об арифметических, логических и битовых операторах, а также операторах сравнения, присваивания, принадлежности, тождественности и их синтаксисе. Все это будет проиллюстрировано примерами.
Введение в операторы PythonОператоры Python бывают 7 типов: Арифметические операторы PythonЭтот тип включает операторы для проведения базовых арифметических операций. Сложение (+)Складывает значение по обе стороны оператора. Вычитание (-)Вычитает значение правой стороны из значения в левой. Умножение (*)Перемножает значения с обеих сторон оператора. Деление (/)Делит значение левой стороны на значение правой. Тип данных результата деления — число с плавающей точкой. Возведение в степень (**)Возводит первое число в степень второго. Деление без остатка (//)Выполняет деление и возвращает целочисленное значение частного, убирая цифры после десятичной точки. Деление по модулю (остаток от деления) (%)Выполняет деление и возвращает значение остатка. Операторы сравненияОператоры сравнения в Python проводят сравнение операндов. Они сообщают, является ли один из них больше второго, меньше, равным или и то и то. Меньше (Этот оператор проверяет, является ли значение слева меньше, чем правое. Больше (>)Проверяет, является ли значение слева больше правого. Пример: Меньше или равно (Проверяет, является ли левая часть меньше или равной правой. Больше или равно (>=)Проверяет, является ли левая часть больше или равной правой. Равно (==)Не равно (!=)Проверяет, не равно ли значение слева правому. Оператор <> выполняет ту же задачу, но его убрали в Python 3. Операторы присваиванияОператор присваивания присваивает значение переменной. Он может манипулировать значением до присваивания. Есть 8 операторов присваивания: 1 простой и 7 с использованием арифметических операторов. Присваивание (=)Присваивает значение справа левой части. Стоит обратить внимание, что == используется для сравнения, а = — для присваивания. Сложение и присваивание (+=)То же касается и все остальных операторов присваивания. Вычитание и присваивание (-=)Вычитает значение справа из левого и присваивает его выражению слева. Деление и присваивание (/=)Делит значение слева на правое. Затем присваивает его выражению слева. Умножение и присваивание (*=)Перемножает значения обеих сторон. Затем присваивает правое левому. Деление по модулю и присваивание (%=)Выполняет деление по модулю для обеих частей. Результат присваивает левой части. Возведение в степень и присваивание (**=)Выполняет возведение левой части в степень значения правой части. Затем присваивает значение левой части. Деление с остатком и присваивание (//=)Выполняет деление с остатком и присваивает результат левой части. Это один из важных операторов Python Логические операторы PythonЭто союзы, которые позволяют объединять по несколько условий. В Python есть всего три оператора: and (и), or (или) и not (не). И (and)Если условия с двух сторон оператора and истинны, тогда все выражение целиком считается истинным. Или (or)Выражение ложно, если оба операнда с двух сторон ложные. Если хотя бы одно из них истинное, то и все выражение истинно. Не (not)Операторы принадлежностиНет в (not in)Этот оператор проверяет, НЕ является ли значение членом последовательности. Операторы тождественностиЭти операторы проверяют, являются ли операнды одинаковыми (занимают ли они одну и ту же позицию в памяти). Это (is)Это не (is not)Битовые операторы PythonЭти операторы работают над операндами бит за битом. Бинарное И (&)Бинарное ИЛИ (|)Проводит побитовую операцию or на двух значениях. Здесь or для 10 (2) и 11 (3) возвращает 11 (3). Бинарное ИЛИ НЕТ (^)Проводит побитовую операцию xor (исключающее или) на двух значениях. Здесь результатом ИЛИ НЕ для 10 (2) и 11 (3) будет 01 (1). Инвертирующий оператор (Бинарный сдвиг влево (Бинарный сдвиг вправо (>>)ВыводыВ этом уроке были рассмотрены все 7 типов операторов Python. Для каждого был предложен пример в IDE. Для понимания особенностей работы операторов нужно продолжать с ними работать, использовать в условных конструкциях и объединять. Операторы и выражения в PythonБ ольшинство строк программного кода представляют собой выражения. Например 1 + 2 – это выражение. Выражение состоит из 2 частей: Операторы сравненияРассмотрим простой пример – 1 + 2 == 3 Для проверки истинности данного условия, используется логический тип. Когда мы выполним данное выражение, в результате нам вернется True (истина) или False (ложь). В данном примере мы используем один из операторов сравнения – «==» (равно). Всего в Python таких операторов 6: Логические операторыАрифметические операторыАрифметические операторы в Python производят арифметические операции над числами (сложение, вычитание, деление и т.д.) Операторы присваиванияОператоры присваивания в Python работаю вполне очевидно – значение находящееся справа присваивается переменной, находящейся слева. Существует несколько разновидностей операторов присваивания: Python поддерживает не только обычное присваивание правого операнда левому, но и множественное присваивание. С помощью такого присваивания можно поменять значения переменных между собой: >>> a = 1 >>> b = 2 >>> a, b = b, a >>> print(a, b) 2 1 Также с помощью множественного присваивания можно «распаковывать» строки (str), списки (list), кортежи (tuple) и словари (dict). Распаковка особенно удобна, когда функция возвращает несколько значений в виде кортежа (tuple): >>> def test_page(): return 404, «Not found» >>> code, message = test_page() >>> print(code, message) 404 Not found Главное условие распаковки – количество элементов должно совпадать Если необходимо распаковать лишь несколько элементов, воспользуйтесь переменной со знаком » * «: >>> text = «deactivate» >>> first, second, *other_letters = text >>> print(first, second, other_letters) d e [‘a’, ‘c’, ‘t’, ‘i’, ‘v’, ‘a’, ‘t’, ‘e’] Побитовые операторыОператоры членстваВ Python существует всего 2 оператора принадлежности – in и not in и предназначены они для проверки наличия элемента в строке (str), списке (list), словаре (dict) или кортеже (tuple). Операторы тождественностиДанные операторы сравнивают размещение двух объектов в памяти. Приоритет операторовТаблица приоритетов операторов в Python показана ниже. Элементы отсортированы по убыванию, с высокого приоритета к более низкому. В комбинациях с несколькими операторами, оператор с большим приоритетом выполняется первым. Например в выражении 1 + 2 ** 2 * 10 сначала выполнится возведение в степень, далее умножение, потом сложение. Итого результат: 41 Основы языка программирования Python за 10 минутНа сайте Poromenos’ Stuff была Если вы собрались изучать язык Python, но не можете найти подходящего руководства, то эта Основные свойстваPython не требует явного объявления переменных, является регистро-зависим (переменная var не эквивалентна переменной Var или VAR — это три разные переменные) объектно-ориентированным языком. СинтаксисВо первых стоит отметить интересную особенность Python. Он не содержит операторных скобок (begin..end в pascal или <..>в Си), вместо этого блоки выделяются отступами: пробелами или табуляцией, а вход в блок из операторов осуществляется двоеточием. Однострочные комментарии начинаются со знака фунта «#», многострочные — начинаются и заканчиваются тремя двойными кавычками «»»»». Структуры данныхВы можете использовать часть массива, задавая первый и последний индекс через двоеточие «:». В таком случае вы получите часть массива, от первого индекса до второго не включительно. Если не указан первый элемент, то отсчет начинается с начала массива, а если не указан последний — то масив считывается до последнего элемента. Отрицательные значения определяют положение элемента с конца. Например: СтрокиСтроки в Python обособляются кавычками двойными «»» или одинарными «’». Внутри двойных ковычек могут присутствовать одинарные или наоборот. К примеру строка «Он сказал ‘привет’!» будет выведена на экран как «Он сказал ‘привет’!». Если нужно использовать строку из несколько строчек, то эту строку надо начинать и заканчивать тремя двойными кавычками «»»»». Вы можете подставить в шаблон строки элементы из кортежа или словаря. Знак процента «%» между строкой и кортежем, заменяет в строке символы «%s» на элемент кортежа. Словари позволяют вставлять в строку элемент под заданным индексом. Для этого надо использовать в строке конструкцию «%(индекс)s». В этом случае вместо «%(индекс)s» будет подставлено значение словаря под заданным индексом. ОператорыОператоры while, if, for составляют операторы перемещения. Здесь нет аналога оператора select, так что придется обходиться if. В операторе for происходит сравнение переменной и списка. Чтобы получить список цифр до числа — используйте функцию range( ). Вот пример использования операторов if rangelist[ 1 ] == 2 : while rangelist[ 1 ] == 1 : Функции# Следующая запись эквивалентна def f(x): return x + 1 КлассыЯзык Python ограничен в множественном наследовании в классах. Внутренние переменные и внутренние методы классов начинаются с двух знаков нижнего подчеркивания «__» (например «__myprivatevar»). Мы можем также присвоить значение переменной класса извне. Пример: ИсключенияИсключения в Python имеют структуру try—except [exceptionname]:
ИмпортВнешние библиотеки можно подключить процедурой «import [libname]», где [libname] — название подключаемой библиотеки. Вы так же можете использовать команду «from [libname] import [funcname]», чтобы вы могли использовать функцию [funcname] из библиотеки [libname]
Работа с файловой системойPython имеет много встроенных библиотек. В этом примере мы попробуем сохранить в бинарном файле структуру списка, прочитать ее и сохраним строку в текстовом файле. Для преобразования структуры данных мы будем использовать стандартную библиотеку «pickle» myfile = file (r «C:\text.txt» ) Особенностиdef myfunc(): def anotherfunc(): def yetanotherfunc(): ЭпилогРазумеется в этой статье не описываются все возможности Python. Я надеюсь что эта статья поможет вам, если вы захотите и в дальнейшем изучать этот язык программирования. Преимущества Python
|