Знакомство с Python
Язык программирования Python был создан к 1991 году голландцем Гвидо ван Россумом.
Свое имя – Пайтон (или Питон) – получил от названия телесериала, а не пресмыкающегося.
После того, как Россум разработал язык, он выложил его в Интернет, где сообщество программистов присоединилось к его улучшению.
Python активно развивается и сейчас. Часто выходят новые версии. Раньше поддерживались две отдельные ветки языка: Python 2.x и Python 3.x. Здесь английской буквой «x» обозначается конкретный релиз. Между вторым и третьим Питоном есть небольшая разница. В настоящее время поддержка Python 2 прекращена.
Особенности языка
Python – интерпретируемый язык программирования. Это значит, что исходный код частями преобразуется в машинный в процессе его чтения специальной программой – интерпретатором.
Python характеризуется ясным синтаксисом. Читать код на нем легче, чем на других языках программирования, так как в Питоне мало используются такие вспомогательные синтаксические элементы как скобки, точки с запятыми. С другой стороны, правила языка заставляют программистов делать отступы для обозначения вложенных конструкций. Понятно, что хорошо оформленный текст с малым количеством отвлекающих элементов читать и понимать легче.
Python – это полноценный во многом универсальный язык программирования, используемый в различных сферах. Основная, но не единственная, поддерживаемая им парадигма, – объектно-ориентированное программирование. Однако в данном курсе мы только упомянем об объектах, а будем изучать структурное программирование, так как оно является базой. Без знания основных типов данных, ветвлений, циклов, функций нет смысла изучать более сложные парадигмы, так как в них все это используется.
Интерпретаторы Python распространяется свободно на основании лицензии подобной GNU General Public License.
Дзен Питона
Если интерпретатору Питона дать команду import this , то выведется так называемый «Дзен Питона», иллюстрирующий идеологию и особенности данного языка. Понимание смысла этих постулатов в приложении к программированию придет тогда, когда вы освоите язык в полной мере и приобретете опыт практического программирования.
- Beautiful is better than ugly. Красивое лучше уродливого.
- Explicit is better than implicit. Явное лучше неявного.
- Simple is better than complex. Простое лучше сложного.
- Complex is better than complicated. Сложное лучше усложнённого.
- Flat is better than nested. Плоское лучше вложенного.
- Sparse is better than dense. Разрежённое лучше плотного.
- Readability counts. Удобочитаемость важна.
- Special cases aren’t special enough to break the rules. Частные случаи не настолько существенны, чтобы нарушать правила.
- Although practicality beats purity. Однако практичность важнее чистоты.
- Errors should never pass silently. Ошибки никогда не должны замалчиваться.
- Unless explicitly silenced. За исключением замалчивания, которое задано явно.
- In the face of ambiguity, refuse the temptation to guess. Перед лицом неоднозначности сопротивляйтесь искушению угадать.
- There should be one — and preferably only one — obvious way to do it. Должен существовать один — и, желательно, только один — очевидный способ сделать это.
- Although that way may not be obvious at first unless you’re Dutch. Хотя он может быть с первого взгляда не очевиден, если ты не голландец.
- Now is better than never. Сейчас лучше, чем никогда.
- Although never is often better than *right* now. Однако, никогда чаще лучше, чем прямо сейчас.
- If the implementation is hard to explain, it’s a bad idea. Если реализацию сложно объяснить — это плохая идея.
- If the implementation is easy to explain, it may be a good idea. Если реализацию легко объяснить — это может быть хорошая идея.
- Namespaces are one honking great idea — let’s do more of those! Пространства имён — прекрасная идея, давайте делать их больше!
Как писать программы на Python
Интерактивный режим
Грубо говоря, интерпретатор выполняет команды построчно. Пишешь строку, нажимаешь Enter , интерпретатор выполняет ее, наблюдаешь результат.
Это удобно, когда изучаешь особенности языка или тестируешь какую-нибудь небольшую часть кода. Ведь если работать на компилируемом языке, пришлось бы сначала создать файл с кодом на исходном языке программирования, затем передать его компилятору, получить от него исполняемый файл, только потом выполнить программу и оценить результат. К счастью, даже в случае с компилируемыми языками все эти действия выполняет среда разработки, что упрощает жизнь программиста.
В операционных системах на базе ядра Linux можно программировать на Python в интерактивном режиме с помощью приложения «Терминал», в котором работает командная оболочка Bash. Здесь, чтобы запустить интерпретатор, надо выполнить команду python3 .
В данном случае запустилась версия 3.8.5. Первое число 3 указывает на то, что это интерпретатор для языка программирования Python 3. Последняя строка с тремя угловыми скобками ( >>> ) – это приглашение для ввода команд.
Для операционных систем семейства Windows надо скачать интерпретатор с официального сайта языка (https://www.python.org/downloads/windows/). После установки он будет запускаться по ярлыку. Использовать командную оболочку здесь не требуется.
Возможности Python позволяют использовать его как калькулятор. Поскольку команды языка мы не изучали, это хороший способ протестировать интерактивный ввод команд.
Бывает, что в процессе ввода была допущена ошибка или требуется повторить ранее используемую команду. Чтобы заново не вводить строку, в консоли можно прокручивать историю команд, используя для этого стрелки вверх и вниз на клавиатуре. В среде IDLE (в Windows) для этого используются сочетания клавиш (скорее всего Alt+N и Alt+P ).
Создание скриптов
Несмотря на удобства интерактивного режима, чаще всего необходимо сохранить исходный программный код для последующего выполнения и использования. В таком случае подготавливаются файлы, которые передаются затем интерпретатору на исполнение. Файлы с кодом на Python обычно имеют расширение *.py .
Существует множество сред разработки (IDE), в том числе созданные для программирования почти исключительно на Python. Примером такой среды является PyCharm. Однако на первое время подойдет текстовый редактор с подсветкой синтаксиса, например, Geany.
Здесь создается и сохраняется файл с кодом. Далее его можно запустить на выполнение через терминал. При этом сначала указывается интерпретатор (в данном случае python3 ), потом имя файла (если файл находится в другом каталоге, то указывается с адресом, или надо перейти в этот каталог с помощью команды cd оболочки Bash).
При этом в Geany может быть установлен свой встроенный «терминал», что упрощает работу.
Также в Geany можно просто нажать F5 , что отправит файл на исполнение (терминал откроется сам, после выполнения программы и нажатия Enter закроется). Однако при этом должен быть правильно настроен вызываемый интерпретатор (пункт меню Сборка → Установить команды сборки ).
В Windows подготовить файлы можно в той же среде IDLE. Для этого в меню следует выбрать команду File → New Window ( Crtl + N ), откроется чистое (без приглашения >>> ) новое окно. Желательно сразу сохранить файл с расширением .py , чтобы появилась подсветка синтаксиса. После того как код будет подготовлен, снова сохраните файл. Запуск скрипта выполняется командой Run → Run Module ( F5 ). После этого в окне интерактивного режима появится результат выполнения кода.
Практическая работа
- Запустите интерпретатор Питона в интерактивном режиме. Выполните несколько команд, например, арифметические примеры.
- Подготовьте файл с кодом и передайте его на исполнение интерпретатору. Обратите внимание, что если просто записать арифметику, то никакого вывода не последует. Вы увидите пустоту. Это отличается от интерактивного режима. Чтобы увидеть решение, надо «обернуть» пример в функцию print() .
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
The Python Tutorial¶
Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.
The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.
The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications.
This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. It helps to have a Python interpreter handy for hands-on experience, but all examples are self-contained, so the tutorial can be read off-line as well.
For a description of standard objects and modules, see The Python Standard Library . The Python Language Reference gives a more formal definition of the language. To write extensions in C or C++, read Extending and Embedding the Python Interpreter and Python/C API Reference Manual . There are also several books covering Python in depth.
This tutorial does not attempt to be comprehensive and cover every single feature, or even every commonly used feature. Instead, it introduces many of Python’s most noteworthy features, and will give you a good idea of the language’s flavor and style. After reading it, you will be able to read and write Python modules and programs, and you will be ready to learn more about the various Python library modules described in The Python Standard Library .
The Glossary is also worth going through.
- 1. Whetting Your Appetite
- 2. Using the Python Interpreter
- 2.1. Invoking the Interpreter
- 2.1.1. Argument Passing
- 2.1.2. Interactive Mode
- 2.2.1. Source Code Encoding
- 3.1. Using Python as a Calculator
- 3.1.1. Numbers
- 3.1.2. Text
- 3.1.3. Lists
- 4.1. if Statements
- 4.2. for Statements
- 4.3. The range() Function
- 4.4. break and continue Statements, and else Clauses on Loops
- 4.5. pass Statements
- 4.6. match Statements
- 4.7. Defining Functions
- 4.8. More on Defining Functions
- 4.8.1. Default Argument Values
- 4.8.2. Keyword Arguments
- 4.8.3. Special parameters
- 4.8.3.1. Positional-or-Keyword Arguments
- 4.8.3.2. Positional-Only Parameters
- 4.8.3.3. Keyword-Only Arguments
- 4.8.3.4. Function Examples
- 4.8.3.5. Recap
- 5.1. More on Lists
- 5.1.1. Using Lists as Stacks
- 5.1.2. Using Lists as Queues
- 5.1.3. List Comprehensions
- 5.1.4. Nested List Comprehensions
- 6.1. More on Modules
- 6.1.1. Executing modules as scripts
- 6.1.2. The Module Search Path
- 6.1.3. “Compiled” Python files
- 6.4.1. Importing * From a Package
- 6.4.2. Intra-package References
- 6.4.3. Packages in Multiple Directories
- 7.1. Fancier Output Formatting
- 7.1.1. Formatted String Literals
- 7.1.2. The String format() Method
- 7.1.3. Manual String Formatting
- 7.1.4. Old string formatting
- 7.2.1. Methods of File Objects
- 7.2.2. Saving structured data with json
- 8.1. Syntax Errors
- 8.2. Exceptions
- 8.3. Handling Exceptions
- 8.4. Raising Exceptions
- 8.5. Exception Chaining
- 8.6. User-defined Exceptions
- 8.7. Defining Clean-up Actions
- 8.8. Predefined Clean-up Actions
- 8.9. Raising and Handling Multiple Unrelated Exceptions
- 8.10. Enriching Exceptions with Notes
- 9.1. A Word About Names and Objects
- 9.2. Python Scopes and Namespaces
- 9.2.1. Scopes and Namespaces Example
- 9.3.1. Class Definition Syntax
- 9.3.2. Class Objects
- 9.3.3. Instance Objects
- 9.3.4. Method Objects
- 9.3.5. Class and Instance Variables
- 9.5.1. Multiple Inheritance
- 10.1. Operating System Interface
- 10.2. File Wildcards
- 10.3. Command Line Arguments
- 10.4. Error Output Redirection and Program Termination
- 10.5. String Pattern Matching
- 10.6. Mathematics
- 10.7. Internet Access
- 10.8. Dates and Times
- 10.9. Data Compression
- 10.10. Performance Measurement
- 10.11. Quality Control
- 10.12. Batteries Included
- 11.1. Output Formatting
- 11.2. Templating
- 11.3. Working with Binary Data Record Layouts
- 11.4. Multi-threading
- 11.5. Logging
- 11.6. Weak References
- 11.7. Tools for Working with Lists
- 11.8. Decimal Floating Point Arithmetic
- 12.1. Introduction
- 12.2. Creating Virtual Environments
- 12.3. Managing Packages with pip
- 14.1. Tab Completion and History Editing
- 14.2. Alternatives to the Interactive Interpreter
- 15.1. Representation Error
- 16.1. Interactive Mode
- 16.1.1. Error Handling
- 16.1.2. Executable Python Scripts
- 16.1.3. The Interactive Startup File
- 16.1.4. The Customization Modules
Python. Введение в программирование
Курс «Python. Введение в программирование» рассчитан на всех желающих познакомиться с программированием. В курсе рассматриваются основные типы данных, принципы и понятия структурного программирования.
Выбор Python обусловлен такими его преимуществами как ясность кода и быстрота реализации на нем программ.
Курс включает 25 уроков в основной части + 8 уроков в дополнительной.
Основной целью курса является знакомство с программированием, формирование базовых понятий структурного программирования, подготовка к последующему изучению объектно-ориентированного программирования.
Текущая версия курса: март 2023 г.
Вы можете приобрести pdf-версию курса с ответами и пояснениями к практическим работам, а также дополнительными уроками — «Генераторы списков», «Матрицы», «Множества», «Особенности работы операторов and и or в Python», «Lambda-выражения», «Сортировка списков», «Фильтрация списков», «Функция zip».
Уроки курса в кратком изложении на YouTube.
Программа курса
- Краткая история языков программирования История программирования в кратком и понятном изложении. Что такое машинный язык, почему появились ассемблеры, языки высокого уровня и объектно-ориентированные. Зачем нужен транслятор, и почему он может быть либо компилятором, либо интерпретатором.
- Знакомство с Python Особенности языка Python, работа в интерактивном режиме и подготовка файлов с исходным кодом.
- PyCharm Community. Основы работы Установка и настройка PyCharm Community, создание проекта, настройка интерпретатора и другие особенности работы в интегрированной среде разработки.
- Типы данных. Переменные Базовые типы данных в Python: целое, вещественное числа, строки. Изменение типа данных с помощью встроенных функций. Понятие об операциях и переменных. Присваивание значения переменной.
- Ввод и вывод данных Для вывода на экран в Python 3.x используется функция print(). Вывод может быть предварительно отформатирован. Для ввода данных с клавиатуры используется функция input(), которая возвращает в программу строку.
- Логические выражения и операторы Логические выражения. Логические операторы языка Python: == (равно), != (не равно), (больше), = (больше или равно), and (логическое И), or (логическое ИЛИ), not (отрицание).
- Ветвление. Условный оператор Ветвление в Python реализуется с помощью условный оператора if-else. Ветка if выполняется если условие верно, необязательная ветка else — в остальных случаях.
- Ошибки и исключения. Обработка исключений Общее представление об ошибках и исключениях в языке программирования Python. SyntaxError, NameError, TypeError, ValueError, ZeroDivisionError. Обработка исключений с помощью инструкции try-except.
- Множественное ветвление: if-elif-else. Оператор match в Python Оператор множественного ветвления Python позволяет организовать более двух веток выполнения программы без вложенных условных операторов. Конструкция включает одну ветку if, произвольное количество elif и необязательную ветку else. В Python 3.10 также появился оператор match.
- Циклы в программировании. Цикл while С помощью циклов в программировании организуется многократное следующее друг за другом выполнение одних и тех же участков кода. Бывают циклы с условием и со счетчиком. К первым относится цикл while, или цикл «пока».
- Функции в программировании Функции — важный элемент структурного программирования. Они позволяют обособить участок кода, выполняющий определенную задачу. В дальнейшем к нему можно обращаться из разных мест программы по имени, которым он назван. В языке Python функции определяются с помощью оператора def.
- Локальные и глобальные переменные В программировании важное значение имеет представление о локальных и глобальных переменных. Локальные переменные существуют внутри функций и не доступны за ее пределами. Глобальные переменные видны во всей программе.
- Возврат значений из функции. Оператор return С помощью оператора return можно вернуть значение из тела функции в основную программу. В языке программирования Python можно вернуть несколько значений, перечислив их через запятую после оператора return. Также в функции может быть несколько return, но всегда выполняется только один из них.
- Параметры и аргументы функции Если функция имеет параметры, то при вызове в нее можно передавать данные в виде аргументов-значений или аргументов-ссылок. Параметры перечисляются в заголовке функции в скобках после имени, представляют собой локальные переменные. В Python тип параметров не указывается, хотя в других языках это может быть обязательным требованием.
- Встроенные функции Язык программирования Python включает множество встроенных функций. В предыдущих уроках мы использовали такие функции как print() и input(), а также функции преобразования типов данных. В этом уроке рассматриваются встроенные функции для работы с символами и числами.
- Модули Использование модулей в программировании позволяет изолировать код, выполняющий частные задачи, в отдельные файлы. После чего обращаться к нему из разных программ. Создание модулей — следующий шаг после функций, когда участок кода обособляется внутри одного файла-программы. Для языка Python есть множество встроенных и сторонних модулей.
- «Случайные» числа – random, randint, randrange Для генерации псевдослучайных чисел в языке программирования Python используются функции модуля random. Функция random() генерирует вещественное число от 0 до 1. Функции randint() и randrange() производят целые псевдослучайные числа в указанных диапазонах.
- Списки Списки в Python — это аналог массивов в других языках программирования. Однако список может содержать элементы разных типов. В терминологии Python список — это изменяемая упорядоченная структура данных. Можно заменять его элементы, добавлять и удалять их, брать срезы. В язык встроены методы для работы со списками.
- Цикл for Цикл for в языке программирования Python предназначен для перебора элементов структур данных (списков, словарей, кортежей, множеств) и многих других объектов. Это не цикл со счетчиком, каковым является for во многих других языках. Нередко цикл for используется совместно с функцией range(), генерирующей объекты-диапазоны.
- Функция enumerate Функция enumerate в Python используется для упрощения прохода по коллекциям, например спискам, в цикле, когда кроме самих элементов требуется их индекс. Вызов enumerate возвращает объект-итератор, генерирующий кортежи (индекс, элемент).
- Строки В Python строки — это неизменяемые последовательности символов или подстрок. Из них, так же как из списков, можно извлекать отдельные символы с помощью индексов или подстроки с помощью взятия срезов. В языке Python есть множество встроенных строковых методов, позволяющих упростить обработку строк.
- Кортежи Кортежи в Python — это неизменяемые структуры данных, состоящие из элементов одного или разных типов. Кортежи подобны спискам и обычно используются для защиты последних от изменений. Преобразование одного в другой выполняется с помощью встроенных функций tuple() и list().
- Словари Словарь в Python — это изменяемая неупорядоченная структура данных, элементами которой являются пары «ключ:значение». В словари можно добавлять и удалять элементы, изменять значения ключей. В Python словари имеют ряд методов, упрощающих работу с ними.
- Файлы В языке программирования Python открытие файлов выполняется с помощью функции open(), которой передается два аргумента — имя файла и режим. Файл может быть открыт в режиме чтения, записи, добавления. Также может быть указан тип файла — текстовый или бинарный. Для файлов есть ряд встроенных методов чтения, записи и др.
- Итоги курса «Python. Введение в программирование» В этом курсе были изучены основы структурного программирования, в качестве инструмента использовался язык Python. Были рассмотрены встроенные типы данных, ветвления и циклы, обработчик исключений, функции, работа с модулями. Одной из целей курса является подготовка к изучению объектно-ориентированного программирования.
Примеры решения и дополнительные уроки в pdf-версии курса
X Скрыть Наверх
Python. Введение в программирование
При подготовке материала использовались источники:
https://younglinux.info/python/introductionpython
https://docs.python.org/3/tutorial/index.html
https://younglinux.info/python/course
- 2.1. Invoking the Interpreter