Pythoner
7.23K subscribers
860 photos
27 videos
4 files
654 links
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику.

Сотрудничество - @flattys
Цены - @serpent_media

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
✈️EEL (Easy Electron) — это библиотека, которая упрощает создание desktop-приложений с использованием технологий веб-разработки (HTML, CSS и Javascript).

➡️Основные возможности EEL:

💬Позволяет создавать графический интерфейс приложения при помощи веб-технологий.
💬Обеспечивает взаимодействие между Python кодом и Javascript кодом. Python может вызывать JS функции, а JS может вызывать Python.
💬Автоматически обрабатывает асинхронные вызовы между JS и Python.
💬Встроенный локальный веб-сервер для отображения HTML/JS интерфейса.

➡️Пример
import eel 

eel.init('web')

@eel.expose
def say_hello(x):
print('Hello %s' % x)

eel.say_hello('World')

eel.start('index.html')


⬆️В этом примере импортируется модуль eel и инициализируется папка с HTML и JS файлами — 'web'.
Декоратор @eel.expose делает функцию say_hello() доступной для вызова из Javascript.
Вызов eel.say_hello() вызывает эту функцию из Python кода.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥2
✈️Логирование, или журналирование, – это процесс записи событий в системе. Эти события могут включать в себя всё: от информации о том, что программа успешно завершила свою работу, до деталей о возникших ошибках. Логи могут быть сохранены в различных форматах и на различных носителях, включая файлы, базы данных или даже удаленные серверы.

➡️Преимущества логирования

Логирование имеет множество преимуществ. Оно помогает разработчикам отслеживать и исправлять ошибки, анализировать поведение системы и даже предотвращать возможные проблемы в будущем. Кроме того, логи могут быть использованы для аудита, что особенно важно для обеспечения безопасности системы.

➡️Как использовать логирование?

Применять логирование можно разными способами. Во-первых, можно использовать встроенные средства ОС или специализированные инструменты для логирования. Во-вторых, можно внедрять функции логирования непосредственно в свои приложения. В любом случае, важно помнить о необходимости разделять логи по уровням важности и обеспечивать их надлежащее хранение и архивацию.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍3🔥3
✈️Python имеет встроенный модуль zipfile, который предоставляет функционал для работы с архивами ZIP. Давайте создадим простой пример, чтобы продемонстрировать его возможности:

import zipfile

# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости

⬆️Этот небольшой код создает новый ZIP архив под именем новый_архив.zip и помещает в него файлы file1.txt и file2.txt.

➡️Модуль zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🔥2
🔥8👍42🤝2
👍8😐4🤓31
🐍Разбор

Как вы знаете (или не знаете, тогда знайте) метод .pop удаляет элемент по индексу.
Т.е. если бы мы написали, my_list.pop(1), то элемент JavaScript бы удалился из списка.

Но а что, если мы не прокинули индекс? Тогда выбирается последний элемент. В нашем случае - c#

Но почему ответ - это не список без последнего элемента.

Все дело в том, что мы принтуем не список, а результат выполнения функции .pop. В свою очередь, функция .pop возвращает удаленный элемент (последний элемент) (( C# ))
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍74🤨1
Forwarded from IT memer
😁32😐5👍1
✈️Модуль difflib в Python - это мощный инструмент, который помогает разработчикам сравнивать последовательности. Он особенно полезен для сравнения текстовых данных и нахождения различий между ними.

➡️Функция get_close_matches

Функция get_close_matches() используется для поиска наиболее похожих вариантов в последовательности. Это полезно, например, при реализации системы автодополнения, где нужно предложить пользователю наиболее вероятные варианты на основе его ввода.

➡️Например:

import difflib

words = ['кот', 'собака', 'кит', 'слон']
difflib.get_close_matches('кот', words)


⬆️В этом примере функция возвращает: ['кот', 'кит'].

➡️Функция ndiff

Функция ndiff() используется для сравнения двух последовательностей и выявления различий между ними. Она возвращает генератор, который производит строки, иллюстрирующие различия между последовательностями. Это полезно, например, при сравнении версий текстовых документов.

➡️Например:

import difflib

str1 = "кот"
str2 = "кит"
diff = difflib.ndiff(str1, str2)
print('\\n'.join(diff))


⬆️В этом примере функция выводит:
  к
- о
+ и
т


➡️Функция SequenceMatcher

Функция SequenceMatcher() является более общей и мощной функцией, чем ndiff(). Она позволяет сравнивать любые две последовательности и определять степень их сходства.

➡️Например:

import difflib

str1 = "кот"
str2 = "кит"
match = difflib.SequenceMatcher(None, str1, str2)
print(match.ratio())


⬆️В этом примере функция возвращает: 0.6666666666666666, что означает, что строки совпадают на 66.67%.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍95🔥2
👍43🔥1
Что выдаст код
Anonymous Quiz
23%
55 28 28
11%
28 55 55
44%
5 3 1
5%
5 5 3
18%
Error
🤓5🔥3🤨32
🐍Разбор

Функция getsizeof() модуля sys возвращает размер объекта object в байтах. Объект может быть любым типом объекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥2
Forwarded from IT memer
🤣15😁3👍2🤓1
➡️Stack Overflow

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

tack Overflow

➡️Real Python

Real Python — это ресурс, созданный специально для тех, кто хочет глубже изучить Python. Здесь вы найдете качественные туториалы, статьи и видеоуроки от опытных разработчиков. Real Python охватывает широкий спектр тем: от основ до продвинутых техник программирования.

Real Python

➡️GitHub

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

GitHub

➡️PyPI (Python Package Index)

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

PyPI

➡️Python Documentation

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

Python Documentation

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73👍2
3👍3🔥1
Что выдаст код выше
Anonymous Quiz
18%
-15
12%
[5, 5, 5]
13%
[-15, -15, -15]
3%
[-3, -3, -3]
22%
[]
31%
Error
🤨8👍4🔥4
Разбор

Все достаточно банально. Стоит запомнить, что при умножении списка на 0 или элемент <0 (отрицательное число) —> мы будем получать пустой список.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4🤓3👏2
➡️Основы Unstructured

Библиотека предоставляет удобные методы для работы с различными типами данных. Например, для чтения текста из файла можно использовать следующий код:

from unstructured import Text

text_data = Text.from_file('example.txt')
print(text_data.content)


⬆️Эти простые команды позволяют легко импортировать и работать с текстовыми данными.

➡️Обработка Текстовых Данных

Одной из основных возможностей библиотеки Unstructured является обработка текстов. Она позволяет выполнять такие задачи, как токенизация, лемматизация и извлечение ключевых слов. Рассмотрим пример токенизации текста:

from unstructured import Text

text_data = Text('Это пример текста для токенизации.')
tokens = text_data.tokenize()
print(tokens)


⬆️Этот код разобьёт текст на отдельные слова, что может быть полезно для дальнейшего анализа и обработки данных.

➡️Работа с Изображениями

Unstructured также поддерживает работу с изображениями. Она позволяет извлекать текст из изображений с помощью технологии OCR (Оптическое Распознавание Символов). Рассмотрим пример извлечения текста из изображения:
from unstructured import Image

image_data = Image.from_file('example.png')
text_from_image = image_data.extract_text()
print(text_from_image)


⬆️Этот код позволяет прочитать текст, содержащийся в изображении, и вывести его на экран. Это может быть полезно для задач по автоматизации и анализа данных.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍3
🕔Одним из основных преимуществ Pendulum является возможность легко создавать и форматировать даты. Давайте рассмотрим пример:

import pendulum

# Создание даты
date = pendulum.datetime(2023, 10, 5)

# Форматирование даты
formatted_date = date.format('YYYY-MM-DD')
print(formatted_date) # Вывод: 2023-10-05


⬆️С помощью Pendulum вы можете легко создавать даты и форматировать их в нужный формат с помощью метода format.

➡️Работа с временными зонами

Pendulum значительно упрощает работу с временными зонами. Пример создания даты в одной временной зоне и её преобразования в другую:

# Создание даты в временной зоне 'Europe/Moscow'
moscow_time = pendulum.datetime(2023, 10, 5, tz='Europe/Moscow')
print(moscow_time) # Вывод: 2023-10-05T00:00:00+03:00

# Преобразование в другую временную зону
ny_time = moscow_time.in_timezone('America/New_York')
print(ny_time) # Вывод: 2023-10-04T17:00:00-04:00


⬆️С Pendulum работа с временными зонами становится интуитивно понятной и простой!

➡️Различные операции с датами

Pendulum предоставляет широкий набор методов для выполнения различных операций с датами. Пример добавления и вычитания временных интервалов:

# Создание даты
date = pendulum.datetime(2023, 10, 5)

# Добавление 5 дней
new_date = date.add(days=5)
print(new_date) # Вывод: 2023-10-10T00:00:00+00:00

# Вычитание 2 часов
new_date = date.subtract(hours=2)
print(new_date) # Вывод: 2023-10-04T22:00:00+00:00


⬆️С методами add и subtract вы можете легко выполнять арифметические операции с датами, что делает работу с временными интервалами очень удобной.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥6👍5
✈️Основное преимущество python-benedict состоит в её способности обрабатывать вложенные словари и предоставлять удобные методы для доступа к данным. Например, вы можете легко получить значение по сложному ключу, используя метод get.

from benedict import benedict

data = benedict({
'user': {
'profile': {
'name': 'John Doe'
}
}
})

print(data.get('user.profile.name')) # Вывод: John Doe


➡️Работа с вложенными данными

Одной из ключевых особенностей библиотеки является её способность работать с вложенными данными. Вам не нужно писать сложные циклы или проверки, чтобы получить доступ к глубоко вложенным значениям. python-benedict делает это за вас.

data = benedict({
'config': {
'database': {
'host': 'localhost',
'port': 5432
}
}
})

print(data['config.database.host']) # Вывод: localhost
print(data['config.database.port']) # Вывод: 5432


🔎Также вы можете использовать метод update для изменения вложенных значений.

data.update('config.database.port', 3306)
print(data['config.database.port']) # Вывод: 3306


➡️Преобразование форматов данных

python-benedict поддерживает преобразование данных между различными форматами, такими как JSON, XML и другие. Это делает библиотеку полезной для задач, связанных с обменом данными между различными системами.

json_data = """
{
"user": {
"profile": {
"name": "Jane Doe"
}
}
}
"""

data = benedict.from_json(json_data)
print(data['user.profile.name']) # Вывод: Jane Doe

xml_data = data.to_xml()
print(xml_data)


⬆️Это особенно удобно, когда нужно быстро преобразовать данные из одного формата в другой без необходимости использования дополнительных библиотек.

🐍Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍54🔥1