- Скрипты python #
- Hello, World!#
- Стандартные потоки ввода и вывода#
- Среды разработки#
- Области применения скриптов#
- Запуск Python и python-скрипт на компьютере
- Где запускать Python-скрипты и как?
- Запуск Python-кода интерактивно
- Интерактивный режим в Linux
- Интерактивный режим в macOS
- Интерактивный режим в Windows
- Запуск Python-скриптов в интерактивном режиме
- Как выполняются Python-скрипты?
- Блок-схема выполнения кода интерпретатором
- Как запускать Python-скрипты?
- Как запускать скрипт в командной строке?
Скрипты python #
Написание и запуск скриптов — второй способ взаимодействия с python , который будет здесь рассмотрен. Python скрипт (программа) — файл с исходным кодом python , который может быть проинтерпретирован интерпретатором. Исходный код в скрипте всегда исполняется сверху вниз, начиная с первой строки и заканчивая последней (если по пути не встретилось принудительного завершения исполнения программы). В этом отношении все очень похоже на C/C++ , за исключением точки входа: в python это самое начало скрипта, в C++ — функция main .
Итого, запустить python скрипт почти полностью эквивалентно тому, чтобы поочереди вбить все инструкции внутри скрипта в интерактивную оболочку. Использовано выражение “почти полностью эквивалентно” из-за уже упомянутой функции quit() , а также из-за особенностей взаимодействия интерактивной оболочки со стандартным потоком вывода.
Принято сохранять файлы с исходным кодом python в файлы с расширением .py .
Hello, World!#
Напишем первый скрипт на python . По традиции это будет программа, печатающая строку “Hello, World!” в стандартный поток вывода.
Для такой программы в python достаточно файла из всего одной строки.
Если сохранить эту инструкцию в файл с названием helloworld.py , то его можно запустить следующей командой в командной строке или Anaconda prompt .
Используется та же самая команда python , что и для запуска интерактивной оболочки, но теперь аргументом ей указывается имя файла с исходным кодом python , который необходимо исполнить.
Стандартные потоки ввода и вывода#
Из примера helloworld.py можно заметить, что для вывода строки “Hello, World!” в стандартный поток вывода используется функция print. Тут и проявляется незначительная разница с интерактивной оболочкой, в которой результат вычисления выражения сразу и выводится в стандартный поток вывода, если он не присваивается в переменную. В случае скриптов такого не происходит и необходимо явно вызывать функцию print , чтобы что-то вывести в стандартный поток вывода.
Функция print принимает произвольное количество аргументов и выводит их все в стандартном потоке вывода в том же порядке, разделяя значения пробелом и в самом конце совершая перенос строки. Опциональными параметрами функции можно настроить:
- поток вывода (параметр file , по умолчанию стандартный поток вывода);
- разделитель значений (параметр sep , по умолчанию пробел » » );
- завершающая строка (параметр end , по умолчанию перенос строки «\n» ).
За взаимодействие со стандартным потоком ввода отвечает функция input, которая считывает одну строку из стандартного потока ввода и возвращает её в неизменном виде. Чтобы продемонстрировать принцип действия этой функции, слегка модифицируем предыдущий пример, чтобы он спрашивал имя пользователя и приветствовал его по введенному имени.
print("Hello, what is your name?") name = input() print("Hi, ", name, "!", sep="")
Сохранив и запустив этот скрипт, вы должны увидеть сообщение «Hello, what is your name?» , после которого программа должна войти в режим ожидания, т.к. запустилось исполнение функции input() , а в стандартном потоке ввода нет строки, которую эта функция смогла бы считать. После того как вы наберете своё имя и нажмете клавишу Enter , строка с вашим именем попадёт в стандартный поток ввода и функция input() вернет эту строку вызывающему коду. Далее эта строка выведется между строками «Hi» и «!» с разделителем в виде пустой строки (параметр sep ) с помощью функции print .
В примере выше функция input() вызывалась без аргумента, но можно использовать её необязательный аргумент, чтобы сократить количество строк в примере: указанная в качестве аргумента функции input() строка выводится в стандартный поток вывода без переноса строки и только затем сканируется стандартный поток ввода.
name = input("Hello, what is your name?\n") print("Hi, ", name, "!", sep="")
Теперь обратим внимание на то, что функция input всегда возвращает именно строку — значение типа str . Т.е. если вы считываете число, то его необходимо явно преобразовать к необходимому числовому типу. Для демонстрации рассмотрим программу, которая спрашивает возраст пользователя и сообщает пользователю его возраст через один год.
age = int(input("What is your age? ")) print("In a year you are going to be ", age + 1, " years old!", sep="")
В первой строке программы у пользователя спрашивается его возраст и введенное им значение приводится к типу int . Во второй строке выводится сколько ему будет лет по прошествии одного года. При этом обратите внимание, что выражение age + 1 привело бы к ошибке, если бы мы не привели age к целочисленному типу конструктором типа int. Но при передаче age + 1 в функцию print вовсе не обязательно приводить целочисленное значение к строковому, т.к. функция print это сделает за нас.
Среды разработки#
Выше было продемонстрировано, что, чтобы писать программы на python , достаточно текстового редактора, а чтобы их исполнять — интерпретатора python . Но использование специальной среды разработки (IDE) может значительно упростить процесс разработки. Ниже перечисленны три самые популярные IDE .
- PyCharm — одна из самых популярных полноценных сред разработки для python . Даже в бесплатную версию Community Edition встроенно большинство необходимых разработчику инструментов.
- Visual Studio Code — бесплатная сравнительно легковесная среда разработки, которая с помощью расширений может быть задействована и для разработки на python .
- Spider — бесплатная среда разработки для python , специально нацеленная на ученных. Распространяется вместе с Anaconda , но можно скачать и отдельно.
Автор курса в основном пользуется VS Code , так как она быстро загружается и её функционала обычно хватает, но в масштабных проектах иногда отдаёт предпочтение PyCharm . Для самых начинающих можно порекомендовать Thonny — легковесную среду разработки, которая позволяет наглядно пошагово визуализировать процесс исполнения программы, что может оказаться полезным при изучении принципов работы языка.
Области применения скриптов#
Скрипты — самая основная форма взаимодействия с python : большинство программ на python реализуется в виде скриптов, так как исходный код из скриптов можно переиспользовать (можно писать программы в модульной структуре), скриптами и их версиями можно управлять с помощью системы управления версиями и т.д.
Тем не менее в научной среде часто пользуются блокнотами jupyter , которые позволяют в интерактивном режиме запускать исходный код на python и наблюдать результаты его исполнения в одном месте. Про jupyter речь пойдет на следующей странице.
Python в качестве калькулятора
Блокноты. Jupyter Notebooks
Запуск Python и python-скрипт на компьютере
Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.
В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.
Где запускать Python-скрипты и как?
Python-код можно запустить одним из следующих способов:
- С помощью командной строки операционной системы (shell или терминал);
- С помощью конкретной версии Python или Anaconda;
- Использовать Crontab;
- Запустить код с помощью другого Python-скрипта;
- С помощью файлового менеджера;
- Использовать интерактивный режим Python;
- Использовать IDE или редактор кода.
Запуск Python-кода интерактивно
Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.
Вот как запустить интерактивный режим в разных ОС.
Интерактивный режим в Linux
Откройте терминал. Он должен выглядеть приблизительно вот так :
После нажатия Enter будет запущен интерактивный режим Python.
Интерактивный режим в macOS
На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.
Интерактивный режим в Windows
В Windows нужно открыть командную строку и ввести python . После нажатия Enter появится приблизительно следующее:
Запуск Python-скриптов в интерактивном режиме
В таком режиме можно писать код и исполнять его, чтобы получить желаемый результат или отчет об ошибке. Возьмем в качестве примера следующий цикл.
Этот код должен выводить целые числа от 0 до 5. В данном случае вывод — все, что появилось после print(i) .
Для выхода из интерактивного режима нужно написать следующее:
И нажать Enter. Вы вернетесь в терминал, из которого и начинали.
Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.
Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.
Как выполняются Python-скрипты?
Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.
Первая строка (кода): Вторая = строка кода Третья строка > кода: Четвертая (строка == кода) Пятая строка кода
При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.
Блок-схема выполнения кода интерпретатором
- Шаг 1: скрипт или .py-файл компилируется, и из него генерируются бинарные данные. Готовый файл имеет расширение .pyc или .pyo.
- Шаг 2: генерируется бинарный файл. Он читается интерпретатором для выполнения инструкций.
Это набор инструкций, которые приводят к финальному результату.
Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.
Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.
Как запускать Python-скрипты?
Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.
Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:
- Создать Python-скрипт из командной строки и сохранить его,
- Создать Python-скрипт с помощью текстового редактора или IDE и сохранить его. Просто создайте файл, добавьте код и сохраните как «python_script.py»
Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.
Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):
sudo nano python_script.py
После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:
Теперь можно писать код и с легкостью сохранять его прямо в командной строке.
Как запускать скрипт в командной строке?
Скрипты можно запустить и с помощью команды Python прямо в интерфейсе терминала. Для этого нужно убедиться, что вы указали путь до него или находитесь в той же папке. Для выполнения скрипта (python_script.py) откройте командную строку и напишите python3 python_script.py .
Замените python3 на python , если хотите использовать версию Python2.x.
Вот что будет храниться в самом файле python_script.py: