PythonDev
74 subscribers
7 photos
1 video
18 files
60 links
Канал, где рассказывают по Python

Админ - @mistcoder, @ALRU8
Донат - https://t.me/send?start=IVawE0JR96oZ
Download Telegram
🪟С НОВЫМ ГОДОМ!!!🪟
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉7
2️⃣0️⃣2️⃣5️⃣
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉4👨‍💻3
Создание GIF из изображений с помощью Python

Если у вас есть набор изображений, из которых вы хотите создать GIF, Python предоставляет простой способ сделать это с использованием только встроенных модулей и PIL (библиотека Pillow).

С этим лайфхаком вы сможете легко и быстро создавать GIF, используя только Python и набор изображений.

PythonDev
✔️Boost
Сотрудничество - @mistcoder
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻2👍1
David_Amos,_Dan_Bader,_Joanna_Jablonski,_Fletcher_Heisler_Python.pdf
6.5 MB
🐍Python Basics: A Practical Introduction to Python 3
Авторы: David Amos, Dan Bader, Joanna Jablonski, Fletcher Heisler (2021)
—————
🐍Основы Python: Практическое введение в Python 3
Авторы: Дэвид Амос, Дэн Бадер, Джоанна Яблонски, Флетчер Хейслер (2021)

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Анализ текста
import re
from collections import Counter

def analyze_text(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
text = file.read()

# Подсчет количества символов
num_characters = len(text)

# Подсчет количества слов
words = re.findall(r'\b\w+\b', text)
num_words = len(words)

# Подсчет количества предложений
sentences = re.split(r'[.!?]+', text)
num_sentences = len([s for s in sentences if s.strip()])

# Подсчет наиболее часто встречающихся слов
word_counts = Counter(words)
most_common_words = word_counts.most_common(5)

# Вывод результатов
print(f"Количество символов: {num_characters}")
print(f"Количество слов: {num_words}")
print(f"Количество предложений: {num_sentences}")
print("Наиболее часто встречающиеся слова:")
for word, count in most_common_words:
print(f"{word}: {count}")

def main():
file_path = input("Введите путь к текстовому файлу: ")
analyze_text(file_path)

if __name__ == "__main__":
main()


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

PythonDev
✔️Boost
Сотрудничество - @mistcoder
➡️Донат

#скрипт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Pragmatic Python Programming Learning....pdf
3.3 MB
🐍Pragmatic Python Programming: Learning Python the Smart Way
Автор: Gabor Gut (2022)
—————
🐍Прагматичное программирование на Python: Изучение Python с умом
Автор: Габор Гут (2022)

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#книга
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
😂 ИИ для жизни:

1️⃣ futurebaby:
Этот инструмент создает изображение будущего ребенка на основе фотографий двух родителей. Вы загружаете свои фото, и приложение генерирует лицо вашего малыша.

2️⃣ sync:
Sync синхронизирует движения губ на видео с звуковой дорожкой. Вы загружаете видео и выбираете озвучку, а приложение автоматически подстраивает движение губ к речи.

3️⃣ kolors-virtual:
Kolors-virtual позволяет переодевать человека на фото в любую одежду из большой библиотеки стильных нарядов. Просто загрузите свое фото и выберите, какую одежду хотите увидеть.

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4211
🪐ИИ на каждый день

➡️ mathos ai:
Этот инструмент решает любые математические задания на основе фото или текстового запроса, предоставляя подробные объяснения. Просто загрузите изображение задачи или напишите её текст — и получите решение с пояснениями.

➡️ prezapro:
Prezapro превращает заданную тему в готовую презентацию с текстом и изображениями. Пользователь указывает тему, и приложение автоматически формирует слайды, наполняя их нужной информацией и подходящими картинками.

➡️ language reactor:
Language Reactor предлагает инструменты для изучения языков на основе сериалов, фильмов и видео. Пользователь может смотреть контент с субтитрами, повторять фразы и учить новые слова в контексте, что помогает лучше запоминать язык.

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1
reversed()

Модуль reversed() в Python используется для получения итератора, который возвращает элементы последовательности в обратном порядке. Этот модуль может быть применен к различным типам последовательностей, таким как списки, строки и кортежи.

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👎1
Pyautogui

import pyautogui
import time

# Задержка перед началом выполнения
time.sleep(5)

# Перемещение курсора в центр экрана
width, height = pyautogui.size()
pyautogui.moveTo(width / 2, height / 2, duration=1)

# Клик мышью
pyautogui.click()

# Ввод текста
pyautogui.typewrite('Hello, world!', interval=0.1)

# Нажатие клавиши Enter
pyautogui.press('enter')


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

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3
🎯ИИ на каждый день

Edify:
• Этот инструмент позволяет создавать 3D модели на основе изображения или текстового описания. Это полезно для дизайнеров, художников и разработчиков игр, которые хотят быстро визуализировать свои идеи

Sound Verse:
• Приложение генерирует музыкальные композиции на основе описаний или в ходе голосового диалога с нейронной сетью. Это может быть использовано музыкантами для создания оригинальных треков или поиска вдохновения.

Dzine:
• Редактор, который предлагает различные инструменты для изменения, улучшения и обработки графики или 3D моделей. Будь то замена объектов, изменение текстур или настройка освещения — этот инструмент позволяет пользователю легко редактировать свои проекты.

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
😎ИИ на каждый день

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

🪐 Hailuo: Это платформа, которая считается конкурентом ChatGPT. Пользователи сообщают, что Hailuo справляется с задачами на уровне, а иногда и лучше, чем платные версии GPT. Предполагается, что она предлагает более доступный способ взаимодействия с ИИ.

💥 Kinetix: Этот сервис предоставляет возможность превращать пользователей в анимационных персонажей, вдохновленных мультфильмами. Пока что он находится на этапе ожидания доступа (waiting list), но в дальнейшем обещает открывать новые горизонты для креаторов контента и аниматоров.

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#сервис
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2
Что выведет код?
Anonymous Quiz
14%
3 3
46%
4 3
9%
4 2
31%
3 2
👨‍💻32
💻 В комментариях просили рассказать про работу с некоторыми типами БД, ну так что, делаем 😉

0️⃣ Пример работы с PostgreSQL

import psycopg2

conn = psycopg2.connect(
    database="your_db",
    user="your_user",
    password="your_password",
    host="localhost",
    port="5432"
)

cursor = conn.cursor()

# Примерчик создания таблицы
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100),
    age INT
)
""")
conn.commit()

# Пример по добавлению данных
cursor.execute("INSERT INTO users (name, age) VALUES (%s, %s)", ("Alice", 30))
conn.commit()

# Забор данных из БД
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:
    print(row)

# В конце закрываем соединение
cursor.close()
conn.close()


1️⃣ Пример работы с MongoDB

from pymongo import MongoClient

client = MongoClient('localhost', 27017)
db = client['your_db']
collection = db['users']

# Вставка документа
collection.insert_one({"name": "Alice", "age": 30})

# Запрос документов
users = collection.find()
for user in users:
    print(user)

# Закрытие соединения
client.close()


2️⃣ Пример работы с Redis

import redis

r = redis.Redis(host='localhost', port=6379, db=0)

# Установка значения ключа
r.set('name', 'Alice')

# Получение значения ключа
name = r.get('name')
print(name.decode('utf-8'))  # Декодируем байты в строку

# Работа со списком в Redis
r.lpush('users', 'Alice')
r.lpush('users', 'Bob')

# Получение всех пользователей из списка (как пример)
users = r.lrange('users', 0, -1)
for user in users:
    print(user.decode('utf-8'))


3️⃣ Пример работы с ClickHouse

from clickhouse_driver import Client

client = Client(host='localhost')

# Создание таблицы
client.execute("""
CREATE TABLE IF NOT EXISTS users (
    id UInt32,
    name String,
    age UInt32
) ENGINE = MergeTree() ORDER BY id;
""")

# Вставка данных
data = [(1, 'Alice', 30), (2, 'Bob', 25)]
client.execute("INSERT INTO users (id, name, age) VALUES", data)

# Запрос данных
rows = client.execute("SELECT * FROM users")
for row in rows:
    print(row)

✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Модуль HUMANIZE

Модуль humanize в Python предоставляет удобные функции для преобразования чисел, дат и других данных в более "человекочитаемый" формат. Это может быть полезно, например, для отображения времени, размеров файлов, чисел и других данных в более понятной форме.

import humanize
import datetime

# Преобразование числа
print(humanize.intcomma(1234567)) # 1,234,567

# Преобразование времени
now = datetime.datetime.now()
past = now - datetime.timedelta(minutes=10)
print(humanize.naturaltime(past)) # 10 minutes ago

# Преобразование размера файла
print(humanize.naturalsize(1024)) # 1.0 KB

✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42👍2
itertools.groupby()
Эта функция позволяет группировать последовательности по ключу, что может быть очень полезно при обработке данных.


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

from itertools import groupby

# Исходные данные
people = [
{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 30},
{'name': 'Charlie', 'age': 25},
{'name': 'David', 'age': 30},
{'name': 'Eve', 'age': 35},
]

# Сортируем список по возрасту, так как groupby требует отсортированных данных
people.sort(key=lambda x: x['age'])

# Группируем по возрасту
grouped_people = groupby(people, key=lambda x: x['age'])

# Выводим результат
for age, group in grouped_people:
print(f'Age: {age}')
for person in group:
print(f' Name: {person["name"]}')

Вывод:
Age: 25
Name: Alice
Name: Charlie
Age: 30
Name: Bob
Name: David
Age: 35
Name: Eve


✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥22
Перевод чисел между системами счисления

В Python можно легко осуществить перевод чисел между различными системами счисления с помощью встроенных функций и методов

Перевод из десятичной системы в другие системы
Для перевода числа из десятичной системы в двоичную, восьмеричную или шестнадцатеричную можно использовать функции bin(), oct() и hex() соответственно.
# Десятичное число
decimal_number = 42

# Перевод в двоичную систему
binary_number = bin(decimal_number) # '0b101010'
print(binary_number)

# Перевод в восьмеричную систему
octal_number = oct(decimal_number) # '0o52'
print(octal_number)

# Перевод в шестнадцатеричную систему
hexadecimal_number = hex(decimal_number) # '0x2a'
print(hexadecimal_number)



Перевод из других систем в десятичную
Для перевода числа из двоичной, восьмеричной или шестнадцатеричной систем в десятичную можно использовать функцию int(), указав основание системы счисления.
# Двоичное число
binary_string = '101010'
decimal_from_binary = int(binary_string, 2)
print(decimal_from_binary) # 42

# Восьмеричное число
octal_string = '52'
decimal_from_octal = int(octal_string, 8)
print(decimal_from_octal) # 42

# Шестнадцатеричное число
hex_string = '2a'
decimal_from_hex = int(hex_string, 16)
print(decimal_from_hex) # 42



Перевод числа в произвольную систему счисления
Если вам нужно перевести число в систему счисления с произвольным основанием (например, от 2 до 36), можно написать свою функцию:
def convert_to_base(n, base):
if n < 0:
return '-' + convert_to_base(-n, base)
elif n == 0:
return '0'

digits = []
while n:
digits.append(int(n % base))
n //= base

# Для систем счисления выше 10 используем буквы
digits = digits[::-1]
return ''.join(str(x) if x < 10 else chr(x - 10 + ord('A')) for x in digits)

# Пример использования
number = 42
base = 16
converted = convert_to_base(number, base)
print(f"{number} в системе счисления с основанием {base} равно {converted}")


✈️ Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6221👎1🔥1
Генератор — это функция, которая возвращает итератор. Вместо return она использует ключевое слово yield, приостанавливая своё выполнение до следующего обращения.

Простой генератор
def countdown(n):
while n > 0:
yield n
n -= 1

for num in countdown(5):
print(num)

Вывод:
5
4
3
2
1

👉 Здесь countdown(5) не создаёт список [5, 4, 3, 2, 1], а генерирует числа по одному при каждом вызове next().

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍541
🔥10 мощных Python-трюков, которые сделают ваш код лучше

📌 Обмен значений без временной переменной:
a, b = 5, 10
a, b = b, a # Теперь a=10, b=5

Работает с любым количеством переменных!


📌 Распаковка последовательностей с *

first, *middle, last = [1, 2, 3, 4, 5]
# first=1, middle=[2,3,4], last=5

Идеально для обработки строк и логов:
date, *metrics = "2023-05-15 100 200 300".split()



📌 Тернарный оператор с or для fallback-значений
name = user_input or "Гость"

Работает быстрее, чем if-else, когда нужно значение по умолчанию


📌 Слияние словарей (Python 3.9+)
dict1 = {'a': 1}
dict2 = {'b': 2}
merged = dict1 | dict2 # {'a':1, 'b':2}

Для старых версий: {**dict1, **dict2}


📌 Быстрое создание списка из строки
chars = [*"Hello"]  # ['H','e','l','l','o']

Альтернатива list("Hello"), но с возможностью фильтрации:
[*filter(str.isupper, "HeLLo")]  # ['H','L','L']



📌 Обратный порядок с [::-1]
numbers = [1, 2, 3]
reversed = numbers[::-1] # [3,2,1]

Работает для строк, кортежей и любых последовательностей!


📌 enumerate с начальным индексом
for i, item in enumerate(items, start=1):
print(f"{i}. {item}")

Полезно для нумерации вывода в консоли


📌 Проверка нескольких условий через in
if status in ("success", "pending", "processing"):
# Вместо status=="success" or status=="pending"...

Для больших множеств используйте set — проверка O(1)


📌 Генераторы словарей с условиями
users = {u.id: u for u in users if u.active}

Можно комбинировать с zip:
{key: value for key, value in zip(keys, values) if value}



📌 Дебаг через = (Python 3.8+)
print(f"{user_id=} {timestamp=}")
# Выведет: user_id=42 timestamp=1689876543

Избавляет от ручного форматирования логов


👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👨‍💻3🎉21
👩‍💻 Пошаговый обучающий урок по работе с Excel через Python

————————

📚Шаг 1: Установка библиотеки
Установите библиотеку openpyxl, которая позволяет работать с Excel файлами:
pip install openpyxl


————————

📚Шаг 2: Открытие файла
Откройте существующий Excel файл:
import openpyxl

workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active


————————

📚Шаг 3: Запись данных в ячейку
Запишите значение в ячейку:
sheet['A1'] = 'Пример текста'
workbook.save('example.xlsx')  # Сохранение изменений в тот же файл


————————

📚Шаг 4: Запись формулы
Запишите формулу в ячейку:
sheet['B1'] = "=SUM(A2:A10)"  # Пример формулы для суммы диапазона
workbook.save('example.xlsx')  # Сохранение изменений в тот же файл

Важно: Формулы вычисляются только в Excel, а не Python.

————————

📚Шаг 5: Считывание данных из ячейки
Считайте данные из конкретной ячейки, например, A1:
cell_value = sheet['A1'].value
print(f"Значение в ячейке A1: {cell_value}")


————————

📚Шаг 6: Считывание значения после выполнения формулы
Чтобы считать значение формулы, откройте файл с параметром data_only=True:
workbook = openpyxl.load_workbook('example.xlsx', data_only=True)
sheet = workbook.active
result = sheet['B1'].value
print(f"Результат формулы: {result}")


————————

👩‍💻 Более подробно обо всех функциях данной библиотеки вы можете прочитать в официальной документации: тык

👨‍💻 Пишите свои идеи и пожелания, про что нам еще рассказать, в комментариях 👇

PythonDev
✔️Boost
Сотрудничество - @mistcoder, @ALRU8
➡️Донат

#обучение
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32👎11