Python for everyboby @python_egoroff Channel on Telegram

Python for everyboby

@python_egoroff


Изучаем python
Основы: https://stepik.org/course/63085
ООП: https://stepik.org/z/114354
Django: https://stepik.org/z/114288
Pygame: https://stepik.org/z/118434

Python for everybody (English)

Are you interested in learning Python? Look no further than the 'Python for everybody' Telegram channel, run by the user @python_egoroff. This channel is dedicated to making Python accessible to everyone, whether you are a beginner or an experienced programmer. With a variety of resources and tutorials, you can start your Python journey today! The channel provides links to courses on the basics of Python, object-oriented programming (OOP), Django, and Pygame. Whether you want to build a simple Python script or develop a complex web application, this channel has you covered. Join the 'Python for everybody' channel and unlock the power of Python programming in your projects and career!

Python for everyboby

17 Dec, 19:04


🧑‍🎓 В чем разница между операторами is и ==

В Python есть два оператора == и is , которые используются для сравнения. Может показаться, что они работают одинаково, но это не так.

✏️ Оператор == проверяет равенство значений, то есть он оценивает, являются ли значения двух объектов одинаковыми. При этом сами объекты могут храниться в совершенно разных ячейках памяти.

lst1 = [1, 2, 3]
lst2 = [1, 2, 3]
lst3 = lst1

print(lst1 == lst2) # True
print(lst1 == lst3) # True
print(lst2 == lst3) # True
print(id(lst1) == id(lst2)) # False
print(id(lst1) == id(lst3)) # True
print(id(lst2) == id(lst3)) # False


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

lst1 = [1, 2, 3]
lst2 = [1, 2, 3]
lst3 = lst1

print(lst1 is lst2) # False
print(lst1 is lst3) # True
print(lst2 is lst3) # False

Python for everyboby

04 Dec, 15:08


🧑‍🎓 Сколько дней ждать до дня рождения?

С помощью python можно написать простой калькулятор, который определит какое количество дней осталось ждать до определенной даты от текущего момента. При помощи такой программы, например, можно посчитать сколько еще дней ждать своего следующего дня рождения.

📚 Для написания кода вам потребуется знание стандартного модуля datetime, который позволяет удобно работать с календарными датами и временем.

✏️ Пример реализации такой программы показан ниже:

from datetime import datetime


def days_to_birthday(date_str: str) -> int:
dt = datetime.strptime(date_str, '%d.%m.%Y')
current_date = datetime.now()
happy_birthday = datetime(current_date.year, dt.month, dt.day)
if not current_date < happy_birthday:
happy_birthday = happy_birthday.replace(year=current_date.year + 1)
return (happy_birthday - current_date).days + 1


birthday = input('Введите дату рождения в формате дд.мм.гггг: ')
days_remaining = days_to_birthday(birthday)
print(f"{days_remaining} - именно столько дней осталось ждать вашего дня рождения")


🧑‍🏫 Подтянуть знания по модулю datetime и порешать другие задачи можно на данном курсе.


#python #урокиpython

Python for everyboby

02 Dec, 16:43


🧑‍🎓 Что такое `__slots__`?

__slots__ — это специальный магических атрибут в Python, который позволяет ограничить количество атрибутов для экземпляров класса.

📝 Пример использования

class PointSlots:
# Перечисляем все возможные атрибуты экземпляров класса
__slots__ = ('x', 'y')

def __init__(self, x, y):
self.x = x
self.y = y


p = PointSlots(3, 4)
print(p.x) # 3
print(p.y) # 4

В экземплярах класса PointSlots после указания атрибута __slots__ допустимо обращаться только к атрибутам x и y. При попытке создать новый атрибут или обратиться к словарю __dict__ будет возникать ошибка AttributeError

print(p.__dict__)
# AttributeError: 'PointSlots' object has no attribute '__dict__'

p.z = 100
# AttributeError: 'PointSlots' object has no attribute 'z'


📚 Основное предназначение __slots__ - зафиксировать определенное множество атрибутов, которые доступны экземплярам.

✏️ При использовании __slots__ Python не создает обычный словарь __dict__ для хранения атрибутов, а вместо этого выделяет фиксированное место для указанных атрибутов. Это помогает повысить производительность и экономить память, особенно при создании большого числа объектов.

Python for everyboby

26 Nov, 16:59


🧑‍🎓 Что такое итератор?

Итератор в Python — это объект, в реализации которого имеются два магических метода:

1️⃣ __iter()__

2️⃣ __next
()__

За счет этого итераторы обладают способностью работать со встроенными функциями next() и iter().

📚 Основное предназначение - организация последовательного перебора элементов объекта. Итераторы используются для работы с циклом for и обеспечивают ленивую генерацию данных, не загружая их все сразу в память. Каждый вызов метода next() возвращает следующий элемент, а при отсутствии элементов выбрасывается исключение StopIteration.

Ниже представлена реализация итератора внутри класса Student, позволяющая последовательно обходить все символы имени и фамилии студента:
class Student:
def __init__(self, name, surname):
self.name = name
self.surname = surname
self.index = 0

def __iter__(self):
return self

@property
def full_name(self):
return self.name + ' ' + self.surname

def __next__(self):
if self.index >= len(self.full_name):
self.index = 0
raise StopIteration
self.index += 1
return self.full_name[self.index - 1]

ivan = Student('Ivan', 'Sidorov')
for s in ivan:
print(s)


✏️ Итераторы полезны для работы с большими данными и потоками данных.

Подробности и практику по итераторам можно найти здесь:
https://stepik.org/lesson/1367599/step/1?unit=1383640
https://stepik.org/lesson/682559/step/1?unit=681371

Python for everyboby

21 Nov, 18:52


Класс defaultdict для упрощения работы со словарями

Модуль collections в Python предоставляет специальный тип словаря, называемый defaultdict. Он позволяет автоматически создавать значения для новых ключей, что значительно упрощает работу с словарями.

Для инициализации значения нового ключа в defaultdict достаточно передать тип желаемого значения. В примере ниже мы указываем тип list для всех наших ключей, следовательно
from collections import defaultdict

# создание defaultdict, использующего list() в качестве значения по умолчанию
marks = defaultdict(list)

# добавление элементов в словарь
marks['Asya'].append(5)
marks['Asya'].append(4)

# обращение к несуществующему ключу
print(marks['Kate']) # выведет [], так как list() возвращает []

# обращаясь к несуществующему ключу John,
# получаем значение по умолчанию и сразу расширяем его списком [4, 5, 5, 4]
marks['John'].extend([4, 5, 5, 4])
marks['John'].append(3)

print(marks) # {'Asya': [5, 4], 'Kate': [], 'John': [4, 5, 5, 4, 3]}


по умолчанию все значения ключей будут являться пустыми списками. Причем обращение к новому ключу не вызывает ошибки KeyError, а создает новую пару, где значением будет тот тип данных, который был передан при создании defaultdict

Еще больше подробностей про defaultdict и практики по этой теме можно найти в курсе
Продвинутый python: заряди свои батарейки

Python for everyboby

11 Nov, 19:05


Функция enumerate

В python есть элегантный способ обойти элементы коллекции, сразу получая за итерацию индекс и значение элемента коллекции. Это функция enumerate.

А вы знали, что функция enumerate:

☑️ на самом деле является классом, а не функцией?

☑️ возвращает итератор в качестве своей работы?

Еще больше подробностей об enumerate и других функциях вы можете найти на моем бесплатном курсе
Функциональное программирование на Python

Python for everyboby

10 Nov, 21:39


Функции lambda + map

Очень часто можно встретить комбинацию анонимной функции внутри вызова map. Использование lambda функции помогает избежать определение обычной функции, делая код короче.

В данном примере мы возводим в квадрат все элементы списка numbers при помощи map и lambda функций

Не знаешь, что такое map или анонимная функция?
Мой бесплатный курс по функциональному программированию поможет тебе разобраться в этих темах

https://stepik.org/course/195619/promo

Python for everyboby

13 Sep, 20:33


В честь прошедшего дня программиста предлагаю воспользоваться промокодом Я_У_МАМЫ_ПРОГРАММИСТ, который позволит приобрести мои платные курсы со скидкой до 30%:

ООП: Объектно-ориентированное программирование на Python

Django, потанцуем?

Продвинутый python: заряди свои батарейки

Pygame - учимся создавать свои игры

Применить промокод Я_У_МАМЫ_ПРОГРАММИСТ можно при оплате курса по указанным выше ссылкам

Python for everyboby

21 May, 19:02


Друзья, в преддверии выхода нового курса, решил устроить распродажу

Сейчас вы можете приобрести мои курсы на степике по следующим ценам:

ООП: Объектно-ориентированное программирование на Python — 2072р
https://stepik.org/a/114354

Django, потанцуем? — 1875р
https://stepik.org/a/114288

Продвинутый python: заряди свои батарейки —1920р
https://stepik.org/a/127822

Pygame - учимся создавать свои игры - 600 ₽
https://stepik.org/a/118434

При оплате по СБП или банковским переводом (из РФ или из-за рубежа) предоставляется дополнительная скидка:

🎁 при покупке одного курса - 100р,
🎁🎁 при оплате двух курсов - 500р
🎁🎁🎁 при покупке трех - 1000р

По вопросам приобретения курсов обращайтесь в личные сообщения.
https://t.me/artem_egoroff

Python for everyboby

28 Dec, 20:11


Поздравляю с наступающим Новым годом! 🎊🎉🥂

Впереди долгие каникулы — это отличное время для того, чтобы подумать о будущем. Если кто-то из вас давно хотел погрузиться в изучение Питона или углубить свои знания — добро пожаловать на мои курсы. Специально для вас я объявляю новогодние скидки! Пройдите по ссылке ниже и введите промокод HAPPY_NEW_YEAR для того, чтобы получить скидку в 33% на любой платный курс

Или оплату можно произвести напрямую, для этого свяжитесь со мной в телеграмме.

ООП: Объектно-ориентированное программирование на Python
https://stepik.org/a/114354

Продвинутый python: заряди свои батарейки
https://stepik.org/a/127822

Django, потанцуем
https://stepik.org/a/114288

Python for everyboby

21 Dec, 19:06


Метод new

Магический метод new вызывается для фактического создания нового объекта, как экземпляра желаемого класса. Вызов метода new осуществляется до метода init

За подробностями и практикой
https://stepik.org/a/114354

Python for everyboby

11 Jul, 19:04


Как создать вложенные папки?

Python предоставляет функцию os.makedirs(), которая позволяет создавать вложенные папки. Функция принимает один аргумент - путь к папке, которую нужно создать, и создает все промежуточные папки, если они не существуют.

И перед ее запуском лучше проверять наличие текущего каталога в системе и всех вложенных подпапок при помощи функции os.path.exists. Потому что при попытке создать каталог, который уже существует в системе, возникает исключение FileExistsError

Python for everyboby

10 Jul, 18:41


Как создать папку с помощью Python?

Вам поможет модуль os и его функция mkdir. Она создает папку по указанному пути. Путь до каталога можно указать как абсолютный, так и относительный. В примере ниже указан относительный адрес, и новая папка будет создана в том же каталоге, что и запускаемый скрипт.

Функция mkdir вызовет ошибку FileExistsError, если каталог с таким именем и адресом уже существует. Поэтому, чтобы избежать ошибок, мы должны вызывать ее с помощью try/except.

Python for everyboby

19 Jun, 16:27


На степике оформил курс на pygame
https://stepik.org/z/118434
Видеоуроки будут сопровождаться кодом, который можно сразу запустить
На пробных уроках можете посмотреть формат

Python for everyboby

16 Jun, 15:30


Бывало? 😁

Python for everyboby

13 Jun, 17:56


Новое видео на канале
https://youtu.be/ycVlsU_c4Mg

Python for everyboby

10 Jun, 20:13


#python #learnpython

Python for everyboby

05 Jun, 21:20


Давайте проверим ваши знания)
В 11й строке происходит удаление файла через метод remove
Что произойдет при попытки распечатать переменную f1 в 12й строке?
Предлагаю варианты:
1) будет ошибка, переменная же удалена
2) ошибки не будет, переменная распечатается
3) ошибки не будет, распечатается None
4) свой вариант в коммент

Python for everyboby

26 May, 19:22


🔥🔥🔥 Топ книг, который я советую 🔥🔥🔥

Это моя личная подборка, и про каждую книга я вкратце расскажу ее плюсы и минусы

1 Марк Лутц. «Изучаем Python» (5 издание уже сейчас можно найти)
Это самая лучшая книга для изучения python на мой взгляд, поэтому она на заслуженном первом месте
посвящена именно изучению самого языка python или если по-английски выразится Core Python Language.
отсюда вытекает, что здесь мало прикладных примеров, типа таких как написать сайт, распарсить авито, взломать пентагон. Только сам python
написано очень подробно, с хорошими примерами
я бы даже сказал, что это лучшее печатное объяснение python)
может показаться скучной
книга очень объемная, соответственно и время на ее прочтение требуется значительное

2 Майкл Доусон «Программируем на python»
На обложке этой книги написано "Научитесь программировать на Python играючи! Для прочтения книги предварительных знаний не требуется"
подходит для новичков, объясняет неплохо основы языка, но не так подробно как Лутц
более практическая чем Лутц. В каждой главе на основании полученных знаний будет создана игра
книга быстро читается и в целом очень интересно

3 Эрик Метиз «Изучаем python»
В оригинале название это книги Python Crash Course. Не знаю почему так перевели, и теперь в русском сегменте есть две книги с одинаковым названием
Итак, что же это за зверь:
в этой книге перекос еще больше к практике чем у Доусон
объяснения становятся уже не такими подробными как у Доусона, но зато больше практических примеров
примеры даже не практические, а прикладные. В книги вы напишите игры, займетесь визуализацией данных и напишете сайт на Джанго
объем книги такой же как и у Доусона

4 Адитья Бхаргава «Грокаем алгоритмы»
Казалось, что к python данная книга не имеет никакого значения, но нет. Все примеры здесь написано именно на нашем любимом языке
отличные объяснения
супер иллюстрации
узнаете многое о стандартных алгоритмах: для чего нужны и где применяются
для понимания книги нужно уже знать python
это самая маленькая книга в подборке

5 Лучано Рамальо «Python. К вершинам мастерства»
Это книга вам понадобится, когда уже станете матерым. Когда будете мой инди курс на степике проходить за сутки
Книга просто бесподобна, знакомит с тонкостями именно программирования на python
учит как делать лучше и производительнее
- содержит массу примеров
описывает оптимальные примеры использования различных структур данных в python
объем книги средний

Это мой топ-5. Советую читать именно в таком порядке. Если надоесть Лутц, можно его отложить, но недалеко, и периодически к нему возвращаться)))

Как вам подборка? Какие из этих книг уже прочитали? или может есть что добавить?)

Группа в VK