5 классных вещей, которые вы можете освоить с Python
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. Выполните следующие действия:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Запустите файловый сервер с помощью команды:
 python3 -m http.serverПосле этого файловая система станет доступна с любого устройства локальной сети.
- Проверьте локальный IP:
 ip addr | grep inetВ третьей строке вывода вы увидите нужный IP-адрес.
- Откройте браузер на смартфоне. В адресной строке введите следующее:
 123.123.123.123:8000
 Вместо 123.123.123.123 укажите локальный IP-адрес из предыдущего шага.
Автоматизация
Python позволяет упростить выполнение ряда задач. Например:
- установить напоминание,
- настроить Cron-задание,
- загрузить видео на видеохостинг и другие.
Чтобы автоматизировать эти действия, можно написать скрипт на Python. После этого ваше участие в качестве IT-специалиста не потребуется: после отработки кода все произойдет само собой.
Например, так можно конвертировать файл из формата CSV в JSON:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Выполните команду:
python -c "import csv,json;print(json.dumps(list(csv.reader(open(“file.csv”)))))"
 Вместо file.csv укажите имя вашего файла.
Создание игр
Python включает в себя библиотеки для разработки компьютерных и мобильных игр. Наиболее популярная из них — Kivy. Она позволяет создавать кроссплатформенные игры, которые поддерживаются популярными операционными системами: Windows, Linux, Mac, Android и iOS.
Кроме этого, вы можете запускать игры в Терминале Linux (например, Виселица). Для этого:
- Сохраните этот код в файл с расширением .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("Ты проиграл! :(")
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Запустите игру с помощью команды:
 python3 hangout.py
 Вместо hangout.py укажите название файла игры.
Веб-парсинг
Веб-парсинг (Web Scraping) — это сбор информации в интернете из открытых источников. Парсинг относится к автоматизированным способам получения данных и выполняется по заданным условиям. Он позволяет собирать информацию из поисковой выдачи, а также открытые данные с сайтов и социальных сетей.
Python позволяет анализировать и использовать неструктурированные данные из Сети. Для этого можно использовать специальные Python-библиотеки: Beautiful Soup и Scrapy.
В качестве примера покажем, как узнать значение валюты относительно доллара США в системе Linux. Для этого:
- Откройте Терминал с помощью комбинации клавиш Ctrl + Alt + T.
- Установите библиотеки для парсинга и запросов:
 pip install beautifulsoup4 requests
- Создайте файл с названием 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)
 
- Выполните команду:
 python3 currency_scrap.py
Data Science и машинное обучение
Python помогает анализировать и манипулировать данными, а также подходит для работы со сложными алгоритмами. Для работы с информацией существует несколько библиотек. Самые популярные из них:
- NumPy,
- Pandas,
- Matplotlib,
- Seaborn.
Кроме этого, существуют фреймворки с поддержкой 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
Перейти на оригинал