Как создавать и публиковать консольные приложения на python

Введение в написание программ

Последнее обновление: 23.04.2017

Программа на языке Python состоит из набора инструкций. Каждая инструкция помещается на новую строку. Например:

print(2 + 3) 
print("Hello")

Большую роль в Python играют отступы. Неправильно поставленный отступ фактически является ошибкой. Например, в следующем случае мы получим ошибку, хотя код будет практически аналогичен приведенному выше:

print(2 + 3) 
	print("Hello")

Поэтому стоит помещать новые инструкции сначала строки. В этом одно из важных отличий пайтона от других языков программирования, как C# или Java.

Однако стоит учитывать, что некоторые конструкции языка могут состоять из нескольких строк. Например, условная конструкция if:

if 1 < 2:
    print("Hello")

Таких конструкций не так много, поэтому особой путаницы по поводу где надо, а где не надо ставить пробелы, не должно возникнуть.

Регистрозависимость

Python — регистрозависимый язык, поэтому выражения и или представляют разные выражения.
И если вместо метода print для вывода на консоль мы попробуем использовать метод Print:

Print("Hello World")

то у нас ничего не получится.

Комментарии

Для отметки, что делает тот или иной участок кода, применяются комментарии. При трансляции и выполнении программы интерпретатор игнорирует комментарии,
поэтому они не оказывают никакого влияния на работу программы.

Комментарии в Python бывают блочные и строчные. Все они предваряются знаком решетки (#).

Блочные комментарии ставятся в начале строки:

# Вывод сообщения на консоль
print("Hello World")

Строчные комментарии располагаются на той же строке, что и инструкции языка:

print("Hello World")  # Вывод сообщения на консоль

Основные функции

Python предоставляет ряд встроенных функций. Некоторые из них используются очень часто, особенно на начальных этапах изучения языка, поэтому рассмотрим их.

Основной функцией для вывода информации на консоль является функция print(). В качестве аргумента в эту функцию передается строка, которую мы хотим вывести:

print("Hello Python")

Если же нам необходимо вывести несколько значений на консоль, то мы можем передать их в функцию print через запятую:

print("Full name:", "Tom", "Smith")

В итоге все переданные значения склеятся через пробелы в одну строку:

Full name: Tom Smith

Если функция print отвечает за вывод, то функция input отвечает за ввод информации. В качестве необязательного параметра
эта функция принимает приглашение к вводу и возвращает введенную строку, которую мы можем сохранить в переменную:

name = input("Введите имя: ")
print("Привет", name)

Консольный вывод:

Введите имя: Евгений
Привет Евгений

НазадВперед

BeeWare

BeeWare – еще один отличный бесплатный фреймворк с открытым исходным кодом, предназначенный для разработки приложений. По сути, он работает согласно концепции «написать один раз – развернуть везде». Вы можете использовать одну и ту же кодовую базу для создания и десктопных, и мобильных приложений.

Кроме того, приложения, разработанные с использованием BeeWare, хорошо интегрируются с разными платформами, сохраняя нативный внешний вид, характерный для платформы.

BeeWare также имеет довольно простые условия лицензирования, поэтому вы можете использовать его для коммерческих проектов.

Основные функции BeeWare включают:

  • API для доступа к нативным виджетам графического интерфейса,
  • API для доступа к библиотекам, специфическим для конкретных платформ
  • возможность развертывания приложений на нескольких платформах.

Вы можете получить доступ к документации BeeWare здесь. Подробные инструкции по установке доступны здесь.

Синтаксис

Во первых стоит отметить интересную особенность Python. Он не содержит операторных скобок (begin..end в pascal или {..}в Си), вместо этого блоки выделяются отступами: пробелами или табуляцией, а вход в блок из операторов осуществляется двоеточием. Однострочные комментарии начинаются со знака фунта «#», многострочные — начинаются и заканчиваются тремя двойными кавычками «»»»».
Чтобы присвоить значение пременной используется знак «=», а для сравнения —
«==». Для увеличения значения переменной, или добавления к строке используется оператор «+=», а для уменьшения — «-=». Все эти операции могут взаимодействовать с большинством типов, в том числе со строками. Например

Подключаем Python к JS

Теперь подключим нашу логику на Python к самому JS. Для этого примера я использую простую страничку, сверстанную чисто при помощи HTML, CSS (или вы можете использовать популярные фреймворки, которые нужны вам для работы с графикой). Первым делом необходимо подключить библиотеку eel к самому JS:

Далее реализуем функционал кнопки “рассчитать”. По нажатию кнопки первым делом необходимо считать значение рублей и пойти по каждой валюте, чтобы перевести значение.

Обратите внимание на строку “let value_cur = await eel.convert_value_py(value_rub, «RUB», name_cur)();”

Важно, что вызов функции из питона происходит в асинхронном режиме, поэтому обязательно необходимо сделать асинхронной ту функцию, в которой есть вызов Python кода. При вызове функции из eel необходимо ставить пару (), где в первые круглые скобки будут передаваться наши аргументы

При вызове функции из eel необходимо ставить пару (), где в первые круглые скобки будут передаваться наши аргументы.

Проверим, работает ли.

Как мы видим, все работает.

Идентификаторы Python

Идентификаторы Python относятся к имени, используемому для идентификации переменной, функции, модуля, класса, модуля или других объектов. Есть несколько правил, которым нужно следовать при присвоении имени переменной Python.

  • Имя переменной должно начинаться с английской буквы или символа подчеркивания(_).
  • Имя переменной не может начинаться с числа.
  • В имени переменной нельзя использовать специальные символы.
  • Имя переменной чувствительно к регистру.

Пример –

number = 10
print(num)

_a = 100
print(_a)

x_y = 1000
print(x_y)

Выход:

10
100
1000

Мы определили базовый синтаксис языка программирования Python. Мы должны ознакомиться с основной концепцией любого языка программирования. Как только мы запомним концепции, упомянутые выше, изучение Python станет проще.

Изучаю Python вместе с вами, читаю, собираю и записываю информацию опытных программистов.

Шаг 4 — Настройка виртуальной среды

Вы, должно быть думаете, что это за виртуальная среда такая, да? Я тоже так думал. Но не переживайте, я всё объясню. Виртуальная среда поможет нам отделить нашу среду разработки и установки пакетов от остальной системы. То есть, всё, что мы установим в виртуальной среде, не повлияет на реальную систему. Очень удобно, ага. Давайте же настроим её.

  1. Установим , прописав в терминале .

2. Перейдите на тот же уровень, где находится ваша корневая папка и напишите , чтобы создать виртуальную среду (посмотрите на иерархию ниже, если вы ещё не разобрались, в моем случае корневая папка — ).

3. Для активации виртуальной среды, выполните , а для деактивации просто напишите .

Виртуальная среда создана

Когда мы войдем в виртуальную среду, увидим что-то подобное

Добавляем потоки в таймер

Первое, что нам нужно сделать, — вынести код таймера-напоминания в отдельную функцию, чтобы создать с ней поток. Для этого используем команду :

Теперь сделаем новый поток, в который отправим выполняться нашу новую функцию. Так как аргументов у нас нет, то и аргументы передавать не будем, а напишем args=().

Нам осталось убедиться в том, что пока поток работает, мы можем выполнять в программе что-то ещё и наше засыпание в потоке на это не повлияет. Для этого мы через 20 секунд после запуска выведем сообщение на экран. За 20 секунд пользователь успеет ввести напоминание и время, после чего таймер уйдёт в новый поток и там уснёт на нужное количество минут. Но это не помешает работе основной программы — она тоже будет выполнять свои команды параллельно с потоком.

Результат:

Шаг 5 — Запуск сайта на реальном сервере

Так, давайте вернемся в нашему сайту. Запустить сайт на Python не так просто, как c HTML и PHP файлами, когда мы перетаскиваем и загружаем файлы при помощи FTP-клиента. Нам нужно делать всё по порядку, будьте терпеливы и внимательно выполняйте каждый шаг.

Шаг 5.1 — Создаем аккаунт Heroku

Создайте аккаунт на Heroku, перейдя по этой ссылке.

Шаг 5.2 — Устанавливаем необходимый инструменты

Прежде всего это , мы будем использовать git для загрузки файлов на сервер. А чтобы установить git, откройте командную строку и введите следующее:

sudo apt install git-all
git config --global user.name "John Doe"git config --global user.email johndoe@example.com

Далее следует, это такой собственный git для Heroku. Для установки:

sudo snap install --classic heroku

Отлично. Теперь у нас есть всё, что нужно. Поехали дальше.

Шаг 5.3 — Настройка Heroku через командную строку

Нужно установить Heroku туда же, где находится наше приложение. Давайте перейдем в папку с нашим основным скриптом, и зайдем в аккаунт Heroku, используя наши данные. Вас попросят нажать любую клавишу для входа и перенаправят в браузер. После того ,как вы успешно вошли, ваша командная строка будет выглядеть так:

Нажмите любую кнопку

Теперь нам нужно создать наше приложение. Хорошо подумайте над его названием, потому что это будет ваше доменное имя после herokuapp.com. Например, . Я хотел использовать своё имя, но такое название было уже занято. Поэтому я выбрал .

Шаг 5.4 — Создаем необходимые файлы (всего 3)

requirements.txt — Содержит список зависимостей (библиотек), которые Heroku должен установить, чтобы наше приложение работало правильно. Для этого, переходим в виртуальную среду, которую мы создали ранее, с помощью pip устанавливаем. Это веб-сервер Python. После этого напишите , чтобы увидеть список зависимостей, а потом , чтобы создать текстовый файл с этим списком. Это нам и нужно. Вы можете найти файл в вашей папке, переместите его туда, где находится наш файл Python.

Список зависимостей

Важное примечание — Пожалуйста, удостоверьтесь, что ваш файл requirements выглядит, как представленный ниже. Иначе Heroku не примет его и выдаст ошибку

Отредактируйте файл, чтобы он выглядел так.

requirements.txt

Procfile — У этого файла нет расширения. Он содержит имя сервера и название приложения. Создайте файл, назовите его и напишите в нем следующее:

web: gunicorn mainscript:app

Здесь, gunicorn — это используемый сервер. — это название файла Python, — это название приложения, которое мы придумали при создании экземпляра класса flask (смотри фрагмент кода в шаге 2). Если ваши названия отличаются, измените их.

runtime.txt — Содержит информацию о версии Python, которую вы хотите использовать. В этом файле напишите:

python-3.7.0

Я использую Python 3.x, поэтому я использовал эту среду. Если вы используете Python 2.x, укажите вместо этого. Отлично, все готово. Теперь нам нужно просто всё загрузить.

Наконец, всё, что нам нужно, в одном месте

Шаг 5.5 — Загрузка всего необходимого

Отлично. Чтобы не объяснять всё по отдельности, к каждой строке дам комментарий. Каждую строку нужно выполнять отдельно.

#Убедитесь, что находитесь в той же директории, где лежит ваш файл Python#Убедитесь, что вы залогинены в heroku#Вызовите свое приложениеheroku git:remote --app dhrumilp#Инициализируйте git, чтобы загрузить все файлыgit init#Добавьте все файлы (это точка в конце, что означает все)git add .#Теперь, зафиксируйте все добавленные файлы на серверgit commit -m "First upload"#Запушьте все в master branchgit push heroku master

Загрузка…

Готово.

Всё готов. Уфф. Поздравляю, если вы смогли добраться до этого этапа. Моё приложение доступно на dhrumilp.herokuapp.com, можете посмотреть.

Умный ассистент

Ассистент — хороший проект. Благодаря ему интервьюер поймет, насколько вы хороший питонист: знаете, как правильно использовать ресурсы и создавать из них что-то полезное. 

Чтобы создать ассистента, не нужно быть специалистом в области разработки на Python. Вы можете сделать это с помощью доступных пакетов. 

Для реализации подобного проекта вы можете использовать, например, Pyttsx3 для распознавания текста. А с помощью модуля os можно добавить функции вроде проигрывания музыки, запуска приложений, поиска по Википедии и т. д. Но запомните одно правило: «одна библиотека — одна функция».

Также вы можете расширить функционал своей программы, добавив агрегатор веб-страниц или автоматизацию рутинных задач. К примеру, можно добавить скрипт, который будет скрапить результаты поиска Google. Все это вы можете включить в функционал вашего ассистента, чтобы проект смотрелся внушительнее. 

У этого проекта нет конечной точки. Чем больше функций, тем профессиональнее и полезнее ваш ассистент. 

Списки, кортежи, множества и словари

Списки, кортежи, множества и словари – еще 4 типа данных в Питоне, включающие в себя несколько значений и являющиеся итерируемыми (перебираемыми, как строки).

Особенности показаны в таблице 3.

Список (list) Кортеж (tuple) Множество (set) Словарь (dict)
Изменяемый Неизменяемый Изменяемое Изменяемый
Значения могут дублироваться Значения могут дублироваться Значения не могут дублироваться Ключи не могут дублироваться
Доступ по индексу возможен Доступ по индексу возможен Доступ по индексу невозможен Есть доступ к ключам и значениям

Таблица 3 – Коллекции данных в Python

Список – последовательность произвольных элементов, разделенных запятой. Обозначается квадратными скобками. Можно доставать отдельные составляющие через индекс, добавить в начало списка или конец те или иные значения, удалить элементы, узнать длину, отсортировать.

Рассмотрим часть функционала.

Результат работы скрипта:

Когда необходимо запретить изменение коллекции, ее удобно представлять в виде кортежа. Более того, он занимает меньшее количество в памяти. Записывается в круглых скобках.

На их основании также возможны срезы, доступ по индексу, нахождение максимума или минимума (если элементы представлены числами), поиск количества вхождений значений.

Результат работы скрипта:

Множества хороши в ситуациях, когда нужна гарантия уникальности всех элементов. Задаются фигурными скобками. При добавлении дубликата размер сета никак не меняется

Важно и то, что порядок объектов внутри множества не гарантирован, что исключает доступ по индексу

Результат работы скрипта:

Словарь – особый тип коллекций. Все его элементы состоят из пар «ключ: значение». Ключ должен быть уникальным, а значения могут повторяться. Обозначается фигурными скобками.

Рассмотрим некоторые операции со словарями.

Результат работы скрипта:

Таким образом, в зависимости от ситуации применяется тот или иной тип коллекций. Чаще всего это списки и словари.

Связь с другими языками

pythonnet

Иногда возникает потребность запустить код, написанный на другом языке, через Python, например, в целях проверки работы какого-либо стороннего модуля или для оптимизации кода. Существует несколько библиотек, позволяющих сделать это, например, pythonnet позволяет запустить некоторую часть кода, написанную на C# в Python (pythonnet позволяет рассматривать множество элементов clr, как модули в python).

Создаем проект библиотеки классов C# в visual studio, создаем в неё нужный класс или методы (в случае примера класс, содержащий метод вычисления дискриминанта), создаем .dll и запускаем через pythonnet (более подробно тут):

Обращаемся к C# через Python

JPype

Для этих же целей существует библиотека, которая позволяет запустить Java код в Python. Эта библиотека называется — JPype. Рассмотрим пример работы библиотеки.

Для начала установим её pip install jpype1, далее создадим Java проект, который в будущем скомпилируем в .jar архив, в проекте необходимо создать пакет, в нём класс и прописать следующий код (код вычисляет объем цилиндра):

Теперь можно создать .jar решение проекта.

В python коде импортируем библиотеку jpype, запустим JVM и пропишем путь к созданному .jar архиву. Далее по аналогии с pythonnet импортируем необходимые пакеты и классы:

Таким образом, pythonnet и jpype — отличные решения для интеграции кода C# и Java в  Python проект.

Как используется Python

Его можно встретить в вебе и на мобильных устройствах, в приложениях и решениях, связанных с машинным обучением (нейросети и искусственный интеллект), а также в качестве встроенной системы.

Веб-разработка

Чаще всего Python используется в веб-разработке. Для работы с ним подключают фреймворки: Pyramid, Pylons, TurboGears, Flask, CherryPy и — самый популярный — Django.

Существуют и движки для создания сайтов на Python:

  • Abilian SBE;
  • Ella;
  • Saleor;
  • Wagtail;
  • Django-CMS.

Также на Python пишут парсеры для сбора информации в интернете.

Программы

Хоть язык не компилируется, с помощью него создают десктопные программы. Вот, к примеру, что было разработано на Python:

  • GIMP — визуальный редактор на Linux;
  • Ubuntu Software Center — центр приложений в ОС Ubuntu (один из дистрибутивов Linux);
  • BitTorrent до 6 версии — менеджер торрент-закачек (позже программу переписали на C++, но сети peer-to-peer всё ещё работают на Python);
  • Blender — программа для создания 3D-графики.

Мобильные приложения

Мобильная разработка на Python менее популярна. Для Android чаще пишут на Java, C#, C++ или Kotlin, а для iOS — на Swift или Objective-C. На Python обычно программируют серверную часть приложения. Например, клиент Instagram для iOS написан на Objective-C, а сервер — на Python.

Игры

Многие компьютерные игры были полностью или частично написаны на Python. Существует заблуждение, что этот язык не подходит для серьёзных проектов, но на самом деле он использовался в разработке таких хитов, как:

  • Battlefield 2;
  • World of Tanks;
  • Civilization IV;
  • EVE Online.

Несмотря на возможность реализации пользовательского интерфейса и работы с графикой, на Python в основном пишут скрипты — например, взаимодействия персонажей, запуска сцен, а также обработки событий.

Встроенные системы (embedded systems)

На Python разрабатывают встроенные системы для различных устройств. Например, язык прижился в Raspberry Pi (компьютер размером с карту памяти) и в «Сбербанке» для управления банкоматами.

Еще проекты со встроенной системой на Python:

  • The Owl Embedded Python System;
  • Python Embedded Tools;
  • Embedded Python.

Язык применяется во встроенных системах станков с ЧПУ, средствах автоматического регулирования (температуры, расхода жидкостей, давления и так далее) и в телекоммуникационном оборудовании.

1-Базовый калькулятор

Это, безусловно, самый простой проект в списке. Вы просите пользователя ввести свой первый номер, затем оператора, затем второй номер. Как только они все это выложат, программа должна вычислить, чего хочет пользователь.

Вещи, которые вы должны знать, чтобы сделать этот проект:

  • переменные
  • плыть
  • базовая математика
  • если/еще если/еще
# The user's inputs for the numbers and the operators
num1 = float(input('Enter your first number: '))
Operator = input('Enter operator: ')
num2 = float(input('Enter your second number: '))

# if Operator is (+ | - | * | /) then  print out number 1 (+ | - | * | /) number 2
if Operator == '+':
    print(num1 + num2)
elif Operator == '-':
    print(num1 - num2)
elif Operator == '/':
    print(num1 / num2)
elif Operator == '*':
    print(num1 * num2)

# if the user didn't put an operator
else:
    print('Not a valid operator')

Включение в последовательность

Операции отображения и фильтрации встречаются так часто, что во многих языках программирования предлагаются способы написания этих выражений в более простых формах. Например, в языке Python возвести список чисел в квадрат можно следующим образом:

Python поддерживает концепцию под названием «включение в последовательность» (от англ. comprehension, в информатике эта операция так же называется описанием последовательности), которая суть изящный способ преобразования одной последовательности в другую. Во время этого процесса элементы могут быть условно включены и преобразованы заданной функцией. Вот один из вариантов общего формата операции включения в список:

В данном общем формате выражение – это выражение или функция с участием переменной, которые возвращают значение, переменная – это элемент последовательности, список – это обрабатываемый список, и выражение2 – это логическое выражение или предикативная функция с участием переменной. Чтобы все стало понятно, приведем простой пример возведения список в квадрат без условия:

Приведенное выше включение в список эквивалентно следующему ниже фрагменту программного кода:

Такая форма записи называется синтаксическим сахаром, т.е. добавленная синтаксическая конструкция, позволяющая записывать выражения в более простых и кратких формах. Неплохой аспект конструкций включения в последовательность состоит еще и в том, что они легко читаются на обычном языке, благодаря чему программный код становится чрезвычайно понятным.

В конструкции включения в последовательность используется математическая запись построения последовательности. Такая запись в теории множеств и логике называется определением интенсионала множества и описывает множество путем определения условия, которое должно выполняться для всех его членов. В сущности, в терминах этих областей науки, выполняя данную операцию в Python, мы «описываем интенсионал» соответственно списка, словаря, множества и итерируемой последовательности. Ниже приведены примеры описания интенсионала соответственно списка, словаря, множества и итерируемой последовательности.

Таблица 1. Формы описания интенсионала

Выражение

Описание

Описание списка

Описание словаря

Описание множества

Описание последовательности. Такая форма записи создает генератор последовательности. Генератор – это объект, который можно последовательно обойти (обычно при помощи инструкции ), но чьи значения предоставляются только тогда, когда они требуются, используя ленивое вычисление.

Отметим, что приведенные в таблице выражения (за исключением описания словаря) отличаются только ограничивающими символами: квадратные скобки применяются для описания списка, фигурные скобки – для описания словаря или множества и круглые скобки – для описания итерируемой последовательности.

Таким образом, примеры из разделов о функциях и легко можно переписать с использованием включения в последовательность. Например, в строке 3 приведенного ниже интерактивного сеанса вместо функции применена операция включения в список:

Обратите внимание на квадратные скобки в определении – они сигнализируют, что в результате этой операции будет создан список. Также стоит обратить внимание, что при использовании в данной конструкции нескольких последовательностей применяется встроенная функция , которая в данном случае объединяет соответствующие элементы каждой последовательности в двухэлементные кортежи

(Если бы последовательностей было три, то они объединялись бы в кортежи из трех элементов и т.д.)

Включение в список применено и в приведенном ниже примере вместо функции :

Квадратные скобки в определении сигнализируют, что в результате этой операции будет создан список. Какой способ обработки последовательностей применять – с использованием функций более высокого порядка или включений, зачастую является предметом личных предпочтений.

Создание виртуальной среды для установки Kivy

После подготовки зависимостей Kivy мы можем начать установку самого Kivy, создав его виртуальную среду. Нет необходимости использовать виртуальную среду для запуска Kivy, но есть рекомендация отделить Kivy от других уже существующих проектов.

Перед началом создания виртуальной среды мы должны убедиться, что инструменты, необходимые для ее создания, уже установлены и обновлены. Следующие команды гарантируют, что инструменты virtualenv и setuptoolsуже существуют и обновлены.

:~$ sudo pip install --upgrade pip virtualenv setuptools

virtualenv используется для создания изолированной среды Python. Для получения дополнительной информации о преимуществах виртуальной среды вы можете посетить страницу https://virtualenv.pypa.io/en/stable/. setuptools используется для упаковки проектов Python.

После этого мы готовы создать виртуальную среду Kivy. Следующая команда создает среду с названием mykivyinstall.

:~$ virtualenv --no-site-packages mykivyinstall

Аргумент —no-site-packages используется для изоляции среды от основной установки Python. Это делается для того, чтобы вы могли свободно работать с этим проектом, не затронув другие.

После введения этой команды мы ожидаем получить новую папку в текущем каталоге, названную в соответствии с именем виртуальной среды, как показано на рисунке 1.

Рисунок 1. Создание виртуальной среды Kivy

В предыдущей команде будет использоваться обычный интерпретатор Python внутри среды. Это может быть Python 2, а мы работаем с Python 3. По этой причине мы могли бы явно указать, какой интерпретатор Python использовать с использованием ключа -p, как в следующей команде:

:~$ virtualenv --no-site-packages -p /usr/bin/python3 mykivyinstall

После создания виртуальной среды мы можем активировать её, чтобы начать установку Kivy. Она может быть активирована следующей командой.

:~$ . mykivyinstall/bin/activate

Точка (.) в предыдущей команде представляет собой встроенную команду, которая выполняет содержимое файла, переданного в качестве аргумента. Это синоним источника команды. В результате предыдущая команда идентична этой команде:

:~$ source mykivyinstall/bin/activate

Командная строка должна измениться после активации виртуальной среды и начать выглядеть следующим образом:

Использование файла сценария(Программирование в режиме сценария)

Подсказка интерпретатора лучше всего подходит для выполнения однострочных операторов кода. Однако мы не можем писать код каждый раз на терминале. Не рекомендуется писать несколько строк кода.

Используя режим сценария, мы можем записать многострочный код в файл, который может быть выполнен позже. Для этого нам нужно открыть редактор, например блокнот, создать файл с именем и сохранить его с расширением .py, что означает «Python». Теперь мы реализуем приведенный выше пример, используя режим скрипта.

print("hello world"); #here, we have used print() function to print the message on the console.  

Чтобы запустить этот файл с именем first.py, нам нужно запустить следующую команду на терминале.

Шаг – 1: Откройте интерактивную оболочку Python и нажмите «Файл», затем выберите «Создать», откроется новый пустой скрипт, в котором мы можем написать наш код.

Шаг 2: Теперь напишите код и нажмите «Ctrl + S», чтобы сохранить файл.

Шаг – 3: После сохранения кода мы можем запустить его, нажав «Выполнить» или «Выполнить модуль». Он отобразит вывод в оболочку.

Результат будет показан следующим образом.

Шаг – 4: Кроме того, мы также можем запустить файл с помощью терминала операционной системы. Но мы должны знать путь к каталогу, в котором мы сохранили наш файл.

Откройте командную строку и перейдите в каталог.

Нам нужно ввести ключевое слово python, затем имя файла и нажать Enter, чтобы запустить файл Python.

Приложение для анализа настроения

Настроение — это наши мысли и чувства. Анализ настроения — это изучение субъективной информации в выражениях. Это сфера обработки естественного языка (Natural Language Processing, NLP). С помощью NLP мы можем распределить данные на позитивные, негативные или нейтральные. Для извлечения информации о настроении из текста используются различные техники обработки естественного языка. 

Что касается личных проектов, вы можете написать приложение, которое будет определять настроение пользователя по его отзыву. Речь может идти об отзывах о ресторанах, торговых центрах или сайтах — распознавание настроения пользователей пригодится в любой сфере.

Вы можете предсказать, когда компаниям нужно начинать распродажи или предложить новый продукт. Вы поможете компаниям развивать их бизнес, а они вам — развить ваш стартап.

В этом деле вам помогут соответствующие библиотеки, а именно: NLTK, TextBlob, spacy, Gensim и CoreNLP. 

Как создавать новые функции в Python

Дефолтных функций бывает недостаточно, и часто случается, что один и тот же набор операций надо выполнить много раз, причём с разными переменными. Чтобы сохранить время и избежать огромного кода, который сложно понять, мы можем создавать собственные функции.

Давайте напишем функцию, которая увеличит значение числа, которое мы ей передадим, на единицу:

Команда def (от англ. define — определить) означает, что мы определяем собственную функцию, increase_by_ 1 — это её название, а x — это переменная, с которой она работает.

Иногда функция уже существует, но её нет в базовой версии Python. Тогда её можно импортировать из библиотеки. Например, чтобы работать с более сложными математическими функциями, чем те, о которых мы говорили, нам понадобится библиотека math. Подключить можно всю библиотеку или только одну-две команды, в зависимости от того, что вам нужно. Для этого используется функция import. Это выглядит так:

Внимание!

Будьте осторожны с названиями функций! Если вы напишете свою функцию, а потом импортируете функцию с таким же названием, вы сможете использовать только импортированную.

YUM

Yellowdog Updater, Modified (YUM) — это бесплатная утилита управления пакетами из командной строки с открытым исходным кодом для компьютеров, работающих под управлением ОС Linux, где установлен RPM Package Manager.

Приложение YUM реализовано как набор библиотек на языке Python и несколько приложений командной строки.

Хотя YUM имеет интерфейс командной строки, некоторые инструменты предоставляют графический интерфейс пользователям для доступа к функциям YUM. YUM позволяет автоматически обновлять и управлять пакетами и зависимостями в дистрибутивах на основе RPM. Как и Advanced Package Tool (APT) от Debian, YUM работает с программными репозиториями (коллекциями пакетов), к которым можно получить доступ локально или через сетевое соединение.

Многопоточность на Python

За потоки в Python отвечает модуль threading, а сам поток можно создать с помощью класса Thread из этого модуля. Подключается он так:

После этого с помощью функции Thread() мы сможем создать столько потоков, сколько нам нужно. Логика работы такая:

  1. Подключаем нужный модуль и класс Thread.
  2. Пишем функции, которые нам нужно выполнять в потоках.
  3. Создаём новую переменную — поток, и передаём в неё название функции и её аргументы. Один поток = одна функция на входе.
  4. Делаем так столько потоков, сколько требует логика программы.
  5. Потоки сами следят за тем, закончилась в них функция или нет. Пока работает функция — работает и поток.
  6. Всё это работает параллельно и (в теории) не мешает друг другу.

Для иллюстрации запустим такой код:

А вот как выглядит результат

Обратите внимание — потоки просыпаются не в той последовательности, как мы их запустили, а в той, в какой их выполнил процессор. Иногда это может помешать работе программы, но про это мы поговорим отдельно в другой статье

Вывод

Связать несколько языков программирования вместе в одной программе возможно, но это не совсем хорошая идея, так как при запуске программы на стороннем ПК надо быть уверенным, что у пользователя установлены нужные сервисы/зависимости/ПО, например, стоит ли JVM. Для быстрой проверки работоспособности каких-то идей, модулей, логики можно попробовать использовать подход, описанный в статье. Данный способ позволяет экономить кучу времени, вместо того, чтобы мучаться и переписывать код на другой язык в надежде, что всё будет работать как надо. Этот способ может подойти в тех случаях, когда нет возможности разработать адекватную микросервисную архитектуру приложения, а нужно использовать несколько разных кусков кода/модулей.

Как итог, получилось связать Python + JS + Java + C + C# (+ HTML + CSS) в одной программе, сделав при этом полноценное десктопное приложение, которое работает быстро без лишних задержек при обращении к методам, написанным на другом языке. В таком подходе есть плюсы: можно использовать фишки других языков (например, использовать преимущества скорости в C, Java, C# с (или без) использованием многопоточности, задействующей несколько ядер процессора, а также можно реализовывать структуры, которые будут использовать меньше памяти нежели Python).