Python: неочевидное и вероятное
Python известен своей простотой и предсказуемостью, но за этой доступностью скрываются интересные и неочевидные особенности, способные удивить программистов с базовым опытом(а если повезет, то и опытных). В этой статье мы рассмотрим несколько таких «фокусов» и тонкостей, чтобы глубже понять внутреннюю логику и философию языка.
👉 Перейти к статье
🐍 Python Map | Обучение | #статьи
Python известен своей простотой и предсказуемостью, но за этой доступностью скрываются интересные и неочевидные особенности, способные удивить программистов с базовым опытом(а если повезет, то и опытных). В этой статье мы рассмотрим несколько таких «фокусов» и тонкостей, чтобы глубже понять внутреннюю логику и философию языка.
👉 Перейти к статье
🐍 Python Map | Обучение | #статьи
👍4
Модуль requests-html
Requests-HTML — это мощный инструмент для веб-скрейпинга, который позволяет извлекать данные с веб-страниц, обрабатывать JavaScript, взаимодействовать с DOM и загружать данные асинхронно.
Это удобное решение для парсинга динамических веб-страниц и работы с их содержимым.
➡️ Пример использования
➡️ Чтобы сохранить HTML-страницу в файл:
💾 Установка
👉 Ссылка на документацию
🐍 Python Map | Обучение | #библиотеки
Requests-HTML — это мощный инструмент для веб-скрейпинга, который позволяет извлекать данные с веб-страниц, обрабатывать JavaScript, взаимодействовать с DOM и загружать данные асинхронно.
Это удобное решение для парсинга динамических веб-страниц и работы с их содержимым.
➡️ Пример использования
from requests_html import HTMLSession
# Создаем сессию
session = HTMLSession()
# Загружаем страницу
response = session.get("https://example.com")
# Выполняем JavaScript на странице
response.html.render()
# Извлекаем заголовки <h1>
headings = response.html.find("h1")
for heading in headings:
print(heading.text)
➡️ Чтобы сохранить HTML-страницу в файл:
with open("page.html", "w") as f:
f.write(response.html.html)
💾 Установка
pip install requests-html
👉 Ссылка на документацию
🐍 Python Map | Обучение | #библиотеки
Получение истории браузера
browser-history — это библиотека на Python, которая позволяет легко получать историю посещений и закладки из популярных браузеров.
Установка библиотеки:
Пример использования:
🐍 Python Map | Обучение | #библиотеки
browser-history — это библиотека на Python, которая позволяет легко получать историю посещений и закладки из популярных браузеров.
Это очень полезно, если вам нужно анализировать свою интернет-активность или работать с данными о посещенных сайтах.
Установка библиотеки:
pip install browser-history
Пример использования:
from browser_history import get_history
# Получаем историю
outputs = get_history()
# Это список кортежей (дата и время, URL)
his = outputs.histories
# Выводим историю на экран
for entry in his:
print(entry)
🐍 Python Map | Обучение | #библиотеки
👍3
Создание демонстрационных приложений
Mesop — это отличный инструмент для быстрого создания веб-приложений на Python.
Он предназначен для быстрой разработки приложений и демонстрационных интерфейсов, не требуя при этом знаний JavaScript, CSS или HTML.
Установка библиотеки:
🔗 GitHub
🐍 Python Map | Обучение | #библиотеки
Mesop — это отличный инструмент для быстрого создания веб-приложений на Python.
Он предназначен для быстрой разработки приложений и демонстрационных интерфейсов, не требуя при этом знаний JavaScript, CSS или HTML.
Установка библиотеки:
pip install mesop
🔗 GitHub
Mesop поддерживает горячую перезагрузку, что позволяет быстро настраивать и обновлять интерфейсы во время разработки, значительно упрощая процесс работы.
🐍 Python Map | Обучение | #библиотеки
🔥2
Рейтинг языков программирования
Язык C потерял популярность и был обогнан C++ и Java.
PHP вылетел из топ-10, уступив место Go.
Будущее Rust и Kotlin
Rust продолжает набирать популярность, хотя его сложная кривая обучения мешает ему стать наиболее распространенным языком.
Kotlin, наоборот, разочаровал: он потерял позиции и вышел из топ-20.
Новые языки в рейтинге
Zig поднялся с 149-го на 61-е место, а Mojo, который появился всего 2 года назад, прыгнул с 194-го на 68-е место.
Mojo обещает стать серьезным конкурентом Python.
🔗 Источник
🐍 Python Map | Обучение
В 2024 году Python увеличил свою популярность на 9,3%, что значительно больше, чем у ближайших конкурентов: Java (+2,3%), JavaScript (+1,4%) и Go (+1,2%).Изменения в топ-10 языков программирования
Язык C потерял популярность и был обогнан C++ и Java.
PHP вылетел из топ-10, уступив место Go.
Будущее Rust и Kotlin
Rust продолжает набирать популярность, хотя его сложная кривая обучения мешает ему стать наиболее распространенным языком.
Kotlin, наоборот, разочаровал: он потерял позиции и вышел из топ-20.
Новые языки в рейтинге
За которыми стоит следить, — это Zig и Mojo
Zig поднялся с 149-го на 61-е место, а Mojo, который появился всего 2 года назад, прыгнул с 194-го на 68-е место.
Mojo обещает стать серьезным конкурентом Python.
🔗 Источник
🐍 Python Map | Обучение
🔥2
Паттерны проектирования
Паттерны (шаблоны) проектирования — это проверенные решения для распространенных проблем в разработке программного обеспечения. Они упрощают проектирование и улучшают читаемость кода. Основные паттерны:
- Singleton (Одиночка): Обеспечивает единственный экземпляр класса с глобальной точкой доступа.
- Factory (Фабрика): Определяет интерфейс для создания объектов, позволяя изменять тип создаваемых объектов.
- Observer (Наблюдатель): Устанавливает зависимость "один ко многим", уведомляя зависимые объекты об изменениях.
- Strategy (Стратегия): Инкапсулирует семейство алгоритмов, позволяя их взаимозаменяемость.
🐍 Python Map | Обучение | #теория
Паттерны (шаблоны) проектирования — это проверенные решения для распространенных проблем в разработке программного обеспечения. Они упрощают проектирование и улучшают читаемость кода. Основные паттерны:
- Singleton (Одиночка): Обеспечивает единственный экземпляр класса с глобальной точкой доступа.
- Factory (Фабрика): Определяет интерфейс для создания объектов, позволяя изменять тип создаваемых объектов.
- Observer (Наблюдатель): Устанавливает зависимость "один ко многим", уведомляя зависимые объекты об изменениях.
- Strategy (Стратегия): Инкапсулирует семейство алгоритмов, позволяя их взаимозаменяемость.
🐍 Python Map | Обучение | #теория
👍2
Модуль sys: функция unraisablehook
Функция
Она вызывается в тех случаях, когда возникает исключение, которое Python не может обработать с помощью стандартного блока
🐍 Python Map | Обучение
import sys
def unraisablehook(unraisable):
print(f'Исключение: {unraisable.exc_type.__name__}: {unraisable.exc_value}')
sys.unraisablehook = unraisablehook
class Broken:
def __del__(self):
raise RuntimeError('Ошибка в __del__')
obj = Broken()
del obj # Исключение: RuntimeError: Ошибка в __del__
Функция
sys.unraisablehook()
позволяет переопределить поведение невыполнимых исключений. Она вызывается в тех случаях, когда возникает исключение, которое Python не может обработать с помощью стандартного блока
try-except
. Например, это происходит, когда исключение возникаетdelрукторе (__del__
) или во время сборки мусора.Это полезно для отладки и логирования неожиданных ошибок.
🐍 Python Map | Обучение
✍2👍1
Циклический сбор мусора
ℹ️ Циклический сбор мусора — это процесс автоматического освобождения памяти, занимаемой недоступными объектами. В Python встроенный механизм сборки мусора автоматически освобождает память, занятую объектами без ссылок.
*️⃣ В большинстве случаев Python самостоятельно заботится о сборке мусора, но в некоторых ситуациях, особенно при работе с большими объемами данных, ручное управление может быть полезным.
Python Map | Обучение 🐍
import gc
# Объекты с циклическими ссылками
class MyClass:
def __init__(self):
self.circular_ref = None
obj1 = MyClass()
obj2 = MyClass()
# Удаляем ссылки на объекты
obj1.circular_ref = obj2
obj2.circular_ref = obj1
del obj1
del obj2
# Запуск сборки мусора
gc.collect()
ℹ️ Циклический сбор мусора — это процесс автоматического освобождения памяти, занимаемой недоступными объектами. В Python встроенный механизм сборки мусора автоматически освобождает память, занятую объектами без ссылок.
*️⃣ В большинстве случаев Python самостоятельно заботится о сборке мусора, но в некоторых ситуациях, особенно при работе с большими объемами данных, ручное управление может быть полезным.
Управлять этим процессом можно с помощью модуля gc (garbage collector).
Python Map | Обучение 🐍
Методы str: ljust(), rjust(), center()
В Python строки имеют несколько полезных методов для форматирования, которые позволяют дополнить строку до заданной длины.
Выравнивает строку по левому краю, добавляя символы (по умолчанию пробелы) справа до указанной ширины.
Пример:
Выравнивает строку по правому краю, добавляя символы (по умолчанию пробелы) слева до указанной ширины.
Пример:
Выравнивает строку по центру, добавляя символы (по умолчанию пробелы) с обеих сторон до указанной ширины.
Пример:
Python Map | Обучение 🐍
В Python строки имеют несколько полезных методов для форматирования, которые позволяют дополнить строку до заданной длины.
ljust(width, fillchar=' ')
Выравнивает строку по левому краю, добавляя символы (по умолчанию пробелы) справа до указанной ширины.
Пример:
text = "Hello"
padded_text = text.ljust(10, '*')
print(padded_text) # Вывод: Hello*****
rjust(width, fillchar=' ')
Выравнивает строку по правому краю, добавляя символы (по умолчанию пробелы) слева до указанной ширины.
Пример:
text = "Hello"
padded_text = text.rjust(10, '*')
print(padded_text) # Вывод: *****Hello
center(width, fillchar=' ')
Выравнивает строку по центру, добавляя символы (по умолчанию пробелы) с обеих сторон до указанной ширины.
Пример:
text = "Hello"
padded_text = text.center(10, '*')
print(padded_text) # Вывод: **Hello****
Python Map | Обучение 🐍
✍1
Добавляем горизонтальную прокрутку в IDLE Python
1. Определяем местоположение вашего Python
Пример:
2. Из папки с интерпретатором переходим в
Пример:
3. С помощью редактора открываем файл
4. Добавляем строки с
5. Сохраняем внесенные изменения
Python Map | Обучение 🐍
Представленный способ проверен для IDLE Python 3.13 в Windows
1. Определяем местоположение вашего Python
>>> print(__import__('sys').executable)
Пример:
C:\Users\Progr\AppData\Local\Programs\Python\Python313\pythonw.exe
2. Из папки с интерпретатором переходим в
\Lib\idlelib\
Пример:
C:\Users\Progr\AppData\Local\Programs\Python\Python313\Lib\idlelib
3. С помощью редактора открываем файл
editor.py
4. Добавляем строки с
###
в соответствии с примеромpyself.vbar = vbar = Scrollbar(text_frame, name='vbar')
self.hbar = hbar = Scrollbar(text_frame, orient=HORIZONTAL, name='hbar') ###
...
vbar['command'] = self.handle_yview
vbar.grid(row=1, column=2, sticky=NSEW)
hbar['command'] = text.xview ###
hbar.grid(row=2, column=1, sticky=NSEW) ###
text['yscrollcommand'] = vbar.set
text['xscrollcommand'] = hbar.set ###
5. Сохраняем внесенные изменения
Python Map | Обучение 🐍
👍2❤1
Скрытие текста с помощью невидимых символов Unicode
⚙️ Как работает:
- Используются невидимые символы Unicode (
- Они кодируют биты сообщения (0 и 1) прямо в тексте.
- Файл выглядит обычным, но содержит скрытую информацию.
📋 Пример кода:
- Скрытие:
- Извлечение:
💎 Пример:
- Скрываем: hide_message("Lorem ipsum " * 4, "secret").
- Извлекаем: extract_message(скрытый_текст) → "secret".
Python Map | Обучение 🐍
⚙️ Как работает:
- Используются невидимые символы Unicode (
\u200b
, \u200c
).- Они кодируют биты сообщения (0 и 1) прямо в тексте.
- Файл выглядит обычным, но содержит скрытую информацию.
📋 Пример кода:
- Скрытие:
def hide_message(text, message):
binary = ''.join(format(ord(char), '08b') for char in message)
return ''.join([char + ('\u200b' if bit == '0' else '\u200c') for char, bit in zip(text, binary)])
- Извлечение:
def extract_message(hidden_text):
binary = ''.join(['0' if char == '\u200b' else '1' for char in hidden_text if char in ('\u200b', '\u200c')])
return ''.join([chr(int(binary[i:i+8], 2)) for i in range(0, len(binary), 8)])
💎 Пример:
- Скрываем: hide_message("Lorem ipsum " * 4, "secret").
- Извлекаем: extract_message(скрытый_текст) → "secret".
Этот метод позволяет скрывать сообщения в файлах, которые выглядят как обычный текст.
Python Map | Обучение 🐍
🆒3🔥1
Python Map | Обучение
Скрытие текста с помощью невидимых символов Unicode ⚙️ Как работает: - Используются невидимые символы Unicode (\u200b, \u200c). - Они кодируют биты сообщения (0 и 1) прямо в тексте. - Файл выглядит обычным, но содержит скрытую информацию. 📋 Пример…
В этом тексте спрятано сообщение :
˅˅˅˅˅
Top Gear (рус. Высшая передача) — британская телепередача, посвящённая автомобилям. Первые выпуски передачи вышли в 1977 году. Это была передача в формате тележурнала, который в течение долгого времени не менялся. В 2002 году произо
˄˄˄˄˄
Для извлечения используйте функцию extract_message, описанную в посте выше, предав в качестве аргумента текст между стрелками
˅˅˅˅˅
Top Gear (рус. Высшая передача) — британская телепередача, посвящённая автомобилям. Первые выпуски передачи вышли в 1977 году. Это была передача в формате тележурнала, который в течение долгого времени не менялся. В 2002 году произо
˄˄˄˄˄
Для извлечения используйте функцию extract_message, описанную в посте выше, предав в качестве аргумента текст между стрелками
Что получится после его извлечения пишите в комментариях
🔥3🤩1🗿1
PEP 751 принят: Python получит стандартный lock-файл для точной установки зависимостей
Создатели языка утвердили ввод стандартного lock-файл для проекта. Это обеспечит установку фиксированных версий зависимостей и значительно упростит управление воссоздание проекта на новой машине.
Существующие решения — pip freeze, pip-tools, Poetry, PDM, uv используют разные форматы, не совместимые друг с другом и требуют отдельной логики от инструментов и пользователей. Новый стандарт должен устранить эту фрагментацию.
Создатели языка утвердили ввод стандартного lock-файл для проекта. Это обеспечит установку фиксированных версий зависимостей и значительно упростит управление воссоздание проекта на новой машине.
Существующие решения — pip freeze, pip-tools, Poetry, PDM, uv используют разные форматы, не совместимые друг с другом и требуют отдельной логики от инструментов и пользователей. Новый стандарт должен устранить эту фрагментацию.
This media is not supported in your browser
VIEW IN TELEGRAM
Когда навайбкодил приложение в СhatGPT и уже подсчитываешь миллионы своего стартапа.
То самое приложение:
То самое приложение:
❤7