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

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

Канал на бирже: https://telega.in/c/pythonercode
Download Telegram
🤔Разбор

Метод .pop удаляет из списка элемент по индексу, если индекс был передан. У нас индекса передано не было —> он удалит последний элемент (как по умолчанию).

НО! Мы принтуем НЕ список, а результат удаления. Прикол в том, что .pop помимо удаления, еще и возвращает удаленный элемент. То есть в принте будет выведен элемент, который мы удалили —> 'C++'

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


🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤯74😁3👀1
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🤣6🔥3😁1
✈️argparse — это стандартная библиотека Python, которая позволяет создавать программные интерфейсы командной строки с поддержкой различных параметров и опций. С ее помощью можно легко добавлять флаги, позиционные аргументы и необязательные параметры для скриптов. Библиотека особенно полезна для создания утилит или автоматизированных скриптов, которые запускаются из терминала.

➡️Пример просто скрипта, который принимает имя пользователя и выводит приветствие:
import argparse

# Создаем парсер
parser = argparse.ArgumentParser(description="Программа для приветствия пользователя")

# Добавляем аргумент
parser.add_argument('--name', type=str, required=True, help="Имя пользователя")

# Парсим аргументы
args = parser.parse_args()

# Выводим приветствие
print(f"Привет, {args.name}!")


Запустить скрипт:
python script.py --name Alice


⬆️Результат:
Привет, Alice!


➡️Пример с несколькими аргументами:
import argparse

# Создаем парсер
parser = argparse.ArgumentParser(description="Программа для сбора информации о пользователе")

# Добавляем аргументы
parser.add_argument('--name', type=str, required=True, help="Имя пользователя")
parser.add_argument('--age', type=int, default=18, help="Возраст пользователя")
parser.add_argument('--city', type=str, default="Не указан", help="Город проживания")

# Парсим аргументы
args = parser.parse_args()

# Выводим информацию
print(f"Имя: {args.name}")
print(f"Возраст: {args.age}")
print(f"Город: {args.city}")


Запустить скрипт:
python script.py --name Bob --age 25 --city NewYork


⬆️Результат:
Имя: Bob
Возраст: 25
Город: NewYork


🔎Практическое применение:

— Создание утилит для обработки файлов (например, конвертация форматов).

— Разработка автоматизированных скриптов для анализа данных.

— Написание командных инструментов для администрирования систем.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1042
✈️Что такое очистка последовательности?

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


➡️Пример 1: Удаление дубликатов из списка:
# Исходный список
data = [1, 2, 2, 3, 4, 4, 5]

# Удаляем дубликаты с помощью множества
cleaned_data = list(set(data))

print("Исходный список:", data)
print("Очищенный список:", cleaned_data)

Результат:
Исходный список: [1, 2, 2, 3, 4, 4, 5]
Очищенный список: [1, 2, 3, 4, 5]


➡️Пример 2: Удаление пробельных символов из строки:
# Исходная строка
text = " Hello, World! This is a test. "

# Удаляем лишние пробелы
cleaned_text = ' '.join(text.split())

print("Исходная строка:", repr(text))
print("Очищенная строка:", repr(cleaned_text))

Результат:
Исходная строка: '  Hello,   World! This is a test.  '
Очищенная строка: 'Hello, World! This is a test.'


➡️Пример 3: Фильтрация элементов в списке:
# Исходный список
numbers = [3, -1, 0, 7, -5, 2]

# Фильтрация с помощью list comprehension
positive_numbers = [num for num in numbers if num > 0]

print("Исходный список:", numbers)
print("Очищенный список:", positive_numbers)

Результат:
Исходный список: [3, -1, 0, 7, -5, 2]
Очищенный список: [3, 7, 2]


➡️Заключение
Очистка последовательностей — это важный шаг в подготовке данных для анализа или обработки. который даёт чистоту данных, улучшение производительности и правильность результатов.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥43
✈️PyAutoGUI - это библиотека Python, которая позволяет автоматизировать взаимодействие с графическим пользовательским интерфейсом (GUI) на экране. С помощью PyAutoGUI вы можете выполнять различные действия, такие как перемещение мыши, клики, ввод текста, нажатие клавиш, создание скриншотов и многое другое.

➡️Некоторые основные возможности PyAutoGUI:

➡️ Управление мышью: Вы можете перемещать курсор мыши, кликать мышью в различных местах экрана, делать скриншоты и многое другое.

➡️ Управление клавиатурой: PyAutoGUI позволяет эмулировать ввод с клавиатуры, например, ввод текста и нажатие клавиш.

➡️ Определение положения объектов на экране: Библиотека позволяет определять координаты объектов на экране, что полезно при автоматизации задач.

➡️ Работа с окнами программ: PyAutoGUI предоставляет функционал для работы с окнами программ, такой как перемещение и изменение размеров окон.

➡️ Скриншоты: Вы можете делать скриншоты экрана и определять, что находится на экране в определенной области.

➡️ Определение цвета пикселя: Библиотека позволяет определять цвет пикселя на экране, что может быть полезно для определения элементов интерфейса.

💡Будьте осторожны при использовании PyAutoGUI, так как автоматизация взаимодействия с GUI может вызвать неожиданные результаты. Однако, эта библиотека может быть очень полезной в автоматизации рутинных задач или тестировании программного обеспечения.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍124🔥3
✈️Scikit-learn - это библиотека машинного обучения для Python, которая предоставляет инструменты и алгоритмы для построения моделей машинного обучения, обработки данных и оценки их качества.

➡️Основные преимущества Scikit-learn:
— Легкость использования.
— Широкий выбор алгоритмов.
— Хорошая документация и активное сообщество.

➡️Пример: Классификация с использованием метода k-ближайших соседей (k-NN):
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Загружаем набор данных Iris
data = load_iris()
X = data.data # Признаки
y = data.target # Целевые метки

# Разделяем данные на обучающую и тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Создаем модель k-NN
model = KNeighborsClassifier(n_neighbors=3)

# Обучаем модель
model.fit(X_train, y_train)

# Делаем предсказания
predictions = model.predict(X_test)

# Оцениваем точность модели
accuracy = accuracy_score(y_test, predictions)
print(f"Точность модели: {accuracy:.2f}")

⬆️Результат:
Точность модели: 1.00


⬆️Как это работает?
- Загрузка данных: Мы используем встроенный набор данных Iris из sklearn.datasets.

- Разделение данных: Метод train_test_split() разделяет данные на обучающую и тестовую выборки.

- Создание модели: Мы создаем экземпляр классификатора KNeighborsClassifier с параметром n_neighbors=3.

- Обучение модели: Метод .fit() обучает модель на обучающей выборке.

- Оценка точности: Мы сравниваем предсказания модели с реальными значениями и вычисляем точность.

💡Заключение
Scikit-learn — это отличный инструмент для начала работы с машинным обучением. Библиотека содержит множество классических алгоритмов, таких как SVM, случайные леса, наивный Байес и другие, а также инструменты для предобработки данных, выбора признаков, кросс-валидации и оценки моделей. Scikit-learn имеет простой и понятный API, что делает ее прекрасным выбором для начинающих в области машинного обучения.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥54
👴У владельца "Pythoner" появился блог!

Рассказываю про telegram без программирования: https://t.me/+tMKLZLAdrzcwZTVi
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2🥰2👍1
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤣7😁3
✈️DABL (Data Analytics in Business Language) — это библиотека Python, которая упрощает использование машинного обучения для анализа данных. Она предоставляет простой и понятный интерфейс для создания моделей машинного обучения, а также для их обучения и оценки.

🔎Основные возможности DABL:
- Автоматическая предобработка данных.
- Выбор оптимальной модели для задач классификации или регрессии.
- Генерация отчетов о данных и результатах модели.

➡️Пример использования DABL. Допустим, мы хотим решить задачу классификации на основе датасета Iris:
from sklearn.datasets import load_iris
from dabl import SimpleClassifier

# Загружаем набор данных Iris
data = load_iris()
X = data.data # Признаки
y = data.target # Целевые метки

# Создаем и обучаем простой классификатор
clf = SimpleClassifier(random_state=42)
clf.fit(X, y)

# Оцениваем точность модели
print(f"Точность модели: {clf.score(X, y):.2f}")

# Печатаем отчет о данных
clf.report()


⬆️Результат:
Точность модели: 1.00

В отчете clf.report() вы получите подробную информацию о данных, включая статистику признаков, распределение классов и характеристики выбранной модели.


💡Практическое применение:
- Быстрая оценка качества различных моделей на одном наборе данных.
- Автоматическая подготовка данных для машинного обучения.
- Генерация отчетов о данных для аналитических целей.

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

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

# Создаем defaultdict с типом значения по умолчанию — список
my_dict = defaultdict(list)

# Добавляем элементы
my_dict['fruits'].append('apple')
my_dict['fruits'].append('banana')
my_dict['vegetables'].append('carrot')

print(my_dict)


⬆️Результат:
defaultdict(<class 'list'>, {
'fruits': ['apple', 'banana'],
'vegetables': ['carrot']
})


➡️Сравнение с обычным словарем:
# Без defaultdict
my_dict = {}
if 'fruits' not in my_dict:
my_dict['fruits'] = []
my_dict['fruits'].append('apple')

# С defaultdict
my_dict = defaultdict(list)
my_dict['fruits'].append('apple')


⬆️defaultdict делает код чище, удобнее и помогает избежать ошибок.

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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥4
✈️Сегодня решаем задачу, с которой часто сталкиваются аналитики данных: как объединить несколько CSV-файлов в один . Это полезно, если у вас есть данные, разбитые по дням, месяцам или категориям, и вы хотите собрать их в единый датасет для анализа.

➡️Задача: У нас есть несколько CSV-файлов (file1.csv, file2.csv, file3.csv), каждый из которых содержит данные с одинаковой структурой. Нужно объединить их в один файл.

➡️Решение:
import pandas as pd
import glob

# Шаг 1: Собираем все CSV-файлы из папки
files = glob.glob("data/*.csv") # Указываем путь к файлам
dfs = [pd.read_csv(file) for file in files] # Читаем каждый файл в DataFrame

# Шаг 2: Объединяем все DataFrame в один
combined_df = pd.concat(dfs, ignore_index=True)

# Шаг 3: Сохраняем результат в новый CSV-файл
combined_df.to_csv("combined_data.csv", index=False)

print("Все файлы успешно объединены!")


⬆️Как это работает:
- glob.glob("data/*.csv"): Находит все CSV-файлы в указанной папке.

- pd.read_csv(file): Читает каждый файл в DataFrame.

- pd.concat(dfs, ignore_index=True): Объединяет все DataFrame в один, игнорируя старые индексы.

- to_csv("combined_data.csv", index=False): Сохраняет объединённые данные в новый файл без дополнительного индекса.

💡Дополнительно:
Если файлы имеют разную структуру (например, разные столбцы), можно использовать параметр join="inner" или join="outer" в функции pd.concat().

join="inner": Оставит только общие столбцы.
join="outer": Включит все столбцы, заполняя пропуски значением NaN.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥2
✈️Bokeh — это библиотека визуализации данных для создания интерактивных и информативных графиков и диаграмм в веб-приложениях. С её помощью можно легко создавать красивые и наглядные визуализации данных, которые могут быть встроены в веб-страницы.

➡️Пример использования Bokeh:
from bokeh.plotting import figure, show, output_file

# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# Создаем график
plot = figure(title="Простой график", x_axis_label='x', y_axis_label='y')
plot.line(x, y, legend_label="Тренд", line_width=2)

# Сохраняем результат в файл
output_file("line.html")

# Показываем график
show(plot)


⬆️Результат:
После выполнения кода откроется окно браузера с интерактивным графиком, где можно приближать, отдалять и перемещать данные.

➡️Пример добавления интерактивности:
from bokeh.models import HoverTool
from bokeh.plotting import figure, show

# Исходные данные
x = [1, 2, 3, 4, 5]
y = [6, 7, 2, 4, 5]

# Создаем график
plot = figure(title="Интерактивный график", tools="pan,wheel_zoom,box_zoom,reset")
plot.circle(x, y, size=10, color="navy", alpha=0.5)

# Добавляем инструмент HoverTool для подсказок
hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y")])
plot.add_tools(hover)

# Показываем график
show(plot)


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

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥2
Forwarded from IT memer
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16🤣9👍2
✈️Что такое itertools.chain?
itertools.chain — это полезная функция из стандартной библиотеки Python для объединения нескольких итерируемых объектов (списки, кортежи и т.д.) в один. Она помогает обходить несколько коллекций последовательно, как будто они являются одной.

➡️Пример объединение списков:
from itertools import chain

# Исходные данные
list1 = [1, 2, 3]
list2 = [4, 5, 6]
list3 = [7, 8, 9]

# Объединяем списки с помощью chain
combined = chain(list1, list2, list3)

print("Объединенный результат:")
for item in combined:
print(item, end=" ") # Вывод: 1 2 3 4 5 6 7 8 9


➡️Пример использования itertools.chain с разными типами данных:
from itertools import chain

# Разные типы данных
data1 = [10, 20, 30]
data2 = ('a', 'b', 'c')
data3 = range(3)

# Объединяем все вместе
result = list(chain(data1, data2, data3))

print("Результат после объединения:")
print(result) # Вывод: [10, 20, 30, 'a', 'b', 'c', 0, 1, 2]


💡itertools.chain позволяет эффективно работать с несколькими последовательностями как с одной, не создавая дополнительных списков и не тратя лишние ресурсы на их хранение в памяти.

🐍 Pythoner
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🤔4🗿1
👍8
Что выдаст код выше
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