Бортовой журнал
Бортовой журнал

Python — универсальный язык программирования. По данным на январь 2023 года, он стал самым популярным согласно рейтингам TIOBE и PYPL.

Что можно написать на Python? Всё, что угодно. В этой статье мы расскажем о том, какие интересные программы можно создавать на Питоне, а также поделимся лайфхаками для работы с этим языком в Терминале.

Что пишут на Python

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

Интересные библиотеки — это “визитная карточка” языка Python. В нем есть функционал для любых задач: распознавание речи, обработка изображений, математические расчеты, поддержка популярных фреймворков — всё необходимое для того, чтобы можно было свободно программировать на Python.

Практическое применение фреймворков с поддержкой Python может быть следующим:

  • NumPy — работа с многомерными массивами и математическими функциями.
  • Django и Flask — разработка веб-приложений.
  • SQLAlchemy — работа с базами данных по технологии ORM.
  • Cocos2d — создание браузерных и мобильных игр.
  • Tornado — разработка высокопроизводительных приложений, которые предназначены для работы с большим количеством пользователей.
  • Bubot — для домашней автоматизации и программирования робототехники.

О том, для каких задач подходит Python, расскажем ниже.

Какие задачи можно решать, используя Python

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

Python поддерживает платформы для веб-разработки: например React, где используется связка Django (backend) + JavaScript (frontend). Этот же технологический стэк используется в DropBox.

Кроме этого, Python позволяет настроить доступ к файловой системе Linux со смартфона. Ниже покажем пример такой программы на Python. Выполните следующие действия:

  1. Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
  2. Запустите файловый сервер с помощью команды:
    python3 -m http.server После этого файловая система станет доступна с любого устройства локальной сети.
  3. Проверьте локальный IP:
    ip addr | grep inet В третьей строке вывода вы увидите нужный IP-адрес.
  4. Откройте браузер на смартфоне. В адресной строке введите следующее:
    123.123.123.123:8000
    Вместо 123.123.123.123 укажите локальный IP-адрес из предыдущего шага.

Автоматизация

Python позволяет упростить выполнение ряда задач. Например:

  • установить напоминание,
  • настроить Cron-задание,
  • загрузить видео на видеохостинг и другие.

Чтобы автоматизировать эти действия, можно написать скрипт на Python. После этого ваше участие в качестве IT-специалиста не потребуется: после отработки кода все произойдет само собой.

Например, так можно конвертировать файл из формата CSV в JSON:

  1. Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
  2. Выполните команду:
    python -c "import csv,json;print(json.dumps(list(csv.reader(open(“file.csv”)))))"
    Вместо file.csv укажите имя вашего файла.

Создание игр

Python включает в себя библиотеки для разработки компьютерных и мобильных игр. Наиболее популярная из них — Kivy. Она позволяет создавать кроссплатформенные игры, которые поддерживаются популярными операционными системами: Windows, Linux, Mac, Android и iOS.

Кроме этого, вы можете запускать игры в Терминале Linux (например, Виселица). Для этого:

  1. Сохраните этот код в файл с расширением .py:
    from random import shuffle
    # Кол-во попыток.
    turns = 10

    print("Привет, Давай сыграем в виселицу! У тебя есть turns попыток!")
    # Список слов, которые участвуют в игре.
    wordList = ["geekflare", "awesome", "python", "magic"]
    # Перемешиваем список.
    shuffle(wordList)
    # Берем последнее слово из списка.
    word = wordList.pop()
    guesses = " "
    # Цикл, который будет работать, пока не останется попыток или не отгаданных букв.
    while turns > 0:
    wrong = 0

    for char in word:
    if char in guesses:
    print(char, end= " ")
    else:
    print("_", end=" ")
    wrong += 1

    print("\n")

    if wrong == 0:
    print("Ты выиграл! :)")

    break

    print()

    guess = ""
    if len(guess) < 1:
    guess = input("Впиши букву и нажми enter: ")[0]

    if guess in guesses:
    print("Эта буква уже была!")
    guesses += guess

    if guess not in word:
    turns -= 1

    print("Упс! Ошибка")
    print(f"У тебя осталось {turns} попыток")
    if turns == 0:
    print("Ты проиграл! :(")
  2. Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
  3. Запустите игру с помощью команды:
    python3 hangout.py
    Вместо hangout.py укажите название файла игры.

Веб-парсинг

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

Python позволяет анализировать и использовать неструктурированные данные из Сети. Для этого можно использовать специальные Python-библиотеки: Beautiful Soup и Scrapy.

В качестве примера покажем, как узнать значение валюты относительно доллара США в системе Linux. Для этого:

  1. Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
  2. Установите библиотеки для парсинга и запросов:
    pip install beautifulsoup4 requests
  3. Создайте файл с названием currency_scrap.py и добавьте в него следующий код:
    import requests
    from bs4 import BeautifulSoup

    URL = "https://www.x-rates.com/table/?from=USD&amount=1"
    r = requests. get (URL)

    soup = BeautifulSoup (r.content, "html.parser" )
    ratelist = soup. findAll ( "table" , { "class" : "ratesTable" })[ 0 ]. findAll ( "tbody" )

    for tableVal in ratelist :
    trList = tableVal. findAll ( "tr" )

    for trVal in trList[ : 6 ] :
    print (trVal.text)
  4. Выполните команду:
    python3 currency_scrap.py

Data Science и машинное обучение

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

Кроме этого, существуют фреймворки с поддержкой Python для глубокого машинного обучения, например:

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

Как запустить Python приложение на хостинге SpaceWeb

На данный момент на наших серверах виртуального хостинга установлено 4 версии Python. Это Python 2.7, 3.3, 3.4, 3.8. Точные версии можно узнать командами:

$ python2.7 -V
Python 2.7.7

$ python3.3 -V
Python 3.3.5

$ python3.4 -V
Python 3.4.1

$ python3.8 -V
Python 3.8.5*

Запуск скрипта Python через CGI

CGI (от англ. Common Gateway Interface — «общий интерфейс шлюза») — стандарт интерфейса, используемого для связи внешей программы с веб-сервером. Программу, которая работает по такому интерфейсу совместно с веб-сервером, принято называть шлюзом, хотя многие предпочитаю названия «скрипт»(сценарий) или «CGI-программа».

Для запуска скриптов python через CGI необходимо выполнить следующие действия:

  • Добавить в файл .htaccess директиву:
    AddHandler cgi-script .py
  • Указать первой строкой в скрипте путь к используемому интерпретатору. Так называемый shebang.
    #!/usr/bin/python2.7
    для использования python 2.7.5 или другую версию.
  • Указать расширение для файла *.py и выставить на файл права доступа 755.

Запуск скрипта Python через MOD_WSGI

WSGI (англ. Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером, например, Apache.

Стандарт интерфейса (на английском): http://www.python.org/dev/peps/pep-0333/
По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:

  • должно быть вызываемым (callable) объектом (обычно это функция или метод);
  • принимать два параметра:
    словарь переменных окружения (environ);
    обработчик запроса (start_response);
  • вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками;
  • возвращать итерируемый объект с телом ответа;

Пример простого wsgi-приложения:

def application(environ, start_response):
status = '200 OK'
output = b'Hello World!'
response_headers = [('Content-type', 'text/plain'),

('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]

Если приложение будет использовать подключение к базе MySQL, то необходимо для неё сделать удаленный доступ для IP-адреса 127.0.0.1

Отличные VPS на NVMe-дисках и бесплатный тестовый период 3 дня!

Выбрать тариф