Pythoner
Open in Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
Show more6 617
Subscribers
No data24 hours
-57 days
-2930 days
Posts Archive
6 616
➡️Давайте создадим Python-файл со следующим скриптом для проверки переменных. Для чтения значений переменных мы используем модуль os, а модуль sys — для прекращения работы приложения.
➡️Бесконечный цикл while непрерывно принимает от пользователя имена переменных и проверяет их значения до тех пор, пока пользователь не введёт имя переменной, которой не присвоено значение.
➡️Если пользователь вводит имя переменной окружения, которой присвоено значение, это значение выводится, если же нет — выводится соответствующее сообщение и процесс останавливается.
🐍Pythoner
6 616
➡️PySimpleGUI — это популярный фреймворк для создания простых графических интерфейсов пользователя.
Он позволяет быстро создавать интерфейсы при помощи Python, без необходимости изучать сложные GUI библиотеки, такие как
Tkinter, Qt или wxPython.
🔎PySimpleGUI широко используется для создания небольших утилит и инструментов с GUI, например:
— Простые GUI для скриптов автоматизации.
— Инструменты для обработки и визуализации данных.
— Маленькие вспомогательные приложения для повседневных задач.
➡️Основные преимущества PySimpleGUI:
💬Простой и интуитивно понятный синтаксис.
💬Кроссплатформенность: работает на Windows, MacOS, Linux.
💬Встроенная поддержка многих виджетов и тем оформления.
💬Автоматическое размещение элементов GUI.
🐍Pythoner6 616
➡️Сегодня поговорим об одном интересном концепте из области функционального программирования. Использовать будем функцию partial из стандартной библиотеки functools.
Предоставление функции меньшего количества аргументов, чем она ожидает, называется частичным применением функций.
➡️Другими словами, это такая функция, которая принимает другую функцию с несколькими параметрами и возвращает функцию, но уже с меньшим количеством параметров.
🐍Pythoner
6 616
🚀 Отправляемся в мир Django: ваш первый проект в веб-разработке
22 июля в 19:00 мск — не пропустите открытый урок
Что ждет вас на вебинаре:
- основы Django: краткий обзор архитектуры, установка и создание нового проекта;
- ваше первое приложение: определение и регистрация простой модели данных, создание представления и маршрута для отображения информации на странице;
- работа с шаблонами: использование шаблонов для отображения данных в браузере.
Спикер — опытный системный инженер, веб-разработчик и преподаватель.
Встречаемся в преддверии старта курса «Специализация Python Developer». Все участники вебинара получат специальную цену на обучение.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок: https://otus.pw/n0ZE/?erid=LjN8Jvddb
6 616
🔎Генераторы являются одной из мощных возможностей языка Python. Они позволяют создавать итерируемые объекты без необходимости хранить все значения в памяти.
➡️Что такое генераторы?
Генераторы в Python - это функции, которые возвращают последовательность значений во время выполнения. Они работают по принципу "ленивого вычисления", то есть значения генерируются по мере необходимости. Генераторы используют ключевое слово
yield для возврата значений вместо return, как это делается в обычных функциях.
➡️Преимущества генераторов
Генераторы предлагают несколько преимуществ, особенно когда речь идет о работе с большими объемами данных. Во-первых, используя генераторы, мы можем сэкономить память, так как значения необходимо хранить только во время их генерации. Во-вторых, генераторы могут быть бесконечными, что позволяет работать с бесконечными последовательностями данных. В-третьих, генераторы могут быть использованы для ленивой обработки данных, когда нужно обрабатывать данные по мере их получения, а не все сразу.
➡️Как использовать генераторы?
Для создания генератора в Python нужно определить функцию, внутри которой будет использоваться ключевое слово yield. Когда вызывается этот генератор, он возвращает итерируемый объект, который можно использовать в циклах for или получать значения с помощью функции next(). Каждый вызов yield возвращает значение из генератора и "замораживает" его состояние, позволяя продолжить выполнение с того же места в следующий раз.
🐍Pythoner6 616
Питонист? 🫵 Хочешь попробовать себя в роли преподавателя?🤓
У нас есть отличная возможность для тебя! 👍 Стань преподавателем в Московской Школе Программирования.
Почему тебе стоит попробовать:
📌 развитие навыков управления, коммуникации и наставничества;
📌 творческая реализация;
📌 приятное и полезное отвлечение от основной работы, помогает избежать выгорания;
📌 расширение профессиональных контактов;
📌 объясняя материал, ты сам лучше понимаешь и структурируешь свои знания;
📌 возможность вносить значимый вклад в образование и развитие молодых талантов.
Мы предлагаем:
🐉 гибкий график;
👽 мотивированных учеников;
⏳ стабильную рабочую нагрузку;
🌎 преподавай онлайн или во множестве отделений по Москве и Питеру;
👋 поддержку коллег.
Заполни анкету и открой для себя новые горизонты. Не упусти шанс сделать что-то значимое и интересное! 📻
6 616
➡️GeoPy — это популярная библиотека в языке программирования Python, которая используется для выполнения различных геокодинговых операций. Она позволяет разработчикам легко преобразовывать адреса в географические координаты (широта и долгота) и обратно
➡️Геокодирование и обратное геокодирование
Одна из основных функций библиотеки GeoPy — это геокодирование. Геокодирование позволяет преобразовывать текстовые адреса в географические координаты. Это может быть полезно для создания карт, отслеживания местоположения или анализа данных, связанных с конкретными локациями.
➡️Расчет расстояний и маршрутов
Еще одна полезная функция GeoPy — это возможность расчета расстояний между двумя точками на карте. Это может быть полезно для множества приложений, включая логистику, планирование маршрутов и анализ местоположения.
🐍Pythoner
6 616
➡️В модуле math есть особый объект, который называется NaN (Not a Number).
➡️Эти объекты NaN не уникальны, и даже не равны самим себе, так что вы можете иметь несколько подобных объектов, взятых из нескольких разных источников.
🔎Например можно создать подобный объект, просто передав строку 'nan' во float. Кстати говоря, это значит что вы можете использовать NaN в качестве ключа в словаре (хотя мы и не советуем это делать).
🐍Pythoner
6 616
❓ Разбор
Разберем код построчно:
💬Создаём переменную со списком [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]
🐍Pythoner
6 616
➡️В 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)])
🐍Pythoner6 616
🚀 Почему Python — лучший язык для создания Telegram-ботов?
Только начинаете свой путь в разработке? Ждём вас на открытом практическом уроке от OTUS, где мы:
— установим и настроим необходимые инструменты для создания Telegram-ботов;
— рассмотрим формат работы с библиотекой Python-telegram-bot;
— создадим простого бота;
— расширим его функциональность с помощью дополнительных возможностей;
— рассмотрим примеры работы готовых ботов;
— выясним, почему именно Python идеален для создания Telegram-ботов.
Встречаемся 10 июля в 20:00 мск в преддверии старта курса «Специализация Python Developer». Все участники вебинара получат специальную цену на обучение.
🔴 Регистрируйтесь прямо сейчас, чтобы не пропустить бесплатный урок и создать классный проект для своего портфолио: https://otus.pw/nZrU/?erid=LjN8KTVxV
6 616
➡️Одним из приемов для ускорения работы циклов является векторизация вычислений, т. е. использование функций, которые поддерживают операции над векторами.
⬆️Вообще лучший способ ускорить любой цикл – это отказаться от него. В примере выше для работы с функцией my_func мы могли бы вызвать ее в цикле для каждого элемента списка, но гораздо проще использовать vectorize.
➡️По сути, vectorize преобразует функцию таким образом, что она начинает принимать весь вектор целиком, а не отдельный его элемент. Надо помнить, что такой подход не всегда приводит к значительному ускорению.
🐍Pythoner
6 616
➡️Для присвоения значения любой переменной среды используется функция setdefault().
⬆️Давайте напишем код, чтобы с помощью функции setdefault() изменить значение переменной DEBUG на True (по умолчанию установлено False). После установки значения мы проверим его функцией get().
➡️Если мы сделали всё правильно, выведется сообщение «Режим отладки включен», в противном случае – «Режим отладки выключен».
🐍Pythoner
6 616
🔎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)
🐍Pythoner6 616
🔎Флаг явного преобразования используется для преобразования значения поля format перед его непосредственным форматированием.
➡️Это поле можно использовать для переопределения поведения format для какого либо конкретного типа и форматирования значения. В настоящее время распространены два явных флага преобразования:
!r – преобразует значение в строку, используя функцию repr() !s – преобразует значение в строку, используя функцию str()⬆️В примере на фото, в случае с флагом !r строка 'Hello' будет напечатана с кавычками в поле шириной не менее 20 символов, а в случае с флагом !s – без кавычек (в более удобном для чтения виде). 🐍Pythoner
