Python на примерах
1.39K subscribers
411 photos
6 videos
145 links
Короткие уроки Python на примерах
Download Telegram
Использование Python для автоматического изменения обоев рабочего стола в зависимости от погоды

Этот лайфхак позволяет автоматически изменять обои на вашем рабочем столе в зависимости от текущей погоды в вашем регионе. Для этого используем API прогноза погоды и возможности управления рабочим столом с помощью Python.

Этот лайфхак добавляет немного автоматизации и удовольствия в повседневную работу с компьютером, делая рабочий стол динамичным и актуальным.
🔥1
Создание собственного командного чат-бота на Python для локального управления файлами

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

Этот простой чат-бот позволяет интерактивно управлять файлами с помощью текстовых команд, что делает его удобным инструментом для локальной автоматизации и обучения.
❤2
for и else

Если вы думали, что else есть только у if, то вынужден вас огорчить. Оно встречается и у try, и у for.

Блок else выполняется если цикл завершился нормально, то есть не был остановлен с помощью оператора break.

Хочу заметить, что continue никак не влияют на блок else, только оператор break имеет значение.

Документация
❤7👍1
Модуль transliterate

В Python существует несколько библиотек для транслитерации текста, и одной из них является библиотека transliterate. Этот модуль позволяет переводить текст из одной письменности в другую, например, из кириллицы в латиницу.

Для использования библиотеки transliterate сначала нужно установить её с помощью pip:

pip install transliterate

Библиотека transliterate поддерживает несколько письменностей, так что вы можете использовать её для транслитерации текста между различными языками.
JPype

JPype - это модуль, который позволяет взаимодействовать с кодом на Java из Python.

Основные области применения JPype:
- Доступ к библиотекам Java из Python.
- Интеграция с существующим Java кодом.
- Использование JVM из Python.

В этом примере мы импортируем класс String из Java и создаем экземпляр этого класса.
Затем вызываем метод toUpperCase() у объекта javaString. Таким образом из Python мы можем работать с объектами и вызывать методы Java.
Результат работы программы:
HELLO FROM JAVA!
Рефлексия

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

Этот код использует библиотеку requests для отправки HTTP-запроса к веб-сервису ipify, который предоставляет API для определения публичного IP-адреса пользователя. Код написан в форме функции get_public_ip, что делает его удобным для повторного использования.

Использование блока try-except обеспечивает обработку исключений, которые могут возникнуть при запросе (например, проблемы с подключением к интернету). Если запрос успешен, функция возвращает IP-адрес, иначе возвращает сообщение об ошибке.
PyQt6

PyQt6 — это библиотека Python для создания приложений с графическим интерфейсом (GUI) с помощью инструментария Qt. Qt - это мощный и зрелый инструментарий для разработки GUI, который используется в широком спектре приложений, от настольных приложений до мобильных приложений и веб-приложений. PyQt6 позволяет использовать все возможности Qt в Python.

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

pip install PyQt6

После установки библиотеки можно начать писать код для создания приложения с GUI.
👍2
PsychoPy

PsychoPy — это программное обеспечение для создания экспериментов в области психологии, нейронауки и экспериментальной психиатрии с использованием языка программирования Python. Он предоставляет инструменты для создания различных видов стимулов, управления временем, сбора данных и анализа результатов.

В примере на картинке мы создаем окно, текстовый стимул, отображаем его, ждем 2 секунды и затем закрываем окно. PsychoPy предоставляет богатый набор функций для создания более сложных экспериментов, таких как представление изображений, воспроизведение звуков, сбор данных о времени реакции и многое другое.
Как работает хэш-таблица в Python (dict):

🔹 Хэширование - при добавлении элемента вызывается hash(key), и получается целое число - хэш ключа.

🔹 Коллизии - если два ключа выдают одинаковый хэш, Python сохраняет их в одну "ячейку" (обычно в виде списка). Это называется метод цепочек.

🔹 Поиск - при доступе по ключу Python вычисляет его хэш и ищет значение в нужной ячейке. Быстро и эффективно.

⚡️ Словари — одна из причин, почему Python так удобен.
🔥1
🐍 Python + Emojis = читаемый код?

Знаешь ли ты, что Python позволяет использовать emoji как имена переменных?

🔥 = 100  
💧 = 20
print(🔥 - 💧) # 80


Да, это работает! Python видит emoji как обычные юникод-символы. Конечно, так писать код в проде - плохая идея, но для фана или внутренних инструментов почему бы и нет?

⚠️ Внимание: поддержка может зависеть от шрифта и среды (IDE, консоль и т.д.).
JPype: работаем с Java из Python

JPype позволяет запускать Java-код прямо из Python, подключая JVM и используя Java-классы как обычные Python-объекты.

📌 Примеры применения:
– Подключение Java-библиотек
– Интеграция с существующими Java-системами
– Запуск JVM прямо из Python-кода

import jpype

jpype.startJVM()
String = jpype.JClass("java.lang.String")
javaString = String("Hello from Java!")
print(javaString.toUpperCase())
jpype.shutdownJVM()


🔧 Результат:
HELLO FROM JAVA!

Полезный инструмент, если нужен доступ к мощным Java-библиотекам без отказа от Python.
Метод missing

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

Общая форма метода missing выглядит следующим образом:

def __missing__(self, key):
# ...


Аргумент self представляет собой экземпляр словаря, в котором произошло обращение к несуществующему ключу. Аргумент key представляет собой сам несуществующий ключ.
🔁 Бесконечный for без while

Можно ли сделать бесконечный цикл без while True? Конечно! Вот один из способов:

for _ in iter(int, 1):
print("Работаю бесконечно...")


Почему это работает?
👉 iter(int, 1) создаёт итератор, который вызывает int() до тех пор, пока результат не станет равен 1.
Поскольку int() без аргументов всегда возвращает 0, условие никогда не выполнится - цикл бесконечен.

Такой трюк не только работает, но и удивляет тех, кто видит это впервые 👀
👍4
pywhatkit

Открывает сайты, пишет в WhatsApp, рисует ASCII, ищет в Google и даже управляет клавиатурой.

🔍 1. Поиск в Google

import pywhatkit as kit

kit.search("как стать Python-разработчиком")


🔹 Откроется вкладка браузера с результатами поиска.

---

💬 2. Отправка сообщения в WhatsApp

import pywhatkit as kit

kit.sendwhatmsg("+79991234567", "Привет с Python 👋", 15, 30)


🔹 Отправит сообщение в WhatsApp в 15:30. Работает только с установленным WhatsApp Web.
⚠️ Нужно запускать заранее — за 1–2 минуты до указанного времени.

---
🖼 3. Преобразование изображения в ASCII-арт

kit.image_to_ascii_art("cat.jpg", "cat_ascii")


🔹 Создаст файл cat_ascii.txt с артом из символов.

---
🖱 4. Управление клавиатурой

kit.send_keys("Notepad", "Hello from Python!")


🔹 Отправляет текст в указанное активное окно (например, блокнот). Подходит для автоматизации.

---
🧠 5. Случайный факт

kit.info("Python programming", lines=3)


🔹 Выведет краткую справку из Википедии (3 строки).

---

📦 Установка:

pip install pywhatkit
Модуль doctest

Модуль doctest — это легкий фреймворк для тестирования, который позволяет автоматизировать тестирование кода, используя его документацию. Модуль ищет в документации примеры кода, которые можно выполнить, и проверяет, соответствуют ли результаты ожидаемым.

Как использовать doctest?

Чтобы использовать doctest, необходимо импортировать его в свой код:

import doctest


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

Чтобы запустить тесты doctest, вы можете использовать функцию doctest.testmod(). Если тесты пройдут успешно, ничего не будет напечатано. Если тесты потерпят неудачу, будет напечатано сообщение об ошибке, указывающее на причину неудачи.
rich - красивый вывод в консоли

Позволяет делать форматирование, таблицы, прогресс-бары, markdown и даже графики прямо в терминале.
🎨 1. Цветной и стильный текст

from rich import print

print("[bold magenta]Hello[/bold magenta], [green]Pythonistas![/green] 🐍")


🟣 Жирный текст с цветами - как Markdown, но для терминала.

---

📊 2. Прогресс-бар

from rich.progress import track
import time

for step in track(range(10), description="Обработка..."):
time.sleep(0.2)


🔹 Удобно для загрузок, циклов, задач.

---

📋 3. Таблица

from rich.table import Table
from rich.console import Console

table = Table(title="Список задач")

table.add_column("ID", justify="right", style="cyan")
table.add_column("Описание", style="magenta")
table.add_column("Статус", style="green")

table.add_row("1", "Сделать кофе", "☕️ Готово")
table.add_row("2", "Написать скрипт", "💻 В процессе")
table.add_row("3", "Отдохнуть", "😴 Запланировано")

console = Console()
console.print(table)


🧾 Создаёт красивые ASCII-таблицы - читаемо и стильно.

---

📝 4. Markdown прямо в консоли

from rich.console import Console
from rich.markdown import Markdown

md = Markdown("""
# Заголовок
**Жирный текст**
- Пункт 1
- Пункт 2
""")

Console().print(md)


---

📦 Установка:

pip install rich
Всех с Днем знаний!
Перейдём к основам-основам

В Python есть два типа типов: изменяемые (list, set, dict) и неизменяемые (bool, int, float, complex, tuple, str, frozenset).

Зачем такие сложности? Неизменяемые типы сохраняют данные, не позволяя другим объектам на них повлиять.
👍2
Несколько фишек Python

1. Мы можем передать кортеж функции isinstance, тогда она будет проверять, относится ли x к одному из этих типов.

2. round может округлять в обратную сторону. То есть не только до дестых, но и до десяток.

3. В один except можно записывать несколько ошибок на обработку.
👍1
12 небольших фишек для улучшения твоего кода

1. Обмен значений
x, y = 1, 2
x, y = y, x

2. Получение строки из списка
a_list = [‘I’, ‘like’, ‘python’, ‘programming’]
a_string = “ “.join(a_list)

3. Разбиение строки на список
a_string = ‘I like python programming’
a_list = a_string.split()

4. Инициализация листа каким либо значением
[0]*1000 # лист, заполненный 1000 нулями
[1]*1000 # лист, заполненный 1000 единицами

5. Слияние словарей
x = {‘a’:1, ‘b’:2}
y = {‘c’:3, ‘d’:4}
z = {**x, **y}

6. Переворачивание строки
a = ‘My string’
a = a[::-1]

7. Возврат нескольких переменных из функции
def test(x,y):
return x,y
a,b = test(1,2)

8. Итерирование по словарю
a_dict = {‘a’:1, ‘b’:2, ’c’:3}
for k, v in a_dict.items():
print(‘{0}:{1}’.format(k, v))

9. Инициализация пустых контейнеров
a_list = list()
a_dict = dict()
a_set = set()
a_tuple = tuple()

10. Удаление символов в конце строки
my_string = ‘My string///‘
my_string.strip(‘/‘)

11. Проверка занимаемой объектом памяти
import sys
x = 1
print(sys.getsizeof(x))

12. Нахождение наиболее частого элемента в списке
a_list = [1, 2, 3, 1, 1, 4, 1, 4, 4, 1]
print(max(set(a_list), key=a_list.count))
❤1👍1👎1
Что такое __name__ ?

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

Переменная получает значение '__main__', если программу запустили напрямую (python file.py). Если же файл импортировали как модуль, он получает своё название.