Обработка комплексных структур
Ключевой особенностью является способность распаковывать и проверять сложные данные, такие как списки и словари:
Этот способ обработки списков особенно полезен, когда нам нужно различать случаи с определённым количеством элементов или же когда список может быть динамической длины.
Применение Match Case в разработке
В web-разработке мы можем его использоваться для логирования запросов или расшифровки JSON-ответов от сервера.
Заключение
Использование match case — это шаг наперёд по сравнению с традиционными методами условных операторов. Это новшество не только повышает читаемость кода, но и обеспечивает гибкость его организации благодаря поддержке шаблонного сопоставления.
А вы используете match case?
#python #djangoschool
Ключевой особенностью является способность распаковывать и проверять сложные данные, такие как списки и словари:
def process_items(items):
match items:
case []:
print("Список пуст")
case [single_item]:
print(f"Список содержит один элемент: {single_item}")
case [first_item, *other_items]:
print(f"Первый элемент: {first_item}, остальные: {len(other_items)} товар(ов)")
Этот способ обработки списков особенно полезен, когда нам нужно различать случаи с определённым количеством элементов или же когда список может быть динамической длины.
Применение Match Case в разработке
В web-разработке мы можем его использоваться для логирования запросов или расшифровки JSON-ответов от сервера.
Заключение
Использование match case — это шаг наперёд по сравнению с традиционными методами условных операторов. Это новшество не только повышает читаемость кода, но и обеспечивает гибкость его организации благодаря поддержке шаблонного сопоставления.
А вы используете match case?
#python #djangoschool
👍9
Модернизация F-строк: Python 3.12
В версии 3.12 значительно улучшили работу f‑строк и сделали их более гибкими.
Использование кавычек
Python поддерживает несколько различных типов кавычек. Вы можете использовать одинарные ' и двойные кавычки "". Также можно использовать тройные одинарные ''' и тройные двойные кавычки """. Все эти строковые разделители работают и для f-строк. Эта функция позволяет вставлять кавычки в f-строки. Она также позволяет вносить строковые литералы во встроенные выражения и даже создавать вложенные f-строки.
Типичным случаем использования разных кавычек в f-строке является необходимость использования апострофа или обращения к ключу словаря во встроенном выражении:
В этом примере имеется словарь с данными о человеке. Для определения f-строки используются двойные кавычки. Для доступа к ключу словаря используются одинарные кавычки. В сокращении "You're" одинарная кавычка используется в качестве апострофа.
Итак, где же ограничение на использование кавычек в f-строках до версии Python 3.11? Проблема заключается в том, что в f-строке нельзя повторно использовать кавычки:
В данном примере при попытке повторного использования двойных кавычек для доступа к ключу словаря f-строка не работает, и Python выдает синтаксическую ошибку.
Новые f-строки в Python 3.12 решили эту проблему, позволив повторно использовать кавычки:
В данном примере вы повторно используете двойные кавычки во встроенных выражениях, и f-строка работает корректно. Ограничение исчезло. Однако может быть не совсем понятно, является ли повторное использование кавычек в этом примере более чистым, чем разграничение вложенных строк с помощью разных кавычек.
#python #djangoschool
В версии 3.12 значительно улучшили работу f‑строк и сделали их более гибкими.
Использование кавычек
Python поддерживает несколько различных типов кавычек. Вы можете использовать одинарные ' и двойные кавычки "". Также можно использовать тройные одинарные ''' и тройные двойные кавычки """. Все эти строковые разделители работают и для f-строк. Эта функция позволяет вставлять кавычки в f-строки. Она также позволяет вносить строковые литералы во встроенные выражения и даже создавать вложенные f-строки.
Типичным случаем использования разных кавычек в f-строке является необходимость использования апострофа или обращения к ключу словаря во встроенном выражении:
>>> person = {"name": "Jane", "age": 25}
>>> f"Hello, {person['name']}! You're {person['age']} years old."
"Hello, Jane! You're 25 years old."В этом примере имеется словарь с данными о человеке. Для определения f-строки используются двойные кавычки. Для доступа к ключу словаря используются одинарные кавычки. В сокращении "You're" одинарная кавычка используется в качестве апострофа.
Итак, где же ограничение на использование кавычек в f-строках до версии Python 3.11? Проблема заключается в том, что в f-строке нельзя повторно использовать кавычки:
>>> f"Hello, {person["name"]}!"
File "<input>", line 1
f"Hello, {person["name"]}!"
^^^^
SyntaxError: f-string: unmatched '['В данном примере при попытке повторного использования двойных кавычек для доступа к ключу словаря f-строка не работает, и Python выдает синтаксическую ошибку.
Новые f-строки в Python 3.12 решили эту проблему, позволив повторно использовать кавычки:
>>> # Python 3.12
>>> person = {"name": "Jane", "age": 25}
>>> f"Hello, {person["name"]}!"
'Hello, Jane!'
В данном примере вы повторно используете двойные кавычки во встроенных выражениях, и f-строка работает корректно. Ограничение исчезло. Однако может быть не совсем понятно, является ли повторное использование кавычек в этом примере более чистым, чем разграничение вложенных строк с помощью разных кавычек.
#python #djangoschool
👍12
Существует еще одно ограничение f-строки, тесно связанное с кавычками. В Python можно вложить ровно столько f-строк, сколько существует разделителей кавычек:
Количество уровней вложенности в f-строке до версии Python 3.11 ограничено доступными разделителями строк, которыми являются ", ', "" и '''. Таким образом, у вас есть только четыре разделителя, которые можно использовать для разграничения уровней вложенности.
В Python 3.12 это ограничение снято, поскольку можно повторно использовать кавычки:
До появления новой реализации f-строк не существовало формального ограничения на количество уровней вложенности. Однако тот факт, что нельзя было повторно использовать строковые кавычки, накладывал естественное ограничение на допустимые уровни вложенности в литералы f-строк. Начиная с Python 3.12, кавычки можно использовать повторно, поэтому ограничений на вложенность f-строк не существует.
#python #djangoschool
>>> f"""{
... f'''{
... f"{f'{42}'}"
... }'''
... }"""
'42'
>>> f"""{
... f'''{
... f"{f'{f"{42}"}'}"
... }'''
... }"""
File "<stdin>", line 1
(f"{f'{f"{42}"}'}")
^
SyntaxError: f-string: f-string: unterminated stringКоличество уровней вложенности в f-строке до версии Python 3.11 ограничено доступными разделителями строк, которыми являются ", ', "" и '''. Таким образом, у вас есть только четыре разделителя, которые можно использовать для разграничения уровней вложенности.
В Python 3.12 это ограничение снято, поскольку можно повторно использовать кавычки:
>>> # Python 3.12
>>> f"{
... f"{
... f"{
... f"{
... f"{
... f"Deeply nested f-string!"
... }"
... }"
... }"
... }"
... }"
'Deeply nested f-string!'
До появления новой реализации f-строк не существовало формального ограничения на количество уровней вложенности. Однако тот факт, что нельзя было повторно использовать строковые кавычки, накладывал естественное ограничение на допустимые уровни вложенности в литералы f-строк. Начиная с Python 3.12, кавычки можно использовать повторно, поэтому ограничений на вложенность f-строк не существует.
#python #djangoschool
🔥4👍2
Еще одним ограничением f-строк до версии 3.12 является невозможность использования символов обратной косой черты во встроенных выражениях. Рассмотрим следующий пример, в котором вы пытаетесь объединить строки с помощью символа обратной последовательности
В этом примере возникает синтаксическая ошибка, поскольку f-строки не допускают символов обратной косой черты внутри выражений, разделенных фигурными скобками.
Опять-таки, новая реализация f-строк, появившаяся с Python 3.12, решает эту проблему:
В новой реализации f-строк снято ограничение на использование символов обратной косой черты во встроенных выражениях, поэтому теперь в f-строках можно использовать обратные последовательности.
#python #djangoschool
\n:>>> words = ["Hello", "World!", "I", "am", "a", "Pythonista!"]
>>> f"{'\n'.join(words)}"
File "<input>", line 1
f"{'\n'.join(words)}"
^
SyntaxError: f-string expression part cannot include a backslash
В этом примере возникает синтаксическая ошибка, поскольку f-строки не допускают символов обратной косой черты внутри выражений, разделенных фигурными скобками.
Опять-таки, новая реализация f-строк, появившаяся с Python 3.12, решает эту проблему:
>>> # Python 3.12
>>> words = ["Hello", "World!", "I", "am", "a", "Pythonista!"]
>>> f"{'\n'.join(words)}"
'Hello\nWorld!\nI\nam\na\nPythonista!'\
>>> print(f"{'\n'.join(words)}")
Hello
World!
I
am
a
Pythonista!
В новой реализации f-строк снято ограничение на использование символов обратной косой черты во встроенных выражениях, поэтому теперь в f-строках можно использовать обратные последовательности.
#python #djangoschool
👍2🔥2
F-строки до версии Python 3.11 не позволяли использовать символ
Когда вы используете
Теперь можно добавлять встроенные комментарии, если необходимо что-то уточнить в выражениях f-строки. Еще одним улучшением является возможность добавлять разрывы строк внутри фигурных скобок, аналогично тому, как это можно делать внутри круглых скобок в f-строках. Для этого даже не нужно использовать строки с тройными кавычками.
#python #djangoschool
# во встроенных выражениях. Из-за этого нельзя было вставлять комментарии во встроенные выражения. Если попытаться это сделать, то будет выдана синтаксическая ошибка:>>> employee = {
... "name": "John Doe",
... "age": 35,
... "job": "Python Developer",
... }
>>> f"""Storing employee's data: {
... employee['name'].upper() # Always uppercase name before storing
... }"""
File "<stdin>", line 3
}"""
^
SyntaxError: f-string expression part cannot include '#'Когда вы используете
# для ввода комментария в f-строку, вы получаете синтаксическую ошибку. К счастью, в новых f-строках Python 3.12 эта проблема также устранена:>>> #Python 3.12
>>> employee = {
... "name": "John Doe",
... "age": 35,
... "job": "Python Developer",
... }
>>> f"Storing employee's data: {
... employee["name"].upper() # Always uppercase name before storing
... }"
"Storing employee's data: JOHN DOE"
Теперь можно добавлять встроенные комментарии, если необходимо что-то уточнить в выражениях f-строки. Еще одним улучшением является возможность добавлять разрывы строк внутри фигурных скобок, аналогично тому, как это можно делать внутри круглых скобок в f-строках. Для этого даже не нужно использовать строки с тройными кавычками.
#python #djangoschool
👍6
Расшифровка сообщений об ошибках F-строк
Сообщение об ошибке в первом примере носит общий характер и не указывает на точное место ошибки в строке. Кроме того, выражение заключено в круглые скобки, что создает дополнительную проблему, поскольку в исходном коде круглые скобки отсутствуют.
В Python 3.12 сообщение об ошибке более подробное. Оно сигнализирует о точном месте проблемы в строке. Кроме того, сообщение об ошибке содержит некоторые предложения, которые могут помочь решить проблему.
В данном конкретном примере эти предложения не слишком полезны, они сосредоточены на операторе, который, возможно, ошибочен. Однако точное указание места, где возникла проблема, дает серьезную подсказку. Во встроенном выражении отсутствует операнд.
#python #djangoschool
>>> # Python 3.11
>>> f"{42 + }"
File "<stdin>", line 1
(42 + )
^
SyntaxError: f-string: invalid syntax
>>> # Python 3.12
>>> f"{42 + }"
File "<stdin>", line 1
f"{42 + }"
^
SyntaxError: f-string: expecting '=', or '!', or ':', or '}'
Сообщение об ошибке в первом примере носит общий характер и не указывает на точное место ошибки в строке. Кроме того, выражение заключено в круглые скобки, что создает дополнительную проблему, поскольку в исходном коде круглые скобки отсутствуют.
В Python 3.12 сообщение об ошибке более подробное. Оно сигнализирует о точном месте проблемы в строке. Кроме того, сообщение об ошибке содержит некоторые предложения, которые могут помочь решить проблему.
В данном конкретном примере эти предложения не слишком полезны, они сосредоточены на операторе, который, возможно, ошибочен. Однако точное указание места, где возникла проблема, дает серьезную подсказку. Во встроенном выражении отсутствует операнд.
#python #djangoschool
🔥6👍2❤1
Вопрос подписчика
"Куда двигаться, что делать? Если на python писать могу, на django собрать небольшой проект могу (магазинчик с товарами какой-нибудь или по типу портала для фильмов), с orm работать понял как (с SQL alchemy работать могу), на ptb какой-нибудь бот собрать тоже, всякие json request попробовал, что нужно подтянуть, хорошо изучить? В течении года вот так потихоньку изучал, пробовал, не плотно прям, но как-то так (не сказать, что я теперь гуру в этом, но ознакомлен и есть понимание применено куда копать). Что желательно хорошо знать и делать для первого собеса? Каков вообще путь питониста в вебе и в смежных направлениях?
*Для Junior"
Тут конечно нужно давать совет индивидуально для человека. Поняв его бэкграунд знаний и т.д.
Но можно более общий совет, а коллеги дополнят в комментариях.
Несколько советов, как двигаться дальше:
Углубляйся в Django:
- Изучи Django REST Framework для создания API
- Освой систему шаблонов и кастомные теги
- Разберись как фреймворк работает под капотом
Базы данных:
- Улучшай навыки SQL (сложные запросы, оптимизация)
- Изучи NoSQL решения (MongoDB, Redis)
Инструменты:
- Git (ветвление, слияние, работа с удаленными репозиториями)
- Docker (контейнеризация приложений)
- CI/CD (например, GitHub Actions)
Тестирование:
- Юнит-тесты (pytest)
- Интеграционные тесты
- TDD (разработка через тестирование)
Асинхронное программирование:
- asyncio
- Знакомство с FastAPI
Алгоритмы и структуры данных:
- Решай задачи на LeetCode
Еще про архитектуру почитать.
Soft skills:
- Работа в команде
- Умение читать чужой код
- Навыки презентации своих решений
Для первого собеседования:
- Уверенное владение основами Python
- Понимание ООП и паттернов проектирования
- Знание фреймворка
- Базовые знания HTTP и REST
- Понимание работы с реляционными БД
- Опыт работы с Git
- Умение объяснять свой код
- Готовность решать алгоритмические задачи
- Что-то из DDD
#python #django #djangoschool
"Куда двигаться, что делать? Если на python писать могу, на django собрать небольшой проект могу (магазинчик с товарами какой-нибудь или по типу портала для фильмов), с orm работать понял как (с SQL alchemy работать могу), на ptb какой-нибудь бот собрать тоже, всякие json request попробовал, что нужно подтянуть, хорошо изучить? В течении года вот так потихоньку изучал, пробовал, не плотно прям, но как-то так (не сказать, что я теперь гуру в этом, но ознакомлен и есть понимание применено куда копать). Что желательно хорошо знать и делать для первого собеса? Каков вообще путь питониста в вебе и в смежных направлениях?
*Для Junior"
Тут конечно нужно давать совет индивидуально для человека. Поняв его бэкграунд знаний и т.д.
Но можно более общий совет, а коллеги дополнят в комментариях.
Несколько советов, как двигаться дальше:
Углубляйся в Django:
- Изучи Django REST Framework для создания API
- Освой систему шаблонов и кастомные теги
- Разберись как фреймворк работает под капотом
Базы данных:
- Улучшай навыки SQL (сложные запросы, оптимизация)
- Изучи NoSQL решения (MongoDB, Redis)
Инструменты:
- Git (ветвление, слияние, работа с удаленными репозиториями)
- Docker (контейнеризация приложений)
- CI/CD (например, GitHub Actions)
Тестирование:
- Юнит-тесты (pytest)
- Интеграционные тесты
- TDD (разработка через тестирование)
Асинхронное программирование:
- asyncio
- Знакомство с FastAPI
Алгоритмы и структуры данных:
- Решай задачи на LeetCode
Еще про архитектуру почитать.
Soft skills:
- Работа в команде
- Умение читать чужой код
- Навыки презентации своих решений
Для первого собеседования:
- Уверенное владение основами Python
- Понимание ООП и паттернов проектирования
- Знание фреймворка
- Базовые знания HTTP и REST
- Понимание работы с реляционными БД
- Опыт работы с Git
- Умение объяснять свой код
- Готовность решать алгоритмические задачи
- Что-то из DDD
#python #django #djangoschool
👍10❤2🔥2
Навигация по каналу
#менторство - все про менторство
#djangoschool - хэштег канала
#club - всё что относится к моим клубам по веб разработке и программированию
#django - всё что касается фреймворка Django, от новостей, книг, статей до видео.
#djangoвидеоуроки - видео уроки по Django
#drfвидеоуроки - видео уроки по Django Rest Framework
#djangorestframework и #drf - всё что касается фреймворка Django Rest Framework
#видео - советы по разным видео которые полезно посмотреть, от ОС до веб и т.д.
#видеоуроки - мои видеоуроки по разным инструментам
#стрим - мои стримы по разным инструментам и не только
#gamedev - всё что относиться к разработке игр
#tools - библиотеки, фреймворки и разные инструменты которые могут быть полезны
#книги - советы по книгам которые можно почитать
#статьи - советы по статьям которые можно почитать
#мысли - мои мысли, рассуждения и советы на разные темы, от саморазвития до разработки. Делюсь опытом.
#roadmap - дорожные карты для развития как специалиста в разных направлениях
#backend - всё что будет полезно backend разработчикам
#frontend - всё что будет полезно frontend разработчикам
#python - общее по Python, от библиотек до полезных штук
#esmerald - всё что касается фреймворка Esmerald, от новостей, книг, статей до видео
#edgy - про ORM Edgy
#stoneadmin - про мою попытку сделать админку для Esmerald
#litestar - всё что касается фреймворка Litestar, от новостей, книг, статей до видео
#trip - фото и видео моих похождений по этой планете
#юморок - разный юмор
#ai #ии #нейронныесети #искусственныйинтеллект - всё про нейросети
#aiдляучебы - нейросети для учебы
#aiдлявсех - нейросети для всех в повседневной жизни
#aiдляпразника - нейросети помогают с праздниками
Данный пост будет дополняться и изменяться.
Со временем я актуализирую хештеги в постах.
Если вы встретили пост без подходящего хештега, можете написать об этом в комментариях к тому посту.
#менторство - все про менторство
#djangoschool - хэштег канала
#club - всё что относится к моим клубам по веб разработке и программированию
#django - всё что касается фреймворка Django, от новостей, книг, статей до видео.
#djangoвидеоуроки - видео уроки по Django
#drfвидеоуроки - видео уроки по Django Rest Framework
#djangorestframework и #drf - всё что касается фреймворка Django Rest Framework
#видео - советы по разным видео которые полезно посмотреть, от ОС до веб и т.д.
#видеоуроки - мои видеоуроки по разным инструментам
#стрим - мои стримы по разным инструментам и не только
#gamedev - всё что относиться к разработке игр
#tools - библиотеки, фреймворки и разные инструменты которые могут быть полезны
#книги - советы по книгам которые можно почитать
#статьи - советы по статьям которые можно почитать
#мысли - мои мысли, рассуждения и советы на разные темы, от саморазвития до разработки. Делюсь опытом.
#roadmap - дорожные карты для развития как специалиста в разных направлениях
#backend - всё что будет полезно backend разработчикам
#frontend - всё что будет полезно frontend разработчикам
#python - общее по Python, от библиотек до полезных штук
#esmerald - всё что касается фреймворка Esmerald, от новостей, книг, статей до видео
#edgy - про ORM Edgy
#stoneadmin - про мою попытку сделать админку для Esmerald
#litestar - всё что касается фреймворка Litestar, от новостей, книг, статей до видео
#trip - фото и видео моих похождений по этой планете
#юморок - разный юмор
#ai #ии #нейронныесети #искусственныйинтеллект - всё про нейросети
#aiдляучебы - нейросети для учебы
#aiдлявсех - нейросети для всех в повседневной жизни
#aiдляпразника - нейросети помогают с праздниками
Данный пост будет дополняться и изменяться.
Со временем я актуализирую хештеги в постах.
Если вы встретили пост без подходящего хештега, можете написать об этом в комментариях к тому посту.
👍10🔥4 1
UV - менеджер пакетов и проектов Python, написанный на Rust.
Кто-то пользуется этим пакетным менеджером, как вам?
https://github.com/astral-sh/uv
#djangoschool #tools #uv #python
Кто-то пользуется этим пакетным менеджером, как вам?
https://github.com/astral-sh/uv
#djangoschool #tools #uv #python
GitHub
GitHub - astral-sh/uv: An extremely fast Python package and project manager, written in Rust.
An extremely fast Python package and project manager, written in Rust. - astral-sh/uv
🔥5
Media is too big
VIEW IN TELEGRAM
Python Flet знакомство
Flet позволяет разработчикам легко создавать веб, мобильные и настольные приложения на Python.
#djangoschool #python #видео #flet
Flet позволяет разработчикам легко создавать веб, мобильные и настольные приложения на Python.
#djangoschool #python #видео #flet
1 5
Сегодня в клубе по веб разработке с ребятами затронули match case в python.
Задумались над скоростью его выполнения.
Как вы считаете, на сколько медленный match case?
Хорошая статья о match case, когда и как его использовать, и стоит ли.
#djangoschool #python
Задумались над скоростью его выполнения.
Как вы считаете, на сколько медленный match case?
Хорошая статья о match case, когда и как его использовать, и стоит ли.
#djangoschool #python
kirill-sklyarenko.ru
Сопоставление с шаблоном структуры (Structural pattern matching) и ситуации, где оно неприменимо
Архив моих переводов на интересные для меня темы
🔥10
Какие есть проблемы в Python и других языках.
Как эти проблемы решаются.
YouTube
#djangoschool #видео
Как эти проблемы решаются.
YouTube
#djangoschool #видео
YouTube
В Python все плохо, выпуск 8
В подкасте «OR» мы сталкиваем разные мнения и обсуждаем горячие айти-вопросы. Подписывайтесь на наш канал здесь и в телеграм https://t.me/meetups_evrone, чтобы быть в курсе будущих событий и митапов и не пропускать другие полезные видео!
00:00 - Введение…
00:00 - Введение…
👍4👎1
Media is too big
VIEW IN TELEGRAM
#1 Создание сайта на Django с помощью нейросети - верстка.
Начну с дизайна и верстки.
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #программирование #deepseek #mistral #chatgpt #claude #sonnet #видео
Начну с дизайна и верстки.
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #программирование #deepseek #mistral #chatgpt #claude #sonnet #видео
🔥13 2
Media is too big
VIEW IN TELEGRAM
#2 Создание сайта на Django с помощью нейросети - backend. Первое приложение.
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #программирование #deepseek #mistral #chatgpt #claude #sonnet #видео
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #программирование #deepseek #mistral #chatgpt #claude #sonnet #видео
🔥16
Media is too big
VIEW IN TELEGRAM
#3 Нейросеть пишет Django модели | Создание сайта на Django с помощью нейросети
Пишем модели пользователя и блога с помощью нейросети.
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #deepseek #видео
Пишем модели пользователя и блога с помощью нейросети.
#django #ai #ии #нейросети #нейронныесети #djangoschool #python #deepseek #видео