Python Nation🐍🇺🇦
2.84K subscribers
237 photos
2 files
158 links
Канал для всіх, хто вивчає Python: поради, приклади коду, бібліотеки, лайфхаки та актуальні новин👨‍💻🐍

По всім питанням👉 @giorg_jr

❗️Канал регулярно очищується від неактивних підписників❗️
Download Telegram
Конвертер валют

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

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

В программе мы импортируем модуль calendar. Встроенная функция month() внутри модуля принимает год и месяц и отображает календарь для данного месяца года.
Хотите увидеть фокус?

Напишите данный код на своём ПК и дайте ответ в комментариях, что у вас получилось в результате.
Информация о доменном имени с помощью Python

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

Перед запуском кода пропишите данную команду в консоли:
pip install python-whois
Cowsay - прикольная маленькая библиотека, с помощью которой вы сможете нарисовать в консоль 🐲 дракона, 🐮 корову, 🦖 динозавра, 🐈 кошку, и других персонажей.

Перед запуском кода установите пакет:

sudo pip install cowsay

То что на скрине, сделано с помощью 2 строчек кода👇

import cowsay
print(cowsay.get_output_string('trex', 'тут твой текст'))
Определение лиц

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

Перед запуском кода установите пакет:
pip install opencv-python

И загрузите каскадный файл из GitHub:
https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml

#opencv
Сегодня, с помощью двух строчек кода, мы с вами напишем прикольную, но оооочень простую программу, а именно🥁 Музыкальный Плеер.

Вот вам код:

from playsound import playsound
playsound('YourSound.mp3')

Но перед запуском установите пакет:

pip install playsound
Наш генератор случайных историй будет снабжен несколькими списками фраз, и каждый раз, когда мы запускаем нашу программу, предложение будет формироваться случайным образом путем выбора рандомных фраз из наших списков.
Форматировать текст мы будем с помощью f-strings

Обязательно пишите в комментариях какая история у вас получилась.
Оператор "морж"

В своё время Python 3.8 представил оператор присвоения с двоеточием :=, аналогичный оператору присвоения =.
Все мы знаем, как присвоить значение переменной:

num = 15

И вывести значение с помощью функции print:

print(num) # 15

Оператор "морж" даёт возможность присвоить переменные в выражении, включая переменные, которых еще не существует.
И вот если использовать наш новый оператор "морж", то предыдущий код мы можем выполнить в одной строке:

print(num := 15) # 15

Использование этого оператора позволяет ускорить и сократить код, а в некоторых случаях способен значительно ускорить обработку больших данных.

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

Теперь поговорим о коде. Библиотеку seaborn, в отличие от matplotlib, можно использовать для построения более сложных диаграмм, в которые входит большое количество компонентов, таких как цвета, графики и переменные. matplotlib используется для отображения графика, numpy— для генерации данных и pandas — для их обработки! Построение диаграмм является лишь одной простой функцией seaborn. Также в этой библиотеке можно найти функцию colour mapping (преобразование цвета).

#matplotlib #pandas #seaborn #numpy
Отладка

Отладка относится к числу навыков, овладев которыми, вы значительно продвинете свои навыки отслеживания багов в коде. Большинство новичков пренебрежительно относятся к важности отладчика Python (pdb). В данном посте мы расскажем лишь об одном способе отладки. Про второй в следующем посте.

Запуск из командной строки (первый способ)
Вы можете запустить скрипт из командной строки вместе с отладчиком:

python3 -m pdb my_script.py

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

Команды (буквы которые вы вводите в консоли для работы отладчика)
🔸c: продолжить выполнение программы
🔸w: отобразить окружение текущей исполняемой инструкции
🔸a: отобразить список аргументов текущей функции
🔸s: исполнить текущую строчку кода и остановиться по возможности
🔸n: продолжить исполнение программы пока не будет достигнута следующая строка текущей функции или пока функция не завершит свою работу.

#отладка #pdb
Вычисление Города, Региона, Страны по IP 🤔

В Python есть библиотека ip2geotools, с ее помощью можно узнать данные местоположения.

Перед запуском кода установите библиотеку:
pip install ip2geotools

Код:
from ip2geotools.databases.noncommercial import DbIpCity

ip = 'сюда IP'

response = DbIpCity.get(ip, api_key='free')

print(f'Город - {response.city}\n'
f'Регион - {response.region}\n'
f'Страна - {response.country}\n'
f'Долгота - {response.latitude}\n'
f'Широта - {response.longitude}')

#ip2geotools
Продолжаем тему отладки

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

import pdb

def make_prog():
pdb.set_trace()
return "Python nation"

print(make_prog())

Попробуйте запустить этот код. Отладчик откроется сразу после запуска скрипта. Теперь пришло время вспомнить команды отладчика.

🔸c: продолжить выполнение программы
🔸w: отобразить окружение текущей исполняемой инструкции
🔸a: отобразить список аргументов текущей функции
🔸s: исполнить текущую строчку кода и остановиться по возможности
🔸n: продолжить исполнение программы пока не будет достигнута следующая строка текущей функции или пока функция не завершит свою работу.

#отладка #pdb
Определение страны и оператора по номеру телефона

phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т. д.

В этом посте мы рассмотрели лишь парочку функций.
Перед запуском установите пакет:

pip install phonenumbers

#phonenumbers
Сканирование QR-кода с помощью камеры

Несколькими постами раньше мы научились генерировать QR-код.
Теперь пришло время научится считывать его.

Перед запуском кода установите пакет:

pip3 install opencv-python

После того как ваш программный код начнет "скрипеть колесами" включится веб-камера и вы, в свою очередь, поднесите QR-код к камере которая будет считывать информацию.

#opencv
Reduce весьма полезная функция для выполнения вычислений на списке и возвращения единственного результата. Она сворачивает список, применяя полученную в качестве аргумента функцию по очереди к последовательным парам элементов.
Например, если мы хотим посчитать произведение всех элементов списка чисел. Пример на картинке👆

#reduce
FuzzyWuzzy - топовая библиотека для нечёткого сравнения строк.
Например, если сравнить две строчки hello и hell, то окажется что они на 89% похожи.

Также в библиотеке есть частичное сравнение и сравнение слов без учета их позиций в предложении.

Перед
запуском кода установите пакет:

pip install fuzzywuzzy[speedup]
Метод get() для словаря

Часто разработчики используют квадратные скобки, чтобы получить значение из словаря. Но когда нужно получить значение из словаря безопасным способом рекомендуется использовать метод get().

При попытке использования синтаксиса с квадратными скобками для выборки по ключу, отсутствующему в словаре, мы получим ошибку KeyError.

Чтобы избежать подобной ситуации, используется метод get(). Этот метод возвращает значение для данного ключа, если оно есть в словаре. Если нет, то он вернет None (если get() используется только с одним аргументом).

Также вместо None можно получить своё значение указав его вторым аргументом в методе get().

#get() #словарь #None #KeyError
Один из лучших способов ускорения кода — это встроенные функции Python. Их нужно использовать при любой возможности. Эти встроенные функции хорошо протестированы и оптимизированы.

Почему они такие быстрые? Потому что реализованы на языке C. Это относится к таким встроенным функциям Python, как min, max, all, map и другим.

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

Если ваш компьютер выполняет более одного процесса, тогда присмотритесь к многопроцессорной обработке в Python.
Она разрешает распараллеливание в коде. Многопроцессорная обработка весьма затратна, поскольку вам придется инициировать новые процессы, обращаться к общей памяти и т.д., поэтому пользуйтесь ей только для большого количества разделяемых данных. Для небольших объемов данных многопроцессорная обработка не всегда оправдана.