Типизация в Python с использованием модуля typing
В Python модуль typing предоставляет возможность добавлять подсказки типов для переменных, функций и классов, что делает код более явным и понятным.
Зачем использовать типизацию?
1. Ясность и понятность кода: Добавление аннотаций типов помогает читателям быстро понять, какие данные ожидаются и какие типы переменных возвращаются из функций.
2. Предотвращение ошибок: Статические анализаторы кода, такие как mypy, могут обнаруживать потенциальные ошибки до выполнения программы, что уменьшает количество багов.
3. Документация кода: Подсказки типов могут служить формой документации, особенно полезной при совместной разработке. Разработчики могут быстро понимать интерфейсы функций и классов.
Пример использования типизации для переменных и функций:
from typing import List, Tuple
def multiply(a: int, b: int) -> int:
return a * b
def process_list(data: List[int]) -> Tuple[int, int]:
sum_values = sum(data)
average = sum_values / len(data)
return sum_values, average
# Пример использования
result1 = multiply(5, 3)# Ожидается int
data_list = [1, 2, 3, 4, 5]
result2 = process_list(data_list)# Ожидается Tuple[int, int]
Здесь a: int и b: int указывают на типы аргументов функции, а -> int и -> Tuple[int, int] - на типы возвращаемых значений. Это помогает читателям кода лучше понимать ожидаемую структуру данных и типы переменных.
Типизация делает ваш код более структурированным, улучшает его читабельность и может служить документацией, облегчая разработку.
#python#typing
Визуализация палитры изображений🎨
Сегодня мы выпустили проект про революционные "Окна сатиры РОСТА". 105 лет назад, осенью 1919 года в Москве вышел первый плакат.
Для этого проекта я проанализировала данные об "Окнах", созданных московской редакцией, из собрания Госархива РФ. Поэт В.В. Маяковский написал тексты более половины сохранившихся "Окон" и нарисовал более трети сюжетов.
Вкладу Маяковского в создание плакатов посвящено несколько визуализаций: с анализом текстов его авторства и цветовой палитрой плакатов, нарисованных им же.
Палитра, на мой взгляд, — самая интересная инфографика проекта. Похожий график я уже делала раньше про ленинградские "Окна ТАСС" (писала о нем и его создании в посте и статье).
В этот раз удалось переосмыслить концепцию прошлого графика и более детально показать историю с образами — цвета в больших группах "коммунизм" и "империализм" повторяются, но связаны с разными персонажами и идеями. В визуализации "Окон ТАСС" такого подхода нет, но зато отражены реальные соотношения сторон плакатов. Для новой палитры подобных данных не было (что, кстати, позволило выстроить более аккуратную композицию).
P.S. Процесс создания графика покажу в отдельном посте👀
#датавиз#рабочее#python
Написала статью для нашего редакционного канала про создание графика "Пересечение цветов "Окон ТАСС" по образам". Он показывает, какие оттенки преобладают в палитре ленинградских плакатов времен Великой Отечественной войны, изображающих врага, Красную армию, тыл и Родину.
В основе — диаграмма Венна, которая является одним из классических способов визуализации пересечения множеств (подробнее про него и другие визы множеств рассказывала тут)🤓
Для анализа цвета использовала python, а для автоматического создания элементов визуализации с сохранением пропорций плакатов — плагин Generator для графического редактора Figma. Самой сложной, как ни странно, оказалась не техническая часть, а расположение элементов по цветам😵💫
P.S. Другие визуализации, посвященные ленинградским "Окнам ТАСС", — в проекте.
#датавиз#рабочее#python
#book#python
🐍
Aprenda a pensar como un programador con Python
✍Allen Downey, Chris Meyers, Jeffrey Elkner, ...
Python es un lenguaje de programación divertido y extremadamente fácil de usar que en los últimos años se ha hecho muy popular. Desarrollado hace diez...
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----
#book#Python
📓
Phyton Programming Bible: [3 in 1] The Complete Crash Course to Learn and Explore Python beyond the Basics. Including Examples and Practical Exercises to Master Python from Beginners to Pro
-----
Main channel: @repo_science
Coupons: @freecoupons_reposcience
-----