Что такое python: чем он хорош, где пригодится и как его выучить
Содержание:
- Начинаем программировать на Python
- Кратко о ФП
- От Python 2 до 3
- Webbynode — VPS для разработчиков
- Что нужно знать Python-разработчику?
- And now for something completely different
- Модификаторы регулярных выражений: flags
- Аргументы и параметры
- Редакторы и IDE, разработанные для Python
- Как пользоваться ADB run
- Вышло обновление MacOS 10.6.2
- Python теперь доступен каждому желающему
- Часть 2. Пример материала по курсу «Машинное обучение с помощью Python». Деревья решений
- Одиночные проверки
Начинаем программировать на Python
На различных форумах об этой книге как об учебнике для начинающих отзываются ну очень хорошо. Может, даже лучше, чем обо всех остальных книгах в нашем списке. По мнению читателей, она и не слишком растянута (в этом часто упрекают книгу Лутца), и достаточно глубока. К тому же, в ней используется свежая версия языка (Python 3.6.4).
Книга ориентирована на людей, в принципе
не имеющих опыта в программировании
(первая глава — «Введение в компьютеры
и программирование»). Как и во всех
остальных книгах для начинающих, здесь
разбирается весь базовый синтаксис
языка. Также затрагиваются темы
объектно-ориентированного и функционального
программирования. Для наглядности
материал проиллюстрирован.
Кратко о ФП
- чистые функции
- функции высшего порядка
- чувство собственного превосходства над теми, кто пишет не функционально (необязательно)
ФП также присущи следующие приемы:
- частичное применение
- композирование (в python еще есть декораторы)
- ленивые вычисления
Если вам все это уже знакомо, переходите сразу к примерам.
Чистые функции
Чистые функции зависят только от своих параметров и возвращают только свой результат. Следующая функция вызванная несколько раз с одним и тем же аргументом выдаст разный результат (хоть и один и тот же объект, в данном случае %).
Напишем функцию-фильтр, которая возвращает список элементов с тру-значениями.
Сделаем ее чистой:
Теперь можно вызвать ее лярд раз подряд и результат будет тот же.
Функции высшего порядка
Это такие функции, которые принимают в качестве аргументов другие функции или возвращают другую функцию в качестве результата.
Мне пришлось переименовать функцию, потому что она теперь куда полезнее:
Заметьте, одна функция и делает уже много чего. Вообще-то, она должна быть ленивой, делаем:
Вы заметили, что мы удалили код, а стало только лучше? Это лишь начало, скоро мы будем писать функции только по праздникам. Вот смотрите:
Встроенных возможностей python почти хватает для полноценной жизни, нужно лишь их грамотно компоновать.
Частичное применение
Это процесс фиксации части аргументов функции, который создает другую функцию, меньшей арности. В переводе на наш это .
Я понимаю, что это все азы ФП, но хочу отметить, что мы не написали ничего нового: мы взяли уже готовые функции и сделали другие. Основа новых — очень маленькие, простые, легкотестируемые функции, мы можем без опаски использовать их для создания более сложных.
Композирование
Такой простой, крутой и нужной штуки в python нет. Ее можно написать самостоятельно, но хотелось бы вменяемой сишной имплементации 🙁
Теперь мы можем делать всякие штуки (выполнение идет справа налево):
Это прежние версии и из второй версии python. Теперь, если вам понадобится неленивый , вы можете вызвать . Или по старинке писать чуть больше кода. Каждый раз.
Функции и прекрасны тем, что позволяют переиспользовать уже готовые, оттестированные функции. Но самое главное, если вы понимаете преимущество данного подхода, то со временем станете сразу писать их готовыми к композиции.
Это очень важный момент — функция должна решать одну простую задачу, тогда:
- она будет маленькой
- ее будет проще тестировать
- легко композировать
- просто читать и менять
- тяжело сломать
От Python 2 до 3
Во второй версии присутствовали следующие нововведения:
- предложены list comprehension (обсуждали тут), заимствованные из языка Haskell ;
- улучшена работа сборщика мусора в циклах;
- добавлена возможность вызывать методы строковых объектов явно, без импортирования специального модуля string
- и многое другое.
Серия 2.х закончилась на версии 2.7 и больше не будет поддерживаться с января 2020 .
В декабре 2008 вышла версия 3.0 с лозунгом “уменьшение дублирующейся функциональности путем устранения устаревших способов сделать это”. И вот что было сделано в третьей версии:
-
стал функцией вместо оператора
раньше: print "The answer is", 2*2 сейчас: print("The answer is", 2*2)
- переместили в модуль functools, а и возвращают iterator (о них говорили тут)
-
ведет cебя как в 2.х, поэтому нет нужды запоминать поведение обиох объектов. К тому же при индексировании все равно возвращается объект :
>>> range(30) range(0, 10) >>> type(range(30)) <class 'range'>
- , больше не принимают аргумент , вместо него используется ( был также добавлен в версию 2.4).
- заменен на
- Четкое различение между текстовыми (str) и бинарными (bytes) данными вместо Юникода и 8-битные строк.
- Новый синтаксис для наследования метаклассов:
Раньше: Сейчас: class C: __metaclass__ = M ...
class C(metaclass=M): ... ...
- Знак “не равно” <> был заменен на !=.
- и многое другое .
Все эти изменения направлены на унификацию процесса программирования, чтобы разработчики старались писать одинаково.
Webbynode — VPS для разработчиков
Я с интеренсом наблюдаю за развитием проекта webbynode. Разработчики обещают создать «cloud computing решение для разработчиков».
Вот только некоторые из «приятных особенностей» данного проекта:
- VPS хостинг на основе Xen.
- Ориентация на хостинг приложений и оптимизированный под это интерфейс управления.
- Технология «ReadyStack», позволяющая быстро развертывать готовые решения для популярных фреймворков. Прямо сейчас есть решения для RoR, Django, и LAMP.
- Высокая доступность, благодаря использованию многих датацентров.
Я зарегестрировался в программе для бета-тестеров, и вскоре мне пришло приглашение со всей необходимой для входа информацией.
После логина открылась удобная web-консоль для управления развернутым VPS.
Что нужно знать Python-разработчику?
Пласт базовых знаний и навыков включает в себя:
- основные навыки пользования терминалом;
- понимание принципа работы IDE;
- навыки работы с Git;
- менеджер пакетов pip;
- базы данных (ORM, CRUD-операции);
- принципы ООП;
- синтаксис языка Python;
- алгоритмы и структуры данных;
- составление документации;
- модульное тестирование.
Разумеется, недостаточно реализовать вывод «Hello World», чтобы разобраться в языке программирования Python, но для более глубокого понимания сперва стоит определиться с направлением, в котором вы хотите работать. Исходя из этого, подбираются дополнительные инструменты для изучения.
Веб-разработка
Здесь особенно популярны такие Python-фреймворки, как Django и Flask: с их помощью можно быстро создать логику бэкенда. Для начала работы хватит и одного, но не помешает знать несколько, понимать, в каких случаях они используются, где предпочесть Django, а с какой задачей лучше справится Flask, Tornado или Pyramid.
Для построения веб-приложений также пригодится знание протоколов, HTML, CSS и JavaScript.
Django — популярный Python-фреймворк для написания веб-приложений. Многие начинающие разработчики выбирают его из-за относительной простоты и лёгкости в развитии. Однако это совсем не означает, что фреймворк не справится с профессиональными высоконагруженными системами.
В рамках этого курса вы поэтапно изучите процесс создания полноценного приложения на Django. Помимо работы с основными компонентами фреймворка, вы научитесь грамотно подбирать и интегрировать сторонние библиотеки. Эта книга лишена непонятных, скучных и абстрактных задач — в ней только то, что вам действительно пригодится на практике.
В процессе обучения вы получите не только знания о принципах работы Django, но и опыт в разработке веб-приложений, которые в перспективе планируется расширять дополнительными инструментами.
Полезно как для начинающих разработчиков, так и для специалистов.
В данном издании вы изучите Python-фреймворк Flask. Он относится к категории микрофреймворков — простых каркасов для веб-приложений, обладающих только базовыми возможностями. Благодаря пошаговым примерам вы сможете создать полноценное веб-приложение для социального блогинга.
Благодаря этой книге вы освоите возможности фреймворка и ознакомитесь с различными прикладными технологиями, такими как взаимодействие веб-служб и миграции баз данных.
На фоне других Flask выделяется полной свободой в разработке. Если вы уже имеете опыт работы с Python, то изучение этого фреймворка не составим вам какого-либо труда.
Data Science
Основы программирования на Python в разрезе Data Science следует продолжить изучением таких библиотек и фреймворков:
- NumPy
- TensorFlow
- Keras
- Pandas
- PyTorch
- Matplotlib
- scikit-learn
Для погружения в Machine Learning на Python, обучение стоит начать с основных разделов, а именно:
- обучение с учителем;
- обучение без учителя;
- обучение с подкреплением.
Книги по теме
Хороша та книга, которая учит использовать мощные алгоритмы в машинном обучении без интеграции затратных решений или массивных вычислительных систем. Данное издание как раз об этом.
Благодаря этой книге вы познакомитесь с Scikit-Learn и научитесь работать с нейросетями с помощью библиотек Theano, TensorFlow и H2O. В процессе вы рассмотрите классификационные и регрессионные деревья, а также способы обучения нейросетей без учителя.
В книге рассмотрены принципы машинного обучения в модели MapReduce на Hadoop и Spark.
В данной книге описаны самые различные вычислительные методы и статистические алгоритмы. Без их использования невозможна какая-либо интенсивная обработка данных и проведение исследований.
Данное пособие будет полезно тем читателям, которые уже имеют какой-либо опыт в программировании и хотят научиться правильно использовать Python в Data Science. Например, как преобразовывать определённый формат данных в файл скрипта? Как сформировать и отфильтровать эти данные и работать с ними? Как благодаря полученной информации проанализировать ситуацию, составить статистическую модель и организовать машинное обучение.
Конечно, можно изучать Python для программирования игр, написания десктопных и мобильных приложений, но несмотря на наличие соответствующих для этого инструментов, язык наиболее востребован именно в Data Science и бэкенд-разработке.
And now for something completely different
trong>Wapcaplet: (John Cleese) Welcome! Do sit down. My name’s Wapcaplet, Adrian Wapcaplet.
Mr. Simpson: how’d’y’do.
Wapcaplet: Now, Mr. Simpson… Now, I understand you want us to advertise your washing powder.
S: String.
W: String, washing powder, what’s the difference. We can sell anything.
S: Good. Well I have this large quantity of string, a hundred and twenty-two thousand miles of it to be exact, which I inherited, and I thought if I advertised it…
W: Of course! A national campaign. Useful stuff, string, no trouble there.
S: Ah, but there’s a snag, you see. Due to bad planning, the hundred and twenty-two thousand miles is in three inch lengths. So it’s not very useful.
W: Well, that’s our selling point! ‘SIMPSON’S INDIVIDUAL STRINGETTES!’
S: What?
W: ‘THE NOW STRING! READY CUT, EASY TO HANDLE, SIMPSON’S INDIVIDUAL EMPEROR STRINGETTES — JUST THE RIGHT LENGTH!’
S: For what?
W: ‘A MILLION HOUSEHOLD USES!’
S: Such as?
W: Uhmm…Tying up very small parcels, attatching notes to pigeons’ legs, uh, destroying household pests…
S: Destroying household pests?! How?
W: Well, if they’re bigger than a mouse, you can strangle them with it, and if they’re smaller than, you flog them to death with it!
S: Well surely!….
W: ‘DESTROY NINETY-NINE PERCENT OF KNOWN HOUSEHOLD PESTS WITH PRE-SLICED, RUSTPROOF, EASY-TO-HANDLE, LOW CALORIE SIMPSON’S INDIVIDUAL EMPEROR STRINGETTES, FREE FROM ARTIFICIAL COLORING, AS USED IN HOSPITALS!’
Version | Operating System | Description | MD5 Sum | File Size | GPG |
---|---|---|---|---|---|
Gzipped source tarball | Source release | e19e75ec81dd04de27797bf3f9d918fd | 26724009 | SIG | |
XZ compressed source tarball | Source release | 6ebfe157f6e88d9eabfbaf3fa92129f6 | 18866140 | SIG | |
macOS 64-bit installer | Mac OS X | for OS X 10.9 and later | 16ca86fa3467e75bade26b8a9703c27f | 31132316 | SIG |
Windows help file | Windows | 9ea6fc676f0fa3b95af3c5b3400120d6 | 8757017 | SIG | |
Windows x86-64 embeddable zip file | Windows | for AMD64/EM64T/x64 | 60d0d94337ef657c2cca1d3d9a6dd94b | 8387074 | SIG |
Windows x86-64 executable installer | Windows | for AMD64/EM64T/x64 | b61a33dc28f13b561452f3089c87eb63 | 28158664 | SIG |
Windows x86-64 web-based installer | Windows | for AMD64/EM64T/x64 | 733df85afb160482c5636ca09b89c4c8 | 1364352 | SIG |
Windows x86 embeddable zip file | Windows | d81fc534080e10bb4172ad7ae3da5247 | 7553872 | SIG | |
Windows x86 executable installer | Windows | 4a2812db8ab9f2e522c96c7728cfcccb | 27066912 | SIG | |
Windows x86 web-based installer | Windows | cdbfa799e6760c13d06d0c2374110aa3 | 1327384 | SIG |
Модификаторы регулярных выражений: flags
Функции регулярных выражений включают необязательный модификатор для управления изменения условий поиска. Модификаторы задают в необязательном параметре . Несколько модификаторов задают с помощью побитового ИЛИ (), как показано в примерах выше.
№ | Модификатор & Описание |
---|---|
1 | re.I — делает поиск нечувствительным к регистру |
2 | re.L — ищет слова в соответствии с текущим языком. Эта интерпретация затрагивает алфавитную группу (\w и \W), а также поведение границы слова (\b и \B). |
3 | re.M — символ $ выполняет поиск в конце любой строки текста (не только конце текста) и символ ^ выполняет поиск в начале любой строки текста (не только в начале текста). |
4 | re.S — изменяет значение точки (.) на совпадение с любым символом, включая новую строку |
5 | re.U— интерпретирует буквы в соответствии с набором символов Unicode. Этот флаг влияет на поведение \w, \W, \b, \B. В python 3+ этот флаг установлен по умолчанию. |
6 | re.X— позволяет многострочный синтаксис регулярного выражения. Он игнорирует пробелы внутри паттерна (за исключением пробелов внутри набора [] или при экранировании обратным слешем) и обрабатывает не экранированный “#” как комментарий. |
Аргументы и параметры
В функции можно использовать неограниченное количество параметров, но число аргументов должно точно соответствовать параметрам. Эти параметры представляют собой позиционные аргументы. Также Python предоставляет возможность определять значения по умолчанию, которые можно задавать с помощью аргументов-ключевых слов.
При определении функции параметры со значениями по умолчанию нужно указывать до позиционных аргументов:
Если использовать необязательный параметр, тогда все, что указаны справа, должны быть параметрами по умолчанию.
Выходит, что в следующем примере допущена ошибка:
Для вызовов это работает похожим образом. Сначала нужно указывать все позиционные аргументы, а только потом необязательные:
На самом деле, следующий вызов корректен (можно конкретно указывать имя позиционного аргумента), но этот способ не пользуется популярностью:
А этот вызов некорректен:
При вызове функции с аргументами по умолчанию можно указать один или несколько, и порядок не будет иметь значения:
Можно не указывать ключевые слова, но тогда порядок имеет значение. Он должен соответствовать порядку параметров в определении:
Если ключевые слова не используются, тогда нужно указывать все аргументы:
Второй аргумент можно пропустить:
Чтобы обойти эту проблему, можно использовать словарь:
Значение по умолчанию оценивается и сохраняется только один раз при определении функции (не при вызове). Следовательно, если значение по умолчанию — это изменяемый объект, например, список или словарь, он будет меняться каждый раз при вызове функции. Чтобы избежать такого поведения, инициализацию нужно проводить внутри функции или использовать неизменяемый объект:
Еще один пример изменяемого объекта, значение которого поменялось при вызове:
Дабы не допустить изменения оригинальной последовательности, нужно передать копию изменяемого объекта:
Позиционные аргументы
Иногда количество позиционных аргументов может быть переменным. Примерами таких функций могут быть и . Синтаксис для определения таких функций следующий:
При вызове функции нужно вводить команду следующим образом:
Python обрабатывает позиционные аргументы следующим образом: подставляет обычные позиционные аргументы слева направо, а затем помещает остальные позиционные аргументы в кортеж (*args), который можно использовать в функции.
Вот так:
Если лишние аргументы не указаны, значением по умолчанию будет пустой кортеж.
Произвольное количество аргументов-ключевых слов
Как и в случае с позиционными аргументами можно определять произвольное количество аргументов-ключевых слов следующим образом (в сочетании с произвольным числом необязательных аргументов из прошлого раздела):
При вызове функции нужно писать так:
Python обрабатывает аргументы-ключевые слова следующим образом: подставляет обычные позиционные аргументы слева направо, а затем помещает другие позиционные аргументы в кортеж (*args), который можно использовать в функции (см. предыдущий раздел). В конце концов, он добавляет все лишние аргументы в словарь (**kwargs), который сможет использовать функция.
Есть функция:
Важно, что пользователь также может использовать словарь, но перед ним нужно ставить две звездочки (**):
Порядок вывода также не определен, потому что словарь не отсортирован.
Редакторы и IDE, разработанные для Python
PyCharm
Тип: IDE
Сайт: https://www.jetbrains.com/pycharm/
Одной из лучших полнофункциональных IDE, предназначенных именно для Python, является PyCharm. Существует как бесплатный open-source (Community), так и платный (Professional) варианты IDE. PyCharm доступен на Windows, Mac OS X и Linux.
PyCharm «из коробки» поддерживает разработку на Python напрямую — откройте новый файл и начинайте писать код. Вы можете запускать и отлаживать код прямо из PyCharm. Кроме того, в IDE есть поддержка проектов и системы управления версиями.
Преимущества: это среда разработки для Python с поддержкой всего и вся и хорошим коммьюнити. В ней «из коробки» можно редактировать, запускать и отлаживать Python-код.
Недостатки: PyCharm может медленно загружаться, а настройки по умолчанию, возможно, придётся подкорректировать для существующих проектов.
Spyder
Тип: IDE
Сайт: https://github.com/spyder-ide/spyder
Spyder — open-source IDE для Python, оптимизированная для data science. Spyder идёт в комплекте с менеджером пакетов Anaconda, поэтому вполне возможно, что он у вас уже установлен.
Что в Spyder интересно, так это то, что его целевой аудиторией являются data scientist’ы, использующие Python. Например, Spyder хорошо взаимодействует с такими библиотеками для data science, как SciPy, NumPy и Matplotlib.
Spyder обладает той функциональностью, которую вы можете ожидать от стандартной IDE, вроде редактора кода с подсветкой синтаксиса, автодополнения кода и даже встроенного обозревателя документации.
Отличительной особенностью Spyder является наличие проводника переменных. Он позволяет просмотреть значения переменных в форме таблицы прямо внутри IDE. Также хорошо работает интеграция с IPython/Jupyter.
Про Spyder можно сказать, что он более «приземлённый», чем другие IDE. Его можно рассматривать как инструмент для определённой цели, а не как основную среду разработки. Что в нём хорошо, так это, что он бесплатный, open-source и доступный на Windows, macOS и Linux.
Преимущества: вы data scientist, который пользуется Anaconda.
Недостатки: более опытные разработчики на Python могут найти Spyder недостаточно функциональным для повседневной работы и сделают свой выбор в пользу более функциональной IDE или редактора.
Thonny
Тип: IDE
Сайт: http://thonny.org/
Thonny называют IDE для новичков. Написанный и поддерживаемый Институтом информатики Тартуского университета в Эстонии, Thonny доступен на всех основных платформах.
По умолчанию Tonny устанавливается с версией Python, идущей в комплекте, поэтому вам не понадобится устанавливать ещё что-нибудь. Продвинутым пользователям, возможно, придётся изменить эту настройку, чтобы IDE нашла и использовала уже установленные библиотеки.
Преимущества: вы начинающий Python-программист и вам нужна IDE, с которой можно сразу идти в бой.
Недостатки: продвинутым пользователям будет недостаточно функциональности, а встроенный интерпретатор они заменят. Кроме того, учитывая новизну IDE, могут возникнуть проблемы, решения которых на данный момент нет.
Как пользоваться ADB run
Вышло обновление MacOS 10.6.2
Стало доступно для загрузки долгожданное обновление MacOS X за номером 10.6.2. Данное обновление рекомендуется установить всем пользователям ОС Mac OS X 10.6 — 10.6.1 Snow Leopard. Оно содержит общие исправления для операционной системы, которые повышают стабильность, совместимость и безопасность компьютера Mac.
Основные (самые долгожданные) изменения включают:
- решена проблема, приводившая к удалению данных при использовании гостевой учетной записи;
- решена проблема, приводившая к неожиданному завершению текущего сеанса пользователя;
- решена проблема с отображением в результатах поиска Spotlight контактов Exchange;
- повышена стабильность работы дополнений к меню;
- в Cловаре решена проблема, возникавшая, если в качестве основного языка системы использовался иврит;
- звуковой эффект срабатывания затвора во время сохранения снимка экрана;
- решена проблема с жестом смахивания четырьмя пальцами;
- решена проблема с добавлением изображений в контакты Адресной книги;
- решена проблема с подключением мониторов к адаптерам DVI и Mini DisplayPort;
- решена проблема, приводившая к тому, что после перезагрузки настройки яркости могли не сохраняться;
На самом деле изменений еще масса, и более подробно о них можно почитать на сайте Apple.
В русской версии страницы загрузок обновления еще нет, а в английской — .
Python теперь доступен каждому желающему
В феврале 1991 Ван Россум публикует Python в alt.source на всеобщее обозрение . В языке поддерживаются основные типы данные list, dict, str и т.д., исключения, классы с поддержкой наследования. Была заимствована из языков Modula-2 и Modula-3 идея модульной системы . Эти концепты до сих пор присутствуют.
В 1994 году выходит версия 1.0. Были добавлены особенности функционального программирования: lambda, filter, map, reduce – функции, навеянные языком Lisp .
В сентябре 2000 года выходит версия 1.6 – последняя из серии 1.x. В следующем месяце этого года появится новый релиз Python – 2.0.
Часть 2. Пример материала по курсу «Машинное обучение с помощью Python». Деревья решений
здесь
этой
Плюсы и минусы подхода
- Порождение четких правил классификации, понятных человеку, например, «если возраст < 25 и интерес к мотоциклам, отказать в кредите»
- Деревья решений могут легко визуализироваться
- Относительно быстрые процессы обучения и классификации
- Малое число параметров модели
- Поддержка и числовых, и категориальных признаков
- Разделяющая граница, построенная деревом решений, имеет свои ограничения (состоит из гиперкубов), и на практике дерево решений по качеству классификации уступает некоторым другим методам
- Необходимость отсекать ветви дерева (pruning) или устанавливать минимальное число элементов в листьях дерева или максимальную глубину дерева для борьбы с переобучением. Впрочем, переобучение — проблема всех методов машинного обучения
- Нестабильность. Небольшие изменения в данных могут существенно изменять построенное дерево решений. С этой проблемой борются с помощью ансамблей деревьев решений (рассмотрим далее)
- Проблема поиска оптимального дерева решений NP-полна, поэтому на практике используются эвристики типа жадного поиска признака с максимальным приростом информации, которые не гарантируют нахождения глобально оптимального дерева
- Сложно поддерживаются пропуски в данных. Friedman оценил, что на поддержку пропусков в данных ушло 50% кода CART.
Одиночные проверки
Внутри условия
можно прописывать и такие одиночные выражения:
x = 4; y = True; z = False if(x): print("x = ", x, " дает true") if(not ): print("0 дает false") if("0"): print("строка 0 дает true") if(not ""): print("пустая строка дает false") if(y): print("y = true дает true") if(not z): print("z = false дает false")
Вот этот оператор
not – это отрицание
– НЕ, то есть, чтобы проверить, что 0 – это false мы
преобразовываем его в противоположное состояние с помощью оператора отрицания
НЕ в true и условие
срабатывает. Аналогично и с переменной z, которая равна false.
Из этих примеров
можно сделать такие выводы:
-
Любое число,
отличное от нуля, дает True. Число 0 преобразуется в False. -
Пустая строка –
это False, любая другая
строка с символами – это True. - С помощью
оператора not можно менять
условие на противоположное (в частности, False превращать в True).
Итак, в условиях
мы можем использовать три оператора: and, or и not. Самый высокий
приоритет у операции not, следующий приоритет имеет операция and и самый
маленький приоритет у операции or. Вот так работает оператор if в Python.
Видео по теме
Python 3 #1: установка и запуск интерпретатора языка
Python 3 #2: переменные, оператор присваивания, типы данных
Python 3 #3: функции input и print ввода/вывода
Python 3 #4: арифметические операторы: сложение, вычитание, умножение, деление, степень
Python 3 #5: условный оператор if, составные условия с and, or, not
Python 3 #6: операторы циклов while и for, операторы break и continue
Python 3 #7: строки — сравнения, срезы строк, базовые функции str, len, ord, in
Python 3 #8: методы строк — upper, split, join, find, strip, isalpha, isdigit и другие
Python 3 #9: списки list и функции len, min, max, sum, sorted
Python 3 #10: списки — срезы и методы: append, insert, pop, sort, index, count, reverse, clear
Python 3 #11: списки — инструмент list comprehensions, сортировка методом выбора
Python 3 #12: словарь, методы словарей: len, clear, get, setdefault, pop
Python 3 #13: кортежи (tuple) и операции с ними: len, del, count, index
Python 3 #14: функции (def) — объявление и вызов
Python 3 #15: делаем «Сапер», проектирование программ «сверху-вниз»
Python 3 #16: рекурсивные и лямбда-функции, функции с произвольным числом аргументов
Python 3 #17: алгоритм Евклида, принцип тестирования программ
Python 3 #18: области видимости переменных — global, nonlocal
Python 3 #19: множества (set) и операции над ними: вычитание, пересечение, объединение, сравнение
Python 3 #20: итераторы, выражения-генераторы, функции-генераторы, оператор yield
Python 3 #21: функции map, filter, zip
Python 3 #22: сортировка sort() и sorted(), сортировка по ключам
Python 3 #23: обработка исключений: try, except, finally, else
Python 3 #24: файлы — чтение и запись: open, read, write, seek, readline, dump, load, pickle
Python 3 #25: форматирование строк: метод format и F-строки
Python 3 #26: создание и импорт модулей — import, from, as, dir, reload
Python 3 #27: пакеты (package) — создание, импорт, установка (менеджер pip)
Python 3 #28: декораторы функций и замыкания
Python 3 #29: установка и порядок работы в PyCharm
Python 3 #30: функция enumerate, примеры использования