📖 Изучаем основы Python. Практический
курс для дата-аналитиков
⬇️ Скачать книгу
👉 Python Ready | #книга
курс для дата-аналитиков
В книге подробно рассматриваются основные концепции и инструменты языка Python, необходимые для работы в сфере дата-аналитики
Автор: Павел М.
Год издания: 2023
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥2🤝2
Сейчас поговорим про особенности работы со вложенными функциями в питончике
Вложенные функции обеспечивают удобный способ инкапсуляции логики и создания замыканий, что делает ваш код гибким и мощным. Рассмотрим 3 пункта по работе с ними:
1. Замыкание с передачей данных — Замыкание сохраняет переменные из внешней функции для дальнейшего использования:
2. Изменение внешней переменной — С помощью
3. Динамическое поведение вложенных функций — Вложенные функции позволяют динамически задавать логику выполнения:
🔥 Про что ещё хотите увидеть разбор? Делись своим мнением в комментах под постом!
👉 Python Ready | #техсобес
Вложенные функции обеспечивают удобный способ инкапсуляции логики и создания замыканий, что делает ваш код гибким и мощным. Рассмотрим 3 пункта по работе с ними:
1. Замыкание с передачей данных — Замыкание сохраняет переменные из внешней функции для дальнейшего использования:
def multiplier(x):
def inner(y): return x * y
return inner
double = multiplier(2)
double(5) # вернет 10
2. Изменение внешней переменной — С помощью
nonlocal
вложенная функция может изменять переменные внешней области видимости: def counter():
count = 0
def increment():
nonlocal count
count += 1
return count
return increment
counter()() # вернет 1
3. Динамическое поведение вложенных функций — Вложенные функции позволяют динамически задавать логику выполнения:
def apply(op, x, y):
def add(a, b): return a + b
def multiply(a, b): return a * b
return {"add": add, "multiply": multiply}[op](x, y)
apply("add", 2, 3) # вернет 5
🔥 Про что ещё хотите увидеть разбор? Делись своим мнением в комментах под постом!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥20👍6🤝2
В этом посте мы попробуем создать простую систему управления задачами на Python. Также вы научитесь:
- Структура данных для задач
- Функция для добавления новой задачи
- Функция для изменения статуса задачи
- Функция для просмотра всех задач
🔥 — если узнал новое
🤝 — если уже пользовался
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28👍8🤝3
А вы знали про возможность ошибки при изменении списка во время итерации?
Как раз сегодня разберем распространенную ошибку Python — изменение списка во время итерации. Эта ловушка может привести к пропущенным элементам или неожиданным результатам.
Когда вы изменяете список в процессе итерации, Python изменяет индексы элементов, что может пропускать некоторые значения:
Происходит это из-за того, что удаление изменяет длину списка, а цикл перескакивает через элементы.
Чтобы избежать пропусков, итерируйтесь по копии списка:
А иногда проще создать новый список с нужными элементами:
Но вот если работать со вложенными списками, прямое изменение элементов также может привести к неожиданным результатам:
🔥 Поэтому лучше работайте с копиями или используйте безопасные методы, такие как списковые включения)
👉 Python Ready | #практика
Как раз сегодня разберем распространенную ошибку Python — изменение списка во время итерации. Эта ловушка может привести к пропущенным элементам или неожиданным результатам.
Когда вы изменяете список в процессе итерации, Python изменяет индексы элементов, что может пропускать некоторые значения:
nums = [1, 2, 3, 4]
for num in nums:
if num % 2 == 0:
nums.remove(num)
print(nums) # [1, 3]
Происходит это из-за того, что удаление изменяет длину списка, а цикл перескакивает через элементы.
Чтобы избежать пропусков, итерируйтесь по копии списка:
nums = [1, 2, 3, 4]
for num in nums[:]: # Создаем копию
if num % 2 == 0:
nums.remove(num)
print(nums) # [1, 3]
А иногда проще создать новый список с нужными элементами:
nums = [1, 2, 3, 4]
nums = [num for num in nums if num % 2 != 0]
print(nums) # [1, 3]
Но вот если работать со вложенными списками, прямое изменение элементов также может привести к неожиданным результатам:
matrix = [[1, 2], [3, 4]]
for row in matrix:
row.append(0)
print(matrix) # [[1, 2, 0], [3, 4, 0]]
🔥 Поэтому лучше работайте с копиями или используйте безопасные методы, такие как списковые включения)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥8❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Прикольный сайт, где можно генерировать тестовые данные для своих нужд
Mockaroo — онлайн-инструмент для генерации тестовых данных в различных форматах (JSON, CSV, SQL и др.), идеально подходящий для тестирования приложений и прототипирования
👉 Python Ready | #ресурс
Mockaroo — онлайн-инструмент для генерации тестовых данных в различных форматах (JSON, CSV, SQL и др.), идеально подходящий для тестирования приложений и прототипирования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5🤝1
👍10🔥5
Давайте вспомним один из важных типов данных в Python — словарь. Он хранит данные в виде пар ключ–значение, что делает его удобным для хранения информации, например, о пользователе.
В этой шпаргалке разберём полезные методы словарей, которые позволяют эффективно управлять данными.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍19🔥6🤝4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁71🔥12👍4
Сейчас обсудим с вами исключения и управление ошибками в питончике
Грамотное управление исключениями помогает писать устойчивый код. Python предоставляет удобный синтаксис для перехвата и обработки ошибок, а также позволяет создавать свои собственные исключения.
1. Обработка исключений с try-except — ключевой способ предотвращения аварийного завершения программы:
2. Использование finally — Блок
3. Создание пользовательского исключения — определите свой класс исключения для кастомных ошибок:
👉 Python Ready | #техсобес
Грамотное управление исключениями помогает писать устойчивый код. Python предоставляет удобный синтаксис для перехвата и обработки ошибок, а также позволяет создавать свои собственные исключения.
1. Обработка исключений с try-except — ключевой способ предотвращения аварийного завершения программы:
try:
result = 10 / 0
except ZeroDivisionError:
result = None
print(result) # None
2. Использование finally — Блок
finally
выполняется всегда, даже если произошло исключение: try:
f = open("example.txt", "r")
except FileNotFoundError:
print("File not found")
finally:
print("Cleaning up") # Чистим ресурсы, если нужно
3. Создание пользовательского исключения — определите свой класс исключения для кастомных ошибок:
class CustomError(Exception):
pass
try:
raise CustomError("An error occurred")
except CustomError as e:
print(e) # An error occurred
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥7🤝1
В этом посте мы рассмотрим упаковку и распаковку аргументов с помощью * и **, их применение для списков, словарей и функций. Аргументы очень часто используются в кодинге, рекомендую их изучить!
- Упаковка аргументов с *args
- Упаковка именованных аргументов с **kwargs
- Распаковка словарей
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍10🤝5