Python Hub - сборище Питонистов
1.71K subscribers
657 photos
1 video
37 files
276 links
Уголок счастья для любого питониста.

Сотрудничество или заказы: @leshunist

https://shcoder.dev - студия разработки ShcoderDevelopment

https://t.me/pythonhub_chat - чат
Download Telegram
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Как работает zip? То есть функция берёт на вход несколько списков и создаёт из них список (в Python 3 создаётся не list, а специальный zip-объект) кортежей, такой, что первый элемент полученного списка содержит кортеж из первых элементов всех списков-аргументов.
Пример:
s = 'abc'
>>> t = (10, 20, 30)
>>> u = (-5, -10, -15)

>>> list(zip(s,t,u))
[('a', 10, -5), ('b', 20, -10), ('c', 30, -15)

Я думаю, что такой пример будет вполне хорош для описания
👍10
👀 Магия метода str.join()

🪄В мире Python есть такая штука — str.join(). Это как волшебная палочка, которая соединяет слова, фразы или элементы списка в одну большую строку. Представьте себе, что вы устраиваете вечеринку и хотите объединить всех друзей в круг. str.join() — это как магия, которая собирает всех вместе!

🔍Давайте посмотрим, как это работает на практике:

# Допустим, у нас есть список слов
words = ["Привет", "мир", "я", "Python"]

# И мы хотим объединить их в предложение
sentence = ' '.join(words)
print(sentence)


🖥 В результате этого кода мы получим строку: "Привет мир я Python".

Как это работает?

➡️ join() берет список (words в нашем случае) и использует пробел ' ' в качестве "клея", чтобы соединить все слова в одну строку.
В результате каждый элемент списка становится частью большой строки, разделенной пробелами или любым другим символом, который мы укажем перед join().

👨‍💻 Еще один пример:

users = ["RimMirK", "Anuke", "compuser"]

result = ', '.join(users)
print(result) # "RimMirK, Anuke, compuser"


😎 Тут мы соединили пользователей с через запятую
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from RimMirK
🔥😉🟣😍🙃😅😍😀🟣 🥶🤓

🗣️ В прошлый раз я обещал научить вытаскивать данные из сообщения, этим и займёмся!

🔍Давайте с начала просто посмотрим из чего состоит получаемый объект

@app.on_message(filters.command(["start"], prefixes="."))
async def start(_, msg):
print(msg)
👀В результате увидим много всяких данных. Самые часто используемые - id, text, from_user, chat reply_to_message(сообщение на которое ответили).

🖥 Чтобы достать определенное значение надо перечислить ключи к нему через точку:

msg.text
msg.chat.id
msg.reply_to_message.date

🖥 Теперь попробуем на практике, поприветствуем новых участников в группе

@app.on_message(filters.chat([123,456]) & filters.new_chat_members)
async def welcome(_, msg):
new_members = [u.mention for u in msg.new_chat_members]
text = 'Привет, ' + ", ".join(new_members) + "!"
await msg.reply(text, True disable_web_page_preview=True)
👨‍💻 Разберем этот код
🌝Создаем Декоратор:
🌝1️⃣ Из определенных чатов ([123,456])
🌝2️⃣ Для новых участников
🌝Создаем функцию
И тут начинается самое то, что нас интересует
🌝Перебираем список новых участников, и из них берем параметр mention - имя с ссылкой.
🌝Формируем текст сообщения, соеденяя список из новый участников с помощью *str.join()* (о нем мы говорили в прошлом посте 👆)
🌝Отвечаем на сообщение ответом и без предпросмотора ссылок

#️⃣Итог
Мы научились доставать данные из сообщения и вспомнили фильтры с обработчиками.

👋До новых встреч!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🤯1
Python Hub - сборище Питонистов
Photo
Разбор 👨‍💻

Мы привыкли использовать функцию sum() для подсчета суммы элементов в списке.
Но тут немного другая история.

Как видно из кейса, мы передаем в sum два аргумента. Первый - это список со списками. А второй - это список, в который мы все будем собирать.
То есть, если бы наш второй аргумент был НЕ пустым списком, а имел в себе какие-то элементы, то наш финальный результативный список начинался бы как раз с этих элементов.
👍5
‼️Создать базу данных SQLite через Python‼️

В Python для работы с SQLite мы будем использовать модуль sqlite3, который входит в стандартную библиотеку Python. Начнем с импорта модуля и создания соединения с базой данных:

import sqlite3

# Создание соединения с базой данных
conn = sqlite3.connect('mydatabase.db')


После создания соединения мы можем создать таблицы в нашей базе данных. Вот пример создания таблицы "users":

# Создание таблицы "users"
conn.execute('''CREATE TABLE users
(id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER NOT NULL);''')


Вставка данных в базу данных

После создания таблицы мы можем добавить данные в базу данных. Для этого мы можем использовать метод execute() и executemany() для вставки одной или нескольких строк данных соответственно. Вот пример вставки данных в таблицу "users":

# Вставка данных в таблицу "users"
conn.execute("INSERT INTO users (name, age) VALUES ('John Doe', 25)")
conn.execute("INSERT INTO users (name, age) VALUES ('Jane Smith', 30)")
conn.executemany("INSERT INTO users (name, age) VALUES (?, ?)", [('Alice Johnson', 35), ('Bob Brown', 40)])
👍6
🐍 Разбор 👨‍💻

Разберем код построчно:
🌝Создаём переменную со списком [6, 0] и сразу его переворачиваем -> l = [0, 6]
🌝Выводим этот список. На экране [0, 6]
🌝Проходимся по нашему списку через enumrate. Enumeratе это генератор, который выдает следующий елемент списка и его порядковый номер. Первый параметр принимает итерируемый объект.

for i, e in enumerate(['a', 'b', 'c']):
print(i, e) # a 0, b 1, c 2


Второй параметр - это с какого числа начинать отсчет.


for i, e in enumerate(['a', 'b', 'c'], 3):
print(i, e) # a 3, b 4, c 5


🌝Выводим изначальный список. Он выведется два раза тк цикл сработает два раза

Вывод: [0, 6] [0, 6] [0, 6]
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🏆1
❗️Создать базу данных при помощи SQLAlchemy в Python


SQLAlchemy - это популярная библиотека для работы с базами данных в Python. Она предоставляет удобные инструменты для создания, изменения и управления базами данных с помощью объектно-реляционного отображения (ORM).

🔻 Создание моделей данных

Первый шаг в создании базы данных с использованием SQLAlchemy - это определение моделей данных. Модель данных - это класс, который описывает структуру таблицы в базе данных. Каждый атрибут класса представляет собой столбец в таблице, а каждый экземпляр класса - строку в таблице.

Например, допустим, мы хотим создать базу данных для хранения информации о пользователях. Мы можем создать класс User, который будет представлять каждого пользователя в базе данных. В этом классе мы определим атрибуты, такие как id, name и email, которые будут соответствовать столбцам в таблице.

🔻 Создание таблицы в базе данных

После определения моделей данных мы можем создать таблицы в базе данных. SQLAlchemy предоставляет метод create_all(), который автоматически создает все таблицы, определенные в моделях данных.

Пример:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

# Создание движка базы данных
engine = create_engine('sqlite:///mydatabase.db')

# Создание сессии
Session = sessionmaker(bind=engine)
session = Session()

# Создание базовой модели
Base = declarative_base()

# Определение модели данных
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
email = Column(String)

# Создание таблиц
Base.metadata.create_all(engine)
👍4