❃ Хижина программиста Æ
16.6K subscribers
1.09K photos
74 videos
21 files
2.49K links
Канал для IT Дизайнеров и Программистов, Инженеров и Преподавателей

📡 Ссылка на канал: @hut_programmer_07

⚖️ Фундаментальные знания по основам программирования, философии и этики

💡 По вопросам рекламы: @quadd4rv1n7

Σ 只
Download Telegram
Formation Studio — это инструмент, разработанный для упрощения создания графических пользовательских интерфейсов (GUI) на Python с использованием библиотеки tkinter.

Предоставляет возможности drag-and-drop для разработки интерфейсов, позволяя сосредоточиться на функциональности продукта и дизайне, а не на ручном кодировании элементов интерфейса.

Основные особенности:
🔵Визуальный редактор интерфейсов: позволяет создавать GUI с помощью перетаскивания виджетов, что ускоряет процесс разработки и снижает вероятность ошибок.
🔵Генерация кода: автоматически генерирует код на Python для созданных интерфейсов, облегчая интеграцию с основной логикой приложения.
🔵Поддержка форматов XML и JSON: позволяет сохранять и загружать проекты в этих форматах, обеспечивая совместимость и удобство работы с проектами.
🔵Расширяемость: предоставляет возможности для добавления пользовательских виджетов и расширения функциональности редактора.

➡️Установка библиотеки: pip install formation-studio

📱 Репозиторий
⚙️ Документация

➡️ Хижина программиста 🌎

Ставьте «
🥰», если пост вам понравился

⌨️ Теги:
#аналитика
#интерфейс
#python
#gui
#maestro7it
#maximdupley
#quadd4rv1n7
#2025
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Метод Python numpy.where(): синтаксис и как использовать

import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])

result = np.where(matrix % 2 == 0, 'четное', 'нечетное')
print(result)


import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
result = np.where((arr > 3) & (arr < 7), arr * 2, arr)
print(result)


💡 Работа с температурными данными

Предположим, у нас есть массив температур, и мы хотим классифицировать их как «жарко» или «комфортно».

import numpy as np

temperatures = np.array([23, 25, 28, 32, 35, 29])
status = np.where(temperatures > 30, 'жарко', 'комфортно')
print(status)


numpy.where() особенно полезен для работы с большими массивами данных, где важна высокая производительность и требуется выполнение простых условных операций.

Для сложной логики обработки данных или пошагового выполнения операций циклы остаются более подходящим выбором, особенно при работе с небольшими объемами данных.

В свою очередь, List Comprehension хорошо подходит для компактного и читаемого кода при работе с небольшими и средними наборами данных, если операции не слишком сложны.


➡️ Хижина программиста | Оставляйте «бусты» 🌎

Ставьте «
🥰», если пост вам понравился

⌨️ Теги:
#python
#where
#пайтон
#quadd4rv1n7
#maximdupley
#maestro7it
#2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📕 Пишем отложенные сообщения для ВК на питоне

import time
from selenium import webdriver
from selenium.webdriver.common.by import By


dt = [int(i) for i in input("Введите дату отправки в формате mm:dd ").split(":")]
tm = [int(i) for i in input("Введите время отправки в формате hh:mm:ss: ").split(":")]
receivers = input("Вставьте ссылки получателей через запятую без пробелов: ").split(",")
message = input("Введите сообщение: ")

while True:
if (tm[0] == time.localtime().tm_hour and tm[1] == time.localtime().tm_min and tm[2] == time.localtime().tm_sec\
and dt[0] == time.localtime().tm_mon and dt[1] == time.localtime().tm_mday):
urls = ["https://vk.com/?to=c3RpbGxtb3J0YWw-",
"/html/body/div[14]/div/div/div/div[3]/div/div/div[2]/div[1]/div/div/section/div/div/div/div/div/div[2]/div/button[1]/span/span",
"/html/body/div[14]/div/div/div/div[3]/div/div/div[2]/div[1]/div/div/section/div/div/div/div/div/form/div[1]/div[3]/span/div/div[2]/input",
"/html/body/div[14]/div/div/div/div[3]/div/div/div[2]/div[1]/div/div/section/div/div/div/div/div/form/button[1]/span",
"/html/body/div[1]/div/div/div/div/div[1]/div[1]/div/div/div/div/form/div[3]/button/span/span",
"/html/body/div[1]/div/div/div/div/div[2]/div/div[2]/div/div/div/div/div[2]/div[1]/div/div/div[4]/div[2]/div[1]/span",
"/html/body/div[1]/div/div/div/div/div[1]/div[1]/div/div/div/div/form/div[1]/div[3]/div/div/input",
"/html/body/div[1]/div/div/div/div/div[1]/div[1]/div/div/div/div/form/div[2]/button[1]/span",
]

urls_send = ["//*[@id='mail_box_editable']",
"//*[@id='mail_box_send']/span/span"]

friend = "//*[@id='profile_redesigned']/div/div/div/div[2]/div[2]/div[2]/div/div[2]/div/div/div/div[1]/a/span/span"
not_friend = "#profile_redesigned > div > div > div > div.ProfileHeader.ProfileHeader--withSnowballs > div.ProfileHeader__in > div.ProfileHeader__wrapper > div > div.ProfileHeader__actions > div > div > div > div:nth-child(2) > a > span > span > svg"

# entrance
browser = webdriver.Chrome()
browser.maximize_window()

browser.get(urls[0])

time.sleep(5)

search = browser.find_element(By.XPATH, urls[1])
search.click()

time.sleep(5)

search = browser.find_element(By.XPATH, urls[2])
search.send_keys("login")

time.sleep(5)

search = browser.find_element(By.XPATH, urls[3])
search.click()

time.sleep(5)

search = browser.find_element(By.XPATH, urls[4])
search.click()

time.sleep(5)

search = browser.find_element(By.XPATH, urls[5])
search.click()

time.sleep(5)

search = browser.find_element(By.XPATH, urls[6])
search.send_keys("password")

time.sleep(5)

search = browser.find_element(By.XPATH, urls[7])
search.click()

time.sleep(5)

# sending
for receiver in receivers:
browser.get(receiver)

time.sleep(5)

try:
search = browser.find_element(By.CSS_SELECTOR, not_friend)
search.click()
except Exception:
search = browser.find_element(By.XPATH, friend)
search.click()

time.sleep(5)

search = browser.find_element(By.XPATH, urls_send[0])
search.send_keys(message)

time.sleep(5)

search = browser.find_element(By.XPATH, urls_send[1])
search.click()
print(time.localtime())
time.sleep(1)


➡️ Хижина программиста | Оставляйте «бусты» 🌎

Ставьте «
🥰», если пост вам понравился

⌨️ Теги:
#python
#lesson
#аналитика
#quadd4rv1n7
#maximdupley
#maestro7it
#2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
💬 PEP 8 – это основополагающий стиль программирования в Python, и следовать ему настоятельно рекомендуется.

Инструмент pycodestyle позволяет автоматически проверять код на соответствие этому стандарту.

⚡️ Альтернативные инструменты:

- flake8 – более мощный анализатор кода, объединяет pycodestyle, pyflakes и mccabe.
- black – автоформаттер кода, следит за PEP 8 и правит стиль автоматически.
- isort – сортирует импортированные модули.

🚀 Вывод: Использование pycodestyle и других инструментов помогает поддерживать чистоту и читаемость кода, а также облегчает командную работу.

➡️ Хижина программиста | Оставляйте «бусты» 🌎

Ставьте «🥰», если пост вам понравился

⌨️ Теги:
#python
#аналитика
#maestro7it
#maximdupley
#quadd4rv1n7
#2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Ловите небольшой лайфхак для тех, кто работает с FastAPI

Иногда возникает необходимость скрыть отдельные методы из Swagger-документации (автоматически генерируемого интерфейса). Например, если у вас есть служебные эндпоинты, которые не стоит светить наружу.

Вот как это легко сделать 👇

@router.post("/secret/", include_in_schema=False)
async def my_secret():
# Ваш код здесь
pass


💡 Ключевой параметрinclude_in_schema = False
Он говорит FastAPI не включать метод в OpenAPI-схему, а значит, и в Swagger он не попадёт

➡️ Хижина программиста | Оставляйте «бусты» 🌎

Ставьте «🥰», если пост вам понравился

⌨️ Теги:
#аналитика
#api
#python
#fastapi
#analytics
#maximdupley
#quadd4rv1n7
#maestro7it
#2025
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1👌1🕊1