Python — интерпретируемый язык программирования. Он не конвертирует свой код в машинный, который понимает железо (в отличие от С и С++). Вместо этого, Python-интерпретатор переводит код программы в байт-код, который запускается на виртуальной машине Python (PVM). Давайте рассмотрим подробнее, как это работает на примере самой популярной реализации интерпретатора — CPython.
Интерпретатор — это программа, которая конвертирует ваши инструкции, написанные на Python, в байт-код и выполняет их. По сути интерпретатор — это программный слой между вашим исходным кодом и железом.
Существует 2 типа интерпретаторов:
- Простой интерпретатор . Он берет одну инструкцию, транслирует и сразу выполняет ее, а затем берет следующую инструкцию.
- Интерпретатор компилирующего типа . Это система из компилятора и интерпретатора. Компилятор переводит исходный код программы в промежуточное представление (байт-код), а интерпретатор (виртуальная машина) выполняет этот байт-код.
- Интерпретатор компилирующего типа (благодаря этому достигается большее быстродействие выполнения программ).
- Считается эталонной реализацией языка Python.
- Написан на C.
- Исходный код CPython находится в открытом доступе.
- Его разработка ведётся группой разработчиков под руководством Гвидо ван Россума — создателя Python.
Кроме этого, у интерпретатора CPython есть особенность — он может работать в режиме диалога (REPL — read-eval-print loop). Интерпретатор считывает законченную конструкцию языка, выполняет её, печатает результаты и переходит к ожиданию ввода пользователем следующей конструкции.
Уроки Python — Начало работы и установка
Как CPython выполняет программы
Интерпретатор «Питона» выполняет любую программу поэтапно.
Этап #1. Инициализация
После запуска вашей программы, Python-интерпретатор читает код, проверяет форматирование и синтаксис. При обнаружении ошибки он незамедлительно останавливается и показывает сообщение об ошибке.
Помимо этого, происходит ряд подготовительных процессов:
- анализ аргументов командной строки;
- установка флагов программы;
- чтение переменных среды и т.д.
Этап #2. Компиляция
Интерпретатор транслирует (переводит) исходные инструкции вашей программы в байт-код (низкоуровневое, платформонезависимое представление исходного текста). Такая трансляция необходима в первую очередь для повышения скорости — байт-код выполняется в разы быстрее, чем исходные инструкции.
Если Python-интерпретатор обладает правом записи, он будет сохранять байт-код в виде файла с расширением .pyc . Если исходный текст программы не изменился с момента последней компиляции, при следующем запуске вашей программы, Python сразу загрузит файл .pyc , минуя этап компиляции (тем самым ускорит процесс запуска программы).
Этап #3. Выполнения
Как только байт-код скомпилирован, он отправляется на виртуальную машину Python (PVM). Здесь выполняется байт-код на PVM. Если во время этого выполнения возникает ошибка, то выполнение останавливается с сообщением об ошибке.
Python с нуля. Урок 1 | Первая программа. Переменные
PVM является частью Python-интерпретатора. По сути это просто большой цикл, который выполняет перебор инструкций в байт-коде и выполняет соответствующие им операции.
Альтернативы CPython
CPython является стандартной реализацией, но существуют и другие реализации, созданные для специфических целей и задач.
Jython
Основная цель данный реализации — тесная интеграция с языком Java. Работает следующим образом:
- Java-классы выполняют компиляцию программного кода на языке Python в байт-код Java.
- Полученный байт-код запускается на виртуальной машине Java (JVM).
Jython позволить Python-программам управлять Java-приложениями. Во время выполнения такая программа ведет себя точно так же, как настоящая программа на языке Java.
IronPython
Предназначена для обеспечения интеграции Python-программ с C# приложениями на Microsoft .NET Framework или Mono. Принцип работы такой же, как и у Jython.
PyPy
PyPy — это интерпретатор Python, написанный на Python (если быть точнее, то на RPython).
Особенностью PyPy является использование трассирующего JIT-компилятора (just-in-time), который на лету транслирует некоторые элементы в машинный код. Благодаря этому, при выполнении некоторых операций PyPy обгоняет CPython в несколько раз. Но плата за такую производительность — более высокое потребление памяти.
Источник: pythonchik.ru
Самоучитель Python
Самоучитель Python 3, собранный из материалов данного сайта. Предназначен в основном для тех, кто хочет изучить язык программирования Python с нуля.
Доступна также pdf-версия самоучителя
- Возможности языка Python
- Загрузка и установка Python
- Первая программа. Знакомство со средой разработки IDLE
- Синтаксис
- Почему моя программа не работает?
- Условный оператор if
- Циклы
- Ключевые слова, встроенные функции (для ознакомления, знать, как не стоит называть переменные)
- Числа
- Строки (часть 1, часть 2, форматирование)
- Списки (массивы)
- Индексы и срезы
- Кортежи
- Словари
- Множества
- Функции
- Исключения и их обработка
- Байтовые строки
- Файлы
- With … as — менеджеры контекста
- PEP 8 — руководство по написанию кода на Python (следовать (да и читать) необязательно, но очень рекомендуется, для того, чтобы вы смогли понять свой код через полгода)
- Документирование кода (тоже полезная вещь)
- Создание и подключение модулей
- Объектно-ориентированное программирование. Основы
- Инкапсуляция, наследование, полиморфизм
- Перегрузка операторов
- Декораторы
Литература
Полезные материалы
Самоучитель не полный, будет дополняться и совершенствоваться. Пишите, предлагайте идеи, помогайте писать статьи 🙂
- Модуль csv — чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Подпишись на обновления по RSS или по почте!
Источник: pythonworld.ru
Основы программирования на языке Python. Часть 1
С чем у вас ассоциируется слово «питон»? Если со змеей, то пора мыслить шире. В этой статье мы узнаем, в чем особенности программирования на «змеином» языке, выберем себе необходимые инструменты для работы и напишем свою первую программу.
Вводная информация. Инструменты для работы
Python — высокоуровневый язык программирования, отдающий большой приоритет скорости, простоте и удобству написания кода, поэтому он является одним из самых простых в освоении.
Как подготовиться к написанию программ?
Файлы кода, написанного на Python, имеют расширение .py. Для их работы на компьютер необходимо установить интерпретатор языка – программу, которая и будет выполнять написанный нами код. Найти его установочный файл можно на официальном сайте python.org во вкладке Downloads.
Помимо интерпретатора, который будет читать наш код, нам необходимо приложение, где мы будем его писать — среда разработки. И здесь появляется большое количество вариантов. Самыми популярными средами разработки являются:
- IDLE. Эта среда разработки идет в комплекте с интерпретатором и является самой простой из всех. Во всех смыслах слова «простой».
- малый вес и небольшое количество потребляемой памяти позволят запустить его на любом устройстве;
- максимально простая организация — отдельный файл открывается в отдельной вкладке.
- никакого дополнительного функционала — это просто блокнот, который лишь немного выделит код для удобства и запустит его.
- PyCharm. Это как танк Т-34, по сравнению с которым IDLE — трехколесный велосипед.
- мощный функционал, в том числе более удобная подсветка кода, автоматическая помощь при написании кода, удобное выделение ошибок прямо в коде и так далее.
- требовательность — установленная среда разработки весит около 1 гигабайта и потребляет большое количество ресурсов при своем запуске;
- сложность внутренней организации — программа не позволяет запускать отдельно файлы с программами. Эти файлы должны объединяться в проекты, а настройка проектов иногда может быть довольно проблематичным занятием.
Если ваш компьютер мощнее калькулятора и вы хотите получать небольшие, но полезные подсказки при написании кода — это ваш кандидат.
- Sublime Text 3. Промежуточное звено между двумя предыдущими вариантами, которое вобрало по чуть-чуть всего хорошего из них, но с одним дополнительным минусом.
- относительная «легкость» самой среды и малое количество потребляемых ресурсов;
- отдельные файлы открываются в одной вкладке в разных окнах;
- выделение ошибочных строк и небольшая помощь при написании кода.
- все преимущества этой программы, похожие на преимущества PyCharm, работают не так хорошо, как у PyCharm;
- невозможность ввода данных с клавиатуры. Если вы еще не знаете, что это и как — не расстраивайтесь, эта программа тоже не знает. О вводе данных с клавиатуры мы поговорим чуть ниже.
Последний недостаток является относительным, так как это далеко не самая важная функция, которой вы будете пользоваться каждый раз при написании кода, а альтернатива этому есть.
Вывод и ввод данных. Переменные
Программам почти всегда приходится работать с какой-то информацией — данными. Они ее получают от пользователя, как-то преобразуют и сообщают о результатах своих действий. По своей сути слова «данные» и «информация» являются равнозначными, так что не удивляйтесь, если мы или кто-то другой будут употреблять эти слова в качестве синонимов.
Процесс получения программой информации называется вводом данных в программу. В рамках нашего изучения языка Python мы научимся вводить данные в программу вручную (пользователь вписывает данные с клавиатуры) и из файлов.
Вывод данных — это процесс отображения программой обработанных данных. В качестве способа вывода мы будем использовать консоль, то есть текстовое приложение, которое уже встроено в среды разработки — те самые IDLE, PyCharm и Sublime Text 3. С помощью этого приложения программа может отображать текст на экране компьютера.
Давайте научим нашу программу писать сообщения и отображать их на экран!
Выбрав среду программирования, без лишних раздумий и колебаний создаем новый файл .py, пишем свою первую программу:
print(“Hello world”)
После ее запуска будет выведено сообщение: Hello world.
Поздравляем, вы стали программистом!
А теперь начнем становиться хорошими программистами и разберемся с тем, что мы написали:
- print – функция вывода данных на экран.
После функции в скобках нужно записать текст, который мы хотим вывести. Если вписать в скобках несколько значений через запятую, они будут выведены на экран в одну строку через пробел.
- “Hello world” – это строка (= просто кусочек текста), которую мы создали и сразу передали в функцию print.
Сейчас поговорим о том, что такое переменная и что сложного в том, чтобы придумать ей имя.
Когда мы вывели строку на экран, программа сразу ее забыла. Но иногда нам важно, чтобы программа помнила то, что мы в нее ввели. Тогда нужна уже не строка, а переменная.
Переменные используются для долгосрочной работы с данными. Присвоив имя какому-либо значению, то есть какой-то информации, хранимой в памяти: строке, числу и т.д. — в любом месте программы к нему можно обратиться именно по этому имени.
Переменная — это именованная информация, которая хранится в компьютере при работе программы.
Схема создания переменной:
имя_переменной = значение
Давайте сохраним строку “Hello world” как переменную, присвоив ей имя s.
Какое имя дать переменной — извечная проблема программирования. Основные правила и советы по именованию переменных:
-
Имя переменной может состоять только из букв латинского алфавита, цифр и символа «_».
- Хорошей практикой является давать переменным осмысленные имена.
Последний совет стоит раскрыть. Например, для строки “Hello world” можно было бы выбрать имя string (строка) или подобное, а для переменной, которая что-то считает — count (счет). Главное, чтобы было по названию понятно, что в ней.
Конечно, никто не может запретить вам назвать переменную sdhcjUBbh56. Но, во-первых, написать это же имя во второй раз без опечатки будет тяжело, а, во-вторых, уже к середине программы с большим количеством таких переменных вы забудете, какая за что отвечает.
Ввод данных с клавиатуры — самый простой способ передать значения программе в процессе ее работы. Он происходит с помощью функции input(), после срабатывания которой программа останавливается и ждет, пока мы введем в нее значение. В скобках функции можно указать сообщение, которое будет выведено программой перед тем, как она «перейдет в режим ожидания».
Важно сразу запомнить: любые данные, введенные в программу с помощью команды input, будут переданы в формате строки. |
Типы данных
Выше мы разобрались, что являет собой переменная s. А что еще можно записать в переменную?
Типы данных — виды значений, которые может принимать переменная.
Большую часть из типов данных мы подробно будем изучать по мере необходимости. Для начала неплохо хотя бы знать о существовании основных и об их обозначениях в Python:
-
Целые числа (int) – хранят любые целые числа. Это ноль, а также все положительные и все отрицательные числа, используемые при счете.
Один тип данных может быть приведен к другому по обозначению. Например:
- Дробное число можно привести к целому, прописав его внутри команды int — тогда его дробная часть просто отбрасывается. Если привести целое число к дробному командой float, оно получит десятичную дробную часть, равную 0.
- Строки, состоящие только из цифр, можно привести к целочисленному типу командой int (допустим, для корректной работы математических операций), и наоборот — число можно сделать строкой командой str.
- Логические значения имеют соответствие с целыми числами: значение True соответствует 1, а False – 0. Такие результаты мы и получим при переводе из числа в логическое значение командой bool, или наоборот — командой int.
Итак, мы познакомились с некоторыми основными типами данных. Таблицу ниже вы можете распечатать или сохранить себе как изображение для удобства использования.
Математические операции
Как работать с числами и какие математические действия применимы к строкам?
Python содержит все базовые математические операции для работы с целыми и дробными числами:
Кроме обычного деления в Python есть еще два, основанных на принципе деления с остатком — когда вместо дробной части указывается остаток.
Например: 20 / 6 = 3 (ост. 2) – целой частью от деления будет 3, остатком от деления — 2.
Так, у нас на вооружении есть команды целочисленное деление и остаток от деления. Каждая из этих операций выдаст нам соответствующее значение.
Переменная может записывать саму себя в собственное изменение, то есть у нас есть возможность быстро поменять значение переменной, используя ее текущее значение. Здесь для большего удобства можно применять краткую запись оператора — когда он прописывается перед знаком = (равно), а после него — значение, на которое должна измениться переменная.
Так, следующий код
выведет на экран число 6.
У нас также есть возможность проводить операции между величинами разных типов данных.
Например, в коде
переменная а имеет тип int, переменная b имеет тип float, и их сумма, записанная в переменную с, тоже имеет тип float.
Какой приоритет операций будет соблюдаться в программе? Такой же, как в обычной математике:
- Возведение в степень.
- Умножение/деление.
- Сложение/вычитание.
Для изменения порядка операций также можно использовать скобки.
Сложение и умножение также применимы к строкам:
- Складывать можно несколько строк — они будут «слипаться», создавая одну большую строку.
- Возможно умножение строки на целое число. Тогда будет создана новая строка, состоящая из повторяющейся исходной.
Здесь важно помнить, что строка, состоящая только из цифр, — все равно строка, и применение этих операторов к ней будет применено именно как к строке, а не числу:
Практика
Теперь пришло время закрепить полученные навыки «в бою». Так, со временем начнем и собственные игры создавать. Спойлер: в этой статье.
Попробуем написать простую программу.
Пользователь вводит в программу 2 числа, программа возвращает ему их сумму.
Здесь мы в первых двух строках программы считываем строки, введенные пользователем, и превращаем их в числа, затем в 3-ей строке находим сумму чисел и выводим ее.
Вариант 2. Эту же задачу можно решить другими способами:
В этом решении, в отличие от предыдущего, мы сохранили сумму в отдельную переменную summ и вывели на экран уже ее.
Вариант 3.
Здесь мы в переменные сохранили строки, а преобразовали их в числа уже при подсчете.
Вариант 4. Можно даже так:
В таком решении нет никаких переменных, считанные с консоли данные сразу подставляются в выражение.
Таким образом, даже самые простые задачи можно решать множеством способов, и вам предстоит научиться выбирать из них наилучший.
Впереди нас ждет знакомство с еще большим количеством особенностей языка и их применением. Приглашаем вас продолжить изучение данной темы в статье «Основы программирования на языке Python. Часть 2».
Фактчек
- Для работы программ, написанных на языке Python, необходим интерпретатор языка. Написание программы можно производить в любой из удобных сред разработки.
- Для вывода данных на экран используется функция print(); для ввода данных с клавиатуры используется функция input().
- Для долгосрочной работы с данными используются переменные, которым могут быть присвоены различные типы данных. Между типами данных возможен перевод, для этого используются их обозначения.
- Python поддерживает все основные математические операторы для работы с числами.
Проверь себя
Задание 1.
Файл с расширением .py — это…
- ссылка на русскоязычный сайт
- файл программы Python
- установочный файл интерпретатора Python
- такого не бывает
Задание 2.
Выберите допустимое имя переменной:
- 123number
- constant!
- eto_Stroka
- count-strings
Задание 3.
Результатом записи выражения “23” * 2 будет:
Задание 4.
Результатом записи int(2.88) ** 4 будет:
Ответы: 1. — 2; 2. — 3; 3. — 2; 4. — 3.
Источник: umschool.net