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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
Что выдаст код выше
Anonymous Quiz
1%
3
3%
10
4%
13
79%
7.33333
13%
13.33333
👍13👌4🔥3
🤔Разбор

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍183🔥3
✈️Requests — это популярная библиотека Python для работы с HTTP-запросами. Она позволяет легко отправлять GET, POST, PUT, DELETE и другие типы запросов к веб-серверам, а также обрабатывать ответы в виде текста, JSON или байтов.

➡️Пример использования requests, отправка GET-запроса:
import requests

# Отправляем GET-запрос
response = requests.get("https://jsonplaceholder.typicode.com/posts/1")

# Проверяем статус код
if response.status_code == 200:
print("Успешный запрос!")
data = response.json() # Преобразуем ответ в JSON
print(data)
else:
print(f"Ошибка: {response.status_code}")


➡️Пример POST-запроса:
import requests

# Данные для отправки
payload = {
"title": "foo",
"body": "bar",
"userId": 1
}

# Отправляем POST-запрос
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=payload)

# Обработка ответа
if response.status_code == 201:
print("Данные успешно созданы!")
print(response.json())
else:
print(f"Ошибка: {response.status_code}")


💡Requests — это незаменимый инструмент для работы с веб-сервисами и API в Python. Он делает взаимодействие с интернетом простым и эффективным.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥2
✈️PyInquirer — это библиотека Python для создания интерактивных командных строковых интерфейсов (CLI) с использованием красивых и удобных вопросов. Она позволяет добавлять выбор из списка, ввод данных, подтверждения и многое другое, делая ваши CLI-приложения более дружелюбными для пользователей.

➡️Пример использования PyInquirer. Создание простого интерактивного меню:
from PyInquirer import prompt

# Определение списка вопросов
questions = [
{
'type': 'list',
'name': 'action',
'message': 'Что вы хотите сделать?',
'choices': ['Добавить задачу', 'Удалить задачу', 'Выход']
},
{
'type': 'input',
'name': 'task',
'message': 'Введите название задачи:',
'when': lambda answers: answers['action'] == 'Добавить задачу'
}
]

# Отображение вопросов
answers = prompt(questions)

# Обработка ответов
if answers['action'] == 'Добавить задачу':
print(f"Задача '{answers['task']}' успешно добавлена!")
elif answers['action'] == 'Выход':
print("До свидания!")


⬆️Как работает этот код:
— Пользователь выбирает действие из списка (Добавить задачу, Удалить задачу или Выход).
— Если выбрано "Добавить задачу", пользователю предлагается ввести название задачи.
— В зависимости от выбора выводится соответствующее сообщение.

🔎Плюсы PyInquirer:
- Интерактивность: Легко создавать сложные диалоги с различными типами вопросов (выбор из списка, ввод текста, подтверждение и т.д.).

- Красивый вывод: Библиотека обеспечивает эстетичный и удобный интерфейс для пользователей.

- Гибкость: Возможность настраивать поведение вопросов через параметры, такие как when и filter.

- Простота интеграции: Легко добавлять в существующие CLI-приложения без сложных изменений.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43
✈️Faker — это библиотека Python для генерации фиктивных данных, таких как имена, адреса, email-адреса, телефоны, тексты и многое другое. Она идеально подходит для заполнения баз данных тестовыми данными, создания демонстрационных приложений или защиты конфиденциальной информации.

➡️Пример использования Faker:
from faker import Faker

# Создаем объект Faker (с русским языком)
fake = Faker('ru_RU')

# Генерируем фейковые данные
name = fake.name() # Фейковое имя
address = fake.address() # Фейковый адрес
email = fake.email() # Фейковый email
text = fake.text() # Фейковый текст

# Выводим результаты
print(f"Имя: {name}")
print(f"Адрес: {address}")
print(f"Email: {email}")
print(f"Текст: {text}")


⬆️Результат:
Имя: Мария Иванова
Адрес: 123456, Москва, улица Ленина, дом 10, квартира 45
Email: maria.ivanova@example.com
Текст: Lorem ipsum dolor sit amet, consectetur adipiscing elit...


🔎Почему библиотека Faker полезна?

- Разнообразие данных: Поддерживает множество типов данных, включая имена, адреса, номера телефонов, даты, тексты и даже банковские счета.
- Локализация: Может генерировать данные на разных языках (включая русский).
- Простота использования: Легко интегрируется в проекты для быстрой генерации тестовых данных.
- Защита данных: Используйте Faker для замены реальных данных в тестовых средах, чтобы защитить конфиденциальную информацию.

➡️Синтетические данные для машинного обучения

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

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86🔥4
➡️Пример использования Blessings. Создание цветного вывода:
from blessings import Terminal

# Создаем объект терминала
term = Terminal()

# Используем цвета и стили
print(term.bold('Это жирный текст!'))
print(term.red_on_yellow('Красный текст на желтом фоне!'))
print(term.move_down + term.green('Текст ниже предыдущего!'))


➡️Пример позиционирование курсора:
from blessings import Terminal

term = Terminal()

# Перемещаем курсор в конкретную позицию
with term.location(10, 5): # (x=10, y=5)
print("Текст в определенной позиции!")

# Возвращаемся в конец вывода
print(term.move_down + "Конец программы.")


🔎Почему библиотека Blessings полезна?

- Простота: Легко добавлять цвета, стили и управление курсором без сложных escape-последовательностей.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows (с использованием colorama).
- Читаемость кода: Аннотации, такие как term.bold или term.red, делают код более понятным и поддерживаемым.
- Минимальные зависимости: Библиотека легкая и не требует установки множества зависимостей.

💡Blessings — это отличный инструмент для разработчиков, которым нужно создавать красивые и интерактивные CLI-приложения. Она делает работу с терминалом приятной и удобной.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥2
✈️Click — это простая и мощная библиотека Python для создания командных строковых интерфейсов (CLI). Она позволяет легко создавать сложные программы с поддержкой параметров, аргументов и вложенных команд. Благодаря своей гибкости и удобству использования, Click стал одним из самых популярных инструментов для разработки CLI-приложений.

➡️Пример создания простой CLI-программы:
import click

# Основная команда
@click.command()
@click.option('--count', default=1, help='Количество приветствий.')
@click.option('--name', prompt='Введите ваше имя', help='Имя пользователя.')
def hello(count, name):
"""Простая программа для вывода приветствия若干 раз."""
for _ in range(count):
click.echo(f"Привет, {name}!")

if __name__ == '__main__':
hello()


⬆️Как работает этот код:
1. Пользователь запускает программу через терминал.
2. Программа предлагает ввести имя пользователя.
3. Выводит приветствие столько раз, сколько указано в параметре --count.

🔎Почему библиотека Click полезна?
- Простота: Легко создавать CLI-приложения с минимальными усилиями.
- Гибкость: Поддерживает параметры, аргументы, флаги и вложенные команды.
- Автоматическая справка: Автоматически генерирует справку для ваших команд.
- Кроссплатформенность: Работает одинаково хорошо на Linux, macOS и Windows.

💡Заключение
Click — это отличный выбор для разработчиков, которым нужно быстро создавать надежные и удобные CLI-интерфейсы. Он делает работу с терминалом приятной и эффективной.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🔥2
👍62🔥2
Что выдаст код выше
Anonymous Quiz
66%
2 3
3%
3 2
2%
1 2
3%
2 1
17%
2 4
9%
1 3
🤔9🤓5🤨43👍3👌1
🤔Разбор

В тексте переменной txt есть 4 буквы —> индекс последней —> [3]
Заходим в первый try, сразу же запрыгиваем во второй. Пробуем получить txt[5] —> не можем—> ошибку ловит except.
В except'e выводим число 2.

Далее выходим из внутреннего try-except'a и пытаемся получить txt[3] —> удачно —> на следующей строке выводим 3.

В except не заходим, так как все прошло успешно.
Ответ: 2 3


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥4
✈️Tqdm — это компактная и мощная библиотека Python для отображения прогресс-баров в ваших программах. Она позволяет легко добавлять визуальное представление процесса выполнения задач, что особенно полезно при работе с большими данными или длительными вычислениями.

➡️Пример использования Tqdm. Простой прогресс-бар:
from tqdm import tqdm
import time

# Имитация долгой операции
for i in tqdm(range(100)):
time.sleep(0.05) # Задержка для имитации работы


➡️Пример прогресс-бара для обработки файлов:
from tqdm import tqdm
import os

# Список файлов в директории
directory = "my_directory"
files = os.listdir(directory)

# Обработка файлов с прогресс-баром
for file in tqdm(files, desc="Обработка файлов"):
# Имитация обработки файла
time.sleep(0.1)


👀Плюсы:
- Простота интеграции: Достаточно обернуть ваш код в tqdm(), чтобы добавить прогресс-бар.
- Кастомизация: Возможность настраивать внешний вид прогресс-бара (текст, цвета, символы и т.д.).
- Многозадачность: Поддерживает работу с многопоточными и асинхронными программами.
- Универсальность: Может использоваться с любыми итерируемыми объектами, такими как списки, генераторы или даже файловые потоки.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2
Joblib — это библиотека Python, которая специализируется на кэшировании результатов вычислений и упрощении параллельной обработки данных. Она особенно популярна в области машинного обучения для сохранения моделей и оптимизации времени выполнения за счет многопроцессорности.

➡️Пример использования Joblib. Сохранение и загрузка данных:
import joblib

# Исходные данные
data = {
"name": "Alice",
"age": 30,
"skills": ["Python", "Data Science", "Machine Learning"]
}

# Сохраняем данные в файл
joblib.dump(data, 'data.joblib')
print("Данные успешно сохранены!")

# Загружаем данные из файла
loaded_data = joblib.load('data.joblib')
print("Загруженные данные:")
print(loaded_data)


➡️Пример параллельной обработки:
from joblib import Parallel, delayed
import math

# Функция для вычисления квадратного корня
def sqrt(x):
return math.sqrt(x)

# Список чисел
numbers = list(range(1, 21))

# Выполняем вычисления параллельно
results = Parallel(n_jobs=-1)(delayed(sqrt)(num) for num in numbers)

print("Результаты вычислений:")
print(results)


➡️Некоторые преимущества использования Joblib:
- Простота: Joblib упрощает код и скрывает множество деталей, связанных с многозадачностью.
- Меньше накладных расходов: Для некоторых операций Joblib может быть быстрее, чем использование дефолтных механизмов Python (например, multiprocessing).
- Меньше кода: Joblib позволяет распараллелить вычисления с минимальными усилиями.

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

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

➡️Преимущества модульного программирования:
- Читаемость: Разделение кода на модули делает его легче для понимания и чтения.

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

- Тестированиe: Независимые модули проще тестировать, так как их можно проверять изолированно.

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

- Повторное использование кода: Функциональность, определённая в одном модуле, может быть легко использована повторно другими приложениями, что избавляет от необходимости дублирования.

➡️Пример cоздания модуля для работы с числами:
# numbers.py (модуль)
def is_even(number):
"""Проверяет, является ли число четным."""
return number % 2 == 0

def square(number):
"""Возвращает квадрат числа."""
return number ** 2


➡️Использование модуля в основном файле:
# main.py (основной файл)
import numbers

user_input = int(input("Введите число: "))

if numbers.is_even(user_input):
print(f"{user_input} — четное число.")
else:
print(f"{user_input} — нечетное число.")

print(f"Квадрат числа {user_input} равен {numbers.square(user_input)}.")


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥3
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
23👍7🔥4🤣3
✈️Виртуальное окружение — это изолированное пространство для вашего проекта, где вы можете устанавливать необходимые зависимости без конфликтов с другими проектами. Это особенно важно при работе над несколькими проектами, каждый из которых требует разных версий библиотек.

➡️Почему нужны виртуальные окружения?

- Изолирование зависимостей: Каждый проект имеет свои зависимости, и виртуальное окружение помогает избежать конфликтов между ними.

- Упрощение управления: Легко воспроизводить окружение на других компьютерах или передавать его коллегам.

- Чистота системы: Основная система остается чистой, так как все зависимости остаются внутри виртуального окружения.

➡️Создание и использование виртуального окружения:
# Установка модуля venv (если еще не установлено)
python -m venv myenv # Создание виртуального окружения с именем "myenv"

# Активация виртуального окружения
# Для Windows:
myenv\Scripts\activate
# Для macOS/Linux:
source myenv/bin/activate

# Установка зависимостей
pip install requests numpy pandas

# Фиксация зависимостей в файл requirements.txt
pip freeze > requirements.txt

# Установка зависимостей из файла requirements.txt
pip install -r requirements.txt

# Деактивация виртуального окружения
deactivate


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍125🔥2
👍7
Что выдаст код выше
Anonymous Quiz
40%
[1] и [2]
45%
[1] и [1,2]
5%
[1,2] и [1,2]
1%
[2] и [2]
9%
Error
👍9🤔4🤨21
🤔Разбор

Список lst по умолчанию создается один раз при определении функции, а не при каждом вызове.
Поэтому при первом вызове add_to_list(1) список становится [1], а при втором вызове add_to_list(2) к тому же списку добавляется 2, итог — [1, 2].

Это классическая ловушка с изменяемыми аргументами по умолчанию в Python.


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍184🔥4
✈️Алгоритмы сортировки — это методы упорядочивания элементов в определенной последовательности (например, по возрастанию или убыванию). Они являются одними из самых фундаментальных алгоритмов в компьютерных науках и применяются повсеместно, от баз данных до машинного обучения.

➡️Пример реализации алгоритма сортировки. Сортировка пузырьком:
def bubble_sort(arr):
"""Сортировка пузырьком."""
n = len(arr)
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
return arr

# Пример использования
data = [64, 34, 25, 12, 22, 11, 90]
sorted_data = bubble_sort(data)
print("Отсортированный массив:", sorted_data)


➡️Пример реализации более эффективного алгоритма (Quick Sort):
def quick_sort(arr):
"""Быстрая сортировка."""
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
less = [x for x in arr[1:] if x <= pivot]
greater = [x for x in arr[1:] if x > pivot]
return quick_sort(less) + [pivot] + quick_sort(greater)

# Пример использования
data = [64, 34, 25, 12, 22, 11, 90]
sorted_data = quick_sort(data)
print("Отсортированный массив:", sorted_data)


🔎Почему важно знать алгоритмы сортировки?

- Эффективность: Разные алгоритмы имеют разную сложность (например, O(n²) для пузырьковой сортировки и O(n log n) для быстрой сортировки), что влияет на производительность.

- Практическое применение: Сортировка используется везде: от поиска данных до обработки больших наборов информации.

- Обучение логическому мышлению:
Реализация алгоритмов сортировки помогает лучше понимать основы программирования и оптимизации кода.

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥83👍2
🔥8👍3
Что выдаст код выше
Anonymous Quiz
41%
1 2 3
21%
3 3 3
14%
0 1 2
2%
3 2 1
23%
Error
👍83🤨3🤓1