Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
♑️⤵️ Наследование в ООП
Представим себя, на минуту, инженерами автомобильного завода.
Нашей задачей является разработка современного автомобиля.
У нас уже есть предыдущая модель, которая отлично зарекомендовала себя в течение многолетнего использования.
Всё бы хорошо, но времена и технологии меняются, а наш современный завод должен стремиться повышать удобство и комфорт выпускаемой продукции и соответствовать современным стандартам.
Нам необходимо выпустить целый модельный ряд автомобилей: седан, универсал и малолитражный хэтч-бэк.
Очевидно, что мы не собираемся проектировать новый автомобиль с нуля, а, взяв за основу предыдущее поколение, внесём ряд конструктивных изменений.
Например, добавим гидроусилитель руля и уменьшим зазоры между крыльями и крышкой капота, поставим противотуманные фонари.
Кроме того, в каждой модели будет изменена форма кузова.
#python
Представим себя, на минуту, инженерами автомобильного завода.
Нашей задачей является разработка современного автомобиля.
У нас уже есть предыдущая модель, которая отлично зарекомендовала себя в течение многолетнего использования.
Всё бы хорошо, но времена и технологии меняются, а наш современный завод должен стремиться повышать удобство и комфорт выпускаемой продукции и соответствовать современным стандартам.
Нам необходимо выпустить целый модельный ряд автомобилей: седан, универсал и малолитражный хэтч-бэк.
Очевидно, что мы не собираемся проектировать новый автомобиль с нуля, а, взяв за основу предыдущее поколение, внесём ряд конструктивных изменений.
Например, добавим гидроусилитель руля и уменьшим зазоры между крыльями и крышкой капота, поставим противотуманные фонари.
Кроме того, в каждой модели будет изменена форма кузова.
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
📝⚡️Просто о сложном: API, его типы и CRUD-операции
На первый взгляд API и CRUD – сложные понятия, известные только профессиональным программистам.
👆🏻Читать
#python
На первый взгляд API и CRUD – сложные понятия, известные только профессиональным программистам.
👆🏻Читать
#python
itProger - Сообщество программистов
Просто о сложном: API, его типы и CRUD-операции - статья на itProger
На первый взгляд API и CRUD – сложные понятия, известные только профессиональным программистам. Но мы объясним их с помощью нескольких предложений. Давайте приступим. ⚡ Информационные статьи и интересные новости из мира IT на сайте школы программирования…
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
🆑5️⃣ Осваиваем классы за 5 минут
Почти все в Python является классом.
Класс — это тип, описывающий устройство объектов: как бы логическая группа атрибутов и функций, которые используются для одного и того же вида данных.
#python
Почти все в Python является классом.
Класс — это тип, описывающий устройство объектов: как бы логическая группа атрибутов и функций, которые используются для одного и того же вида данных.
#python
Forwarded from Data Асы 🧩🖧🐉🐘🐧❄️📊
✅🧩 Шпаргалка по функции product
Функция product() модуля itertools возвращает декартово произведение входных итерируемых последовательностей *iterables.
Функция itertools.product() примерно эквивалентно вложенным циклам for .. in .. в выражении генератора.
Например выражение product(A, B) возвращает то же, что и выражение-генератор ((x,y) for x in A for y in B).
#python
Функция product() модуля itertools возвращает декартово произведение входных итерируемых последовательностей *iterables.
Функция itertools.product() примерно эквивалентно вложенным циклам for .. in .. в выражении генератора.
Например выражение product(A, B) возвращает то же, что и выражение-генератор ((x,y) for x in A for y in B).
#python
Forwarded from Python вопросы с собеседований
101 вопрос, на которые должен ответить Python-разработчик
Готовитесь к собеседованию? Или просто изучаете Python? В этой статье собраны наиболее популярные вопросы по Python, которые помогут проверить ваши знания и подтянуть пробелы:
https://tproger.ru/articles/101-vopros-python-razrabotchiku/
#python
Готовитесь к собеседованию? Или просто изучаете Python? В этой статье собраны наиболее популярные вопросы по Python, которые помогут проверить ваши знания и подтянуть пробелы:
https://tproger.ru/articles/101-vopros-python-razrabotchiku/
#python
Forwarded from ChernovDev (Stanislav Chernov)
Наткнулся на удобное, простое объяснение от Сергея Балакирева про #python. Страница в закладки https://proproprogs.ru/python, там прям кладезь знаний. А еще у него есть курсы на степике.
А я по нему flask изучаю (на утубе есть плейлист)
Написал ему в личку, жаль , больше не планирует по фласку ничего записывать. А как разжевывает материал - там вообще класс! Рекомендую👍
не реклама)
А я по нему flask изучаю (на утубе есть плейлист)
Написал ему в личку, жаль , больше не планирует по фласку ничего записывать. А как разжевывает материал - там вообще класс! Рекомендую👍
не реклама)
proproprogs.ru
Про Python
Язык программирования Python: содержание учебника
Forwarded from Диджитализируй!
Типизированный_Python_для_профессиональной_разработки.pdf
3.4 MB
Рад поделиться с вами книжкой по типизированному Python, о разработке которой я говорил здесь. Вжух!
Здесь актуальная версия книги от 8 июня 2022.
Цель материала — помочь тебе научиться писать более красивые, надёжные и легко сопровождаемые программы на Python. Это не начальный уровень владения языком, предполагается, что ты уже умеешь программировать, но хочешь научиться делать это лучше.
Поговорим о том, почему вопросы типизации очень важны и как они влияют на программу, разберём все основные структуры для использования в типизации, напишем программу, которая находит наши GPS координаты и показывает текущую погоду по ним. В ходе разработки программы затронем и обсудим много смежных тем — архитектура кода, построение слоёв логики в приложении и др.
Код из книги
Видео версия — текстовую обязательно читаем тоже, в ней ряд тем расширен.
РАСПРОСТРАНЕНИЕ поддерживается, но, пожалуйста, в виде ссылки на этот пост или ссылки на веб-версию, т.к. книга обновляется.
#python #backend #it #codebetter #books
Здесь актуальная версия книги от 8 июня 2022.
Цель материала — помочь тебе научиться писать более красивые, надёжные и легко сопровождаемые программы на Python. Это не начальный уровень владения языком, предполагается, что ты уже умеешь программировать, но хочешь научиться делать это лучше.
Поговорим о том, почему вопросы типизации очень важны и как они влияют на программу, разберём все основные структуры для использования в типизации, напишем программу, которая находит наши GPS координаты и показывает текущую погоду по ним. В ходе разработки программы затронем и обсудим много смежных тем — архитектура кода, построение слоёв логики в приложении и др.
Код из книги
Видео версия — текстовую обязательно читаем тоже, в ней ряд тем расширен.
РАСПРОСТРАНЕНИЕ поддерживается, но, пожалуйста, в виде ссылки на этот пост или ссылки на веб-версию, т.к. книга обновляется.
#python #backend #it #codebetter #books
Forwarded from Python книги
Forwarded from Библиотека Питониста
Forwarded from DE
Для версий
Python 3.10
и выше.Деструктуризация с помощью образцов настолько выразительна, что иногда даже наличие единственной ветви
case
может сделать код проще. Гвидо ван Россум собрал коллекцию примеров match/case
, один из которых назвал «Очень глубокий итерируемый объект и сравнение типа с выделением».Это здорово, но меня больше поразил тот факт, что можно проверять типы и насколько выразительно это выглядит, ниже смотри пример.
def write_value(self, value):
if isinstance(value, str):
self.simple_element("string", value)
elif value is True:
self.simple_element("true")
elif value is False:
self.simple_element("false")
elif isinstance(value, int):
if -1 << 63 <= value < 1 << 64:
self.simple_element("integer", "%d" % value)
else:
raise OverflowError(value)
elif isinstance(value, float):
self.simple_element("real", repr(value))
elif isinstance(value, dict):
self.write_dict(value)
elif isinstance(value, (bytes, bytearray)):
self.write_bytes(value)
elif isinstance(value, datetime.datetime):
self.simple_element("date", _date_to_string(value))
elif isinstance(value, (tuple, list)):
self.write_array(value)
else:
raise TypeError("unsupported type: %s" % type(value))
match/case
:def write_value(self, value):#python #casematch
match value:
case str():
self.simple_element("string", value)
case True:
self.simple_element("true")
case False:
self.simple_element("false")
case int():
if -1 << 63 <= value < 1 << 64:
self.simple_element("integer", "%d" % value)
else:
raise OverflowError(value)
case float():
self.simple_element("real", repr(value))
case dict():
self.write_dict(value)
case bytes() | bytearray():
self.write_bytes(value)
case datetime.datetime():
self.simple_element("date", _date_to_string(value))
case tuple() | list():
self.write_array(value)
case _:
raise TypeError("unsupported type: %s" % type(value))
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
patma/EXAMPLES.md at 3ece6444ef70122876fd9f0099eb9490a2d630df · gvanrossum/patma
Pattern Matching. Contribute to gvanrossum/patma development by creating an account on GitHub.
Forwarded from DE
Загадка
```py t = (1, 2, [3, 4]) t[2] += [5, 6] ``` Что случится в результате? #python
```py t = (1, 2, [3, 4]) t[2] += [5, 6] ``` Что случится в результате? #python
Final Results
47%
`t` принимает значение `(1, 2, [3, 4, 5, 6])`
35%
Исключение `'tuple' object does not support item assignment`
8%
Ни то, ни другое
10%
И то, и другое
Forwarded from DE
Опросы в телеге не поддерживают форматирование кода, дублирую код для проверки:
Это патология Python.
Из такого примера ты можешь сделать следующие выводы:
1️⃣ Не помещай изменяемые элементы в кортежи.
2️⃣ Составное присваивание -- не атомарная операция
3️⃣ Иногда следует изучать байт-код, чтобы понять, что происходит под капотом
Удобный ресурс для пошагового исполнения кода с визуализацией - pythontutor.com
#python #quiz #blowmymind
t = (1, 2, [3, 4])
try:
t[2] += [5, 6]
except TypeError as err:
print(err)
print(t)
Это патология Python.
Из такого примера ты можешь сделать следующие выводы:
Удобный ресурс для пошагового исполнения кода с визуализацией - pythontutor.com
#python #quiz #blowmymind
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DE
И в дополнение к патологии выше, есть целый репозиторий с подобными штуками - ссылка
#python #wtfpython
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - satwikkansal/wtfpython: What the f*ck Python? 😱
What the f*ck Python? 😱. Contribute to satwikkansal/wtfpython development by creating an account on GitHub.
Forwarded from DE
Если тебе интересно заглянуть под капот Python и узнать, как устроены списки - есть отличная статья, которая начинается с достаточно простого примера и потом плавно погружает в глубины C-шной реализации списков в Python.
Автор статьи серьёзно подошёл к делу: он не только детально всё расписал, но и приложил кучу наглядных иллюстраций.
Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.
Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно🙂
#python
Автор статьи серьёзно подошёл к делу: он не только детально всё расписал, но и приложил кучу наглядных иллюстраций.
Даже если ты никогда не программировал на C, тебе будет понятен и интересен материал.
Ссылка на статью, рекомендую ознакомиться — это на самом деле увлекательно
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Codingconfessions
Why Do Python Lists Multiply Oddly? Exploring the CPython Source Code
A look at the internals of list implementation in CPython to understand this weird quirk about them
Forwarded from DE
И ещё немного про Python.
Полезно тем, кто уже освоился с f-строками в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде
Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь
Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать🙃
Ссылка
А ещё по f-строкам у меня была ссылка на другой хороший материал в посте
#python
Полезно тем, кто уже освоился с f-строками в Python и использует их для форматирования. Часто ты останавливаешься на чём-то вроде
f"string {variable}"
, но знаешь ли ты, что f-строки скрывают в себе гораздо больше возможностей?Например, представь, что тебе нужно превратить число в строку, где оно всегда будет занимать три позиции, дополняясь нулями спереди, если это необходимо. С f-строками это сделать проще простого! Если у тебя число 5, ты получишь
"005"
, а если 123, то останется просто "123"
.Гайд от PyBites показывает, на что способны f-строки. Если ты ещё не раскрыл для себя все возможности этого удобного инструмента - бегом читать
Ссылка
А ещё по f-строкам у меня была ссылка на другой хороший материал в посте
#python
Please open Telegram to view this post
VIEW IN TELEGRAM
Pybites
Python F-String Codes I Use Every Day - Pybites
I use f-strings every day. The irony is I also every day end up searching the Web to find the correct format to use. Until one day I thought a
Forwarded from Книголюб | Литература
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override
используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
Forwarded from Data Советы
✅🖥 Pydantic vs. Attrs
Pydantic имеет встроенную функцию для проверки данных, но она использует много памяти.
Attrs не имеет встроенной проверки данных, но обеспечивает лучшую производительность и меньшее потребление памяти, что делает его идеальным для внутренних структур данных и простого создания классов в Python.
📌 Пример (https://codecut.ai/python-data-models-pydantic-or-attrs)
#python
Pydantic имеет встроенную функцию для проверки данных, но она использует много памяти.
Attrs не имеет встроенной проверки данных, но обеспечивает лучшую производительность и меньшее потребление памяти, что делает его идеальным для внутренних структур данных и простого создания классов в Python.
from attrs import define, field
@define
class UserAttrs:
name: str
age: int = field()
@age.validator
def check_age(self, attribute, value):
if value < 0:
raise ValueError("Возраст не может быть отрицательным")
return value # принимает любой положительный возраст
try:
user = UserAttrs(name="Bob", age=-1)
except ValueError as e:
print("ValueError:", e)
📌 Пример (https://codecut.ai/python-data-models-pydantic-or-attrs)
#python
Forwarded from Николай Крупий
#python python... PYTHON 🔛 🚀
Black? Если вкратце, то что это? А то будет тяжеловато сформировать вопрос в Гугле/чатгпт на основе "black"
Учись)
- https://chatgpt.com/share/67a1b96c-82a8-8009-b207-2ca96f740405
И isort сразу добавь.
Ну, кстати, давай уж и #mypy сразу осилить попробуй!) Вообще
- тема типизации в питон и вообще в любых других ЯП очень большая, сложная и не однозначная
- в питоне типизация опциональная (не обязательная), в отличие от многих других ЯП
- но в целом они все (ранее не «типизированные» ЯП) движутся к ней (напр, js -> ts)
- и тебе она может сначала показаться какой-то излишней
- но на всех больших и серьёзных проектах сейчас принято её использовать!
- поэтому лучше уже сейчас начать с ней разбираться
- тем более что у тебя очень простой проект, и начать с него будет отличным вариантом!
- со временем к тебе начнёт приходить и полезность типизации😁
- поГПТи на эту тему самостоятельно
#типизация (правильнее говорить «аннотации типов») в #python
- https://chatgpt.com/share/67a1b96c-82a8-8009-b207-2ca96f740405
И isort сразу добавь.
Ну, кстати, давай уж и #mypy сразу осилить попробуй!) Вообще
- тема типизации в питон и вообще в любых других ЯП очень большая, сложная и не однозначная
- в питоне типизация опциональная (не обязательная), в отличие от многих других ЯП
- но в целом они все (ранее не «типизированные» ЯП) движутся к ней (напр, js -> ts)
- и тебе она может сначала показаться какой-то излишней
- но на всех больших и серьёзных проектах сейчас принято её использовать!
- поэтому лучше уже сейчас начать с ней разбираться
- тем более что у тебя очень простой проект, и начать с него будет отличным вариантом!
- со временем к тебе начнёт приходить и полезность типизации
- поГПТи на эту тему самостоятельно
#типизация (правильнее говорить «аннотации типов») в #python
Please open Telegram to view this post
VIEW IN TELEGRAM
ChatGPT
ChatGPT - Black настройка и интеграция
Shared via ChatGPT
Forwarded from дата инженеретта
А вы знали, что в питоне так можно?
Собрала несколько кейсов, о которых вы могли даже не подозревать:
1️⃣ Имя функции - это переменная, и этому имени мы можем присвоить что угодно:
Естественно, после переопределения все предыдущие возможности перестают действовать
2️⃣ Та же история с модулями:
3️⃣ При импорте модулей существующие переменные перезаписываются:
4️⃣ А переменные после цикла остаются существовать:
#python_tips
Собрала несколько кейсов, о которых вы могли даже не подозревать:
def func():
print('hi')
func()
# hi
func = -1
func()
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: 'int' object is not callable
Естественно, после переопределения все предыдущие возможности перестают действовать
import math
type(math)
# <class 'module'>
math = -1
type(math)
# <class 'int'>
x = 2
from mymodule import x
print(x)
# 'new_value'
for i in range(2):
print(i)
print(i) # 2
#python_tips
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
1. 30-Days-Of-Python — 30-дневный челлендж по основам Python.
2. Python Basics — азы Python для новичков, просто и с примерами.
3. Learn Python — справочник с кодом, пояснениями и практикой.
4. Python Guide — гайд по практикам, инструментам и сложным темам.
5. Learn Python 3 — руководство по Python 3 с практикой для начинающих.
6. Python Programming Exercises — 100+ задач по Python.
7. Coding Problems — алгоритмы и структуры данных для собесов.
8. Project-Based-Learning — Python через реальные проекты.
9. Projects — идеи проектов для прокачки навыков.
10. 100-Days-Of-ML-Code — ML на Python шаг за шагом.
11. TheAlgorithms/Python — алгоритмы и структуры данных на Python.
12. Amazing-Python-Scripts — полезные скрипты: от утилит до автоматизации.
13. Geekcomputers/Python — скрипты для сети, файлов и задач.
14. Materials — код и проекты от Real Python.
15. Awesome Python — топ фреймворков, библиотек и ресурсов.
16. 30-Seconds-of-Python — короткие сниппеты для быстрых решений.
17. Python Reference — скрипты, туториалы и лайфхаки.
#python #github #learning
@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM