Реализация класса QRTetris. Часть 2
• Метод для решения СЛУ
• Метод для решения СЛУ
def cut(self):
if self.qr is None:
logger.error(f"No QR code generated. Call build() first!")
return
self._find_markers()
points = self.get_points()
count = len(points)
A = []
b = []
for x, y in points:
A.append(
[x**i for i in reversed(range(count))]
)
b.append(y)
result = tuple(np.linalg.solve(A, b))
logger.debug(f"Solution: {result}")
for i in range(self.qr.modules_count):
for j in range(self.qr.modules_count):
s = 0
for index, k in enumerate(reversed(range(count))):
s += result[index] * j**k
if s < -i:
self.qr.modules[i][j] = False
• Метод отрисовки тетриса согласно нашей программе def run(
self,
interval = 0.5,
fast_interval = 0.1,
output: Optional[str] = None,
show=True
):
field = GameField(
self.qr,
interval=interval,
fast_interval=fast_interval,
gif_output=output,
tty_enabled=show
)
for instruction in self.program:
field.execute(instruction)
if output:
field.save_gif()
field.cleanup()
👩🏽💻👍3
Немногие знают, что живу я в чудесном городе на юге нашей страны - Ростове-на-Дону
В рамках проекта #ТопБлог нам предложили рассказать о личном бренде своего города.
Мне стало интересно это сделать в формате бота-экскурсовода.
Функционал:
• Пользователь получает карту с маршрутом перемещения.
• В заданном порядке пользователь проходит экскурсионный маршрут, получая интерактивную историческую справку о каждой достопримечательности.
• После изучения достопримечательности пользователю предлагается пройти квиз для закрепления знаний.
• За прохождение маршрута пользователь получает баллы.
• В конце экскурсии пользователь может обменять баллы на сувениры южной столицы.
Цель:
Сделать изучение истории интерактивным процессом.
Проект выполняется совместно с историческим факультетом ЮФУ.
Первыми пользователями будут студенты первого курса, для которых ежегодно проводят экскурсии по городу.
Как вам идея? Хотели бы попробовать?
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
В рамках проекта #ТопБлог нам предложили рассказать о личном бренде своего города.
Мне стало интересно это сделать в формате бота-экскурсовода.
Функционал:
• Пользователь получает карту с маршрутом перемещения.
• В заданном порядке пользователь проходит экскурсионный маршрут, получая интерактивную историческую справку о каждой достопримечательности.
• После изучения достопримечательности пользователю предлагается пройти квиз для закрепления знаний.
• За прохождение маршрута пользователь получает баллы.
• В конце экскурсии пользователь может обменять баллы на сувениры южной столицы.
Цель:
Сделать изучение истории интерактивным процессом.
Проект выполняется совместно с историческим факультетом ЮФУ.
Первыми пользователями будут студенты первого курса, для которых ежегодно проводят экскурсии по городу.
Как вам идея? Хотели бы попробовать?
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
👏4🔥1
6 пасхалок языка Python 😏
• Летающий змий
Запускается командой:
• Geohash
В этой пасхалке есть еще одна пасхалка. Изучение реализации модуля antigravity.py обнаруживает скрытую функцию под названием «geohash», которая является ссылкой на другой комикс XKCD о геохешировании. Запуск:
• Нет шансов для фигурных скобок
Предпочитаете фигурные скобки в стиле C вместо отступов? Увы их никогда не будет:
Хеш – это фиксированное целое число, идентифицирующее конкретную величину. Хеш бесконечности в Python равен 10⁵ x π. Интересно, что float('-inf') в Python3 хэш равен «-10⁵ x π», а в Python 2 – «-10-x e»:
Только в Python заветную фразу "примет, мир!" можно получить так просто:
Все пасхалки вы можете проверить самостоятельно в интерпретаторе, запустив команду: $ python3
• Летающий змий
Запускается командой:
>>> import antigravity
Команда открывает в браузере комикс XKCD, в котором упоминается Python.• Geohash
В этой пасхалке есть еще одна пасхалка. Изучение реализации модуля antigravity.py обнаруживает скрытую функцию под названием «geohash», которая является ссылкой на другой комикс XKCD о геохешировании. Запуск:
>>> help(antigravity.geohash)
Функция использует алгоритм Рэндалла Манро, который генерирует случайные координаты GPS каждый день на основе промышленного индекса Доу-Джонса и текущей даты.• Нет шансов для фигурных скобок
Предпочитаете фигурные скобки в стиле C вместо отступов? Увы их никогда не будет:
>>> from __future__ import braces
File "<stdin>", line 1
SyntaxError: not a chance
• Хеш бесконечностиХеш – это фиксированное целое число, идентифицирующее конкретную величину. Хеш бесконечности в Python равен 10⁵ x π. Интересно, что float('-inf') в Python3 хэш равен «-10⁵ x π», а в Python 2 – «-10-x e»:
>>> hash (float ('inf'))
314159
>>> hash (float ('nan'))
0
• Hello WorldТолько в Python заветную фразу "примет, мир!" можно получить так просто:
>>> import __hello__
Hello World!
• Жизненная пасхалка о любви:>>> import this
>>> love = this
>>> this is love
True
>>> love is True
False
>>> love is False
False
>>> love is not True or False
True
>>> love is not True or False; love is love # FML
True
Ps: 👩🏽💻👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Завершаем QRTetris
В методе
Данный класс содержит следующие методы для отрисовки фигур падающих вниз, перемещающихся влево и вправо, отдельно реализован метод падения и ротации фигур, а также сохранения результата.
Код был получен с помощью следующей последовательности действий:
В методе
run(self, interval = 0.5, fast_interval = 0.1, output: Optional[str] = None, show=True )
мы используем объект класса GameField для создания игрового поля. Данный класс содержит следующие методы для отрисовки фигур падающих вниз, перемещающихся влево и вправо, отдельно реализован метод падения и ротации фигур, а также сохранения результата.
Код был получен с помощью следующей последовательности действий:
spawn z
down
left
down
left
drop
spawn i
down
down
drop
spawn z_reversed
down
left
down
left
down
left
rotate
down
left
drop
👩🏽💻👍4
IT-ИНСТРУМЕНТЫ ДЛЯ РАЗВИТИЯ КУЛЬТУРЫ🤖
Я продолжаю путешествовать по Калининградской области и встретилась с очень интересными соединением культуру, историю и IT.
Мы можем соединить it и культуру следующими способами:
• Облачные технологии
• Открытый доступ к данным
• Виртуальная реальность
• Оцифровка музеев
• Свобода панорамы
• Свободное распространение произведений, созданных на средства госбюджета
А вот те примеры, которые меня зацепили в Калининграде и которые я рекомендую вам:
Отличный пример я увидела в Калининграде - селфи с философом Иммауилом Кантом. У Кафедрального собора города в 2021 году установили голограмму философа.
Данный проект комплексный и требовал написание программы, конфигурация оборудования, и создание интерактивного фильма.
Результат-это стенд со специальным экраном, меняющим яркость в зависимости от освещения, в который встроено дополнительное оборудование: камера, динамики, сканер QR-кодов.
Ещё один пример созидания культурного наследия это экскурсионный маршрут «ОСТРОВ КАНТА: СКВОЗЬ ВРЕМЯ» - путешествие во времени в виртуальной реальности. Здесь используется технология виртуальной реальности + специально разработанный аудиогид. Комбинированные способы передачи изображения и звука раскрывают уникальную историю города. Вы перемещаетесь из настоящего в прошлое и узнаете историю основания Кёнигсберга и появления острова Канта.
Во время экскурсии вы увидите Королевский замок, Дровяной и Медовый мосты, вступите на остров Канта, посетите Соборную площадь, могилу Канта и университет Альбертину.
Таким образом, погружение в историю, позволяет глубже и детальнее изучить культуру и историю.
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
Я продолжаю путешествовать по Калининградской области и встретилась с очень интересными соединением культуру, историю и IT.
Мы можем соединить it и культуру следующими способами:
• Облачные технологии
• Открытый доступ к данным
• Виртуальная реальность
• Оцифровка музеев
• Свобода панорамы
• Свободное распространение произведений, созданных на средства госбюджета
А вот те примеры, которые меня зацепили в Калининграде и которые я рекомендую вам:
Отличный пример я увидела в Калининграде - селфи с философом Иммауилом Кантом. У Кафедрального собора города в 2021 году установили голограмму философа.
Данный проект комплексный и требовал написание программы, конфигурация оборудования, и создание интерактивного фильма.
Результат-это стенд со специальным экраном, меняющим яркость в зависимости от освещения, в который встроено дополнительное оборудование: камера, динамики, сканер QR-кодов.
Ещё один пример созидания культурного наследия это экскурсионный маршрут «ОСТРОВ КАНТА: СКВОЗЬ ВРЕМЯ» - путешествие во времени в виртуальной реальности. Здесь используется технология виртуальной реальности + специально разработанный аудиогид. Комбинированные способы передачи изображения и звука раскрывают уникальную историю города. Вы перемещаетесь из настоящего в прошлое и узнаете историю основания Кёнигсберга и появления острова Канта.
Во время экскурсии вы увидите Королевский замок, Дровяной и Медовый мосты, вступите на остров Канта, посетите Соборную площадь, могилу Канта и университет Альбертину.
Таким образом, погружение в историю, позволяет глубже и детальнее изучить культуру и историю.
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
👍5
Знакомство с Google Colab ✨
Google Colaboratory — бесплатная среда, чтобы писать код в jupyter notebook. Она функционирует по принципу облака, поэтому над одним проектом могут работать одновременно несколько человек. Ограничение — через 12 часов данные удаляются.
• Colab — бесплатный сервис, чтобы создавать код на Python.
• Главная фишка Colab — возможность писать проект на мощностях процессоров GPU и TPU.
• В Colab можно загружать папки с гугл-диска, клонировать репозитории.
Colab подходит специалистам по обработке данных и разработчикам нейросетей.
Он помогает:
• сортировать данные,
• строить визуализации,
• проводить машинное обучение,
• создавать системы для big data,
• составлять прогнозы,
• писать руководства.
Документация
Google Colaboratory — бесплатная среда, чтобы писать код в jupyter notebook. Она функционирует по принципу облака, поэтому над одним проектом могут работать одновременно несколько человек. Ограничение — через 12 часов данные удаляются.
• Colab — бесплатный сервис, чтобы создавать код на Python.
• Главная фишка Colab — возможность писать проект на мощностях процессоров GPU и TPU.
• В Colab можно загружать папки с гугл-диска, клонировать репозитории.
Colab подходит специалистам по обработке данных и разработчикам нейросетей.
Он помогает:
• сортировать данные,
• строить визуализации,
• проводить машинное обучение,
• создавать системы для big data,
• составлять прогнозы,
• писать руководства.
Документация
👍4
Начало работы в Google Colab ✨
Colab по умолчанию сохраняет блокноты на гугл-диске. Для начала войдите в аккаунт и создайте отдельную папку под готовые проекты.
Запустите блокнот. Нажмите «Создать» → «Еще» → Google Colaboratory. Чтобы переименовать блокнот, щелкните на имя файла.
Для настройки процессора выберите вкладку «Среда выполнения» и команду «Сменить среду управления». Помните, что, выбрав слишком мощный, есть риск вылететь из блокнота.
Colab по умолчанию сохраняет блокноты на гугл-диске. Для начала войдите в аккаунт и создайте отдельную папку под готовые проекты.
Запустите блокнот. Нажмите «Создать» → «Еще» → Google Colaboratory. Чтобы переименовать блокнот, щелкните на имя файла.
Для настройки процессора выберите вкладку «Среда выполнения» и команду «Сменить среду управления». Помните, что, выбрав слишком мощный, есть риск вылететь из блокнота.
👍4
Запуск основных команд Python в Colab🐍
В Colab много встроенных библиотек Python: Pandas, NumPy, Scikit-learn. Посмотреть полный список можно с помощью команды:
Чтобы подключить сторонние файлы с данными или кодом, нужно импортировать утилиту drive. Она монтирует диск к Colab:
Импорт файлов:
• напрямую закидывать на диск;
• скачать из интернета;
• скачать с Git-репозитория.
Последние два варианта исполняют непосредственно из Colab, дополнительно используя встроенные утилиты.
Для скачивания файл из интернета используется команда:
Для скачивания репозитория (GitHub, Bitbacket и другие) используется команда:
В Colab много встроенных библиотек Python: Pandas, NumPy, Scikit-learn. Посмотреть полный список можно с помощью команды:
!pip list
Для импорта сторонних библиотек, используйте команды:!pip install имя_библиотеки
import имя_библиотеки
Для выполнения кода щелкните на значок Play в левой части окна кода. Для очистки строки, щелкните на значок крестика в левой части окна. Чтобы подключить сторонние файлы с данными или кодом, нужно импортировать утилиту drive. Она монтирует диск к Colab:
from google.colab import drive
drive.mount ('/content/drive')
Когда выполните код выше, подтвердите, что разрешаете использовать диск.Импорт файлов:
• напрямую закидывать на диск;
• скачать из интернета;
• скачать с Git-репозитория.
Последние два варианта исполняют непосредственно из Colab, дополнительно используя встроенные утилиты.
Для скачивания файл из интернета используется команда:
!wget path/to/link Для скачивания репозитория (GitHub, Bitbacket и другие) используется команда:
!git clone path\to\repo👍4
С днём рождения ПК🥳
Компания IBM 41 год назад, а именно 12 августа 1981 года, выпустила первый ПК.
Присоединяйтесь к поздравлениям и поздравьте своих коллег!
Компания IBM 41 год назад, а именно 12 августа 1981 года, выпустила первый ПК.
Присоединяйтесь к поздравлениям и поздравьте своих коллег!
👍2
Задача про три участка и роутер 👩🏽💻
Три брата купили квадратные участки в лесном посёлке. Участки одинакового размера. Длина каждого участка — 100 метров, а расположены они треугольником.
Братья решили сэкономить на интернете и поставить один роутер на троих. Чтобы найти точку, одинаково близкую ко всем участкам, они вплотную обвели три квадрата в круг и поставили роутер точно в центре получившегося круга.
Но братья не учли, что сигнал роутера дотягивается только на 130 метров, а дальше интернет теряется. Хватит ли братьям этого роутера или нужно взять мощнее?
Ответ:будет через 24 часа
#itЛогика
Три брата купили квадратные участки в лесном посёлке. Участки одинакового размера. Длина каждого участка — 100 метров, а расположены они треугольником.
Братья решили сэкономить на интернете и поставить один роутер на троих. Чтобы найти точку, одинаково близкую ко всем участкам, они вплотную обвели три квадрата в круг и поставили роутер точно в центре получившегося круга.
Но братья не учли, что сигнал роутера дотягивается только на 130 метров, а дальше интернет теряется. Хватит ли братьям этого роутера или нужно взять мощнее?
Ответ:
👍4
Решение. Задача про три участка и роутер.
Объяснение получилось объёмный, поэтому переходи по ссылку и читай👇🏻
https://telegra.ph/Reshenie-zadachi-pro-tri-uchastka-i-router-08-15
Объяснение получилось объёмный, поэтому переходи по ссылку и читай👇🏻
https://telegra.ph/Reshenie-zadachi-pro-tri-uchastka-i-router-08-15
👍5
Полезные советы по Python, которых вы ещё не встречали 👩🏽💻
Автор статьи, перевод которой доступен по ссылке ниже, хочет рассказать о некоторых возможностях Python, которыми он пользуется.
Ссылка на статью: https://telegra.ph/Poleznye-sovety-po-Python-kotoryh-vy-eshchyo-ne-vstrechali-08-20
Автор статьи, перевод которой доступен по ссылке ниже, хочет рассказать о некоторых возможностях Python, которыми он пользуется.
Ссылка на статью: https://telegra.ph/Poleznye-sovety-po-Python-kotoryh-vy-eshchyo-ne-vstrechali-08-20
Telegraph
Полезные советы по Python, которых вы ещё не встречали
Очистка входных строковых данных Задача очистки данных, вводимых пользователем, актуальна практически для любой программы. Часто такая обработка входных данных сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с…
👍3
Найди пару достопримечательностям Ростова-на-Дону 👩🏽💻
Ростов-на-Дону—столица ЮФО (1749г.)
Что же советую посмотреть я:
• Археологический заповедник Танаис.
Один из старейших созданных в стране историко-археологических музеев-заповедников под открытым небом
• Шолохов-центр
Филиал Музея-заповедника М. А. Шолохова в самом центре Ростова-на-Дону.
• Ростовский театр драмы имени М. Горького
Памятник позднего конструктивизма, определяет облик и название Театральной площади.
• Ботанический сад ЮФУ
Самая зеленая достопримечательность города площадью 160,5 гектара. Основан он еще в 1927 году.
• Тачанка-Ростовчанка
Монумент посвящен Первой Конной Армии в годы Гражданской войны, установлен в год 60-летия Октябрьской революции.
• Ворошиловский мост
Самый известный ростовский мост протяженностью 450 метров — построен в 1960-е годы.
А запомнить их можно с помощью моей игры "Найди пару"👇🏻
https://scintillating-donut-e6a0cc.netlify.app
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
Ростов-на-Дону—столица ЮФО (1749г.)
Что же советую посмотреть я:
• Археологический заповедник Танаис.
Один из старейших созданных в стране историко-археологических музеев-заповедников под открытым небом
• Шолохов-центр
Филиал Музея-заповедника М. А. Шолохова в самом центре Ростова-на-Дону.
• Ростовский театр драмы имени М. Горького
Памятник позднего конструктивизма, определяет облик и название Театральной площади.
• Ботанический сад ЮФУ
Самая зеленая достопримечательность города площадью 160,5 гектара. Основан он еще в 1927 году.
• Тачанка-Ростовчанка
Монумент посвящен Первой Конной Армии в годы Гражданской войны, установлен в год 60-летия Октябрьской революции.
• Ворошиловский мост
Самый известный ростовский мост протяженностью 450 метров — построен в 1960-е годы.
А запомнить их можно с помощью моей игры "Найди пару"👇🏻
https://scintillating-donut-e6a0cc.netlify.app
#ТопБЛОГ, #РоссияСтранаВозможностей, #БольшеЧемПутешествие.
@stranavozmojnostey.
👍5
21 основной инструмент Python для разработчиков 👩🏽💻
Узнайте об основных инструментах Python для разработки программного обеспечения, веб-скреппинга и разработки, анализа и визуализации данных, а также машинного обучения.
• Инструменты для разработки Python
Jupyter Notebook
Pip
VSCode
• Инструменты веб-скрейпинга Python
Requests
Beautiful Soup
Scrapy
• Инструменты веб-разработки Python
Flask
Streamlit
FastAPI
• Инструменты анализа данных Python
pandas
Numpy
SQLAlchemy
Dask
• Инструменты визуализации данных Python
Matplotlib
Seaborn
Plotly
Pandas-profiling
• Инструменты машинного обучения Python
Scikit-learn
Keras
PyTorch
OpenCV
Начинаем наш учебный сентябрь и познакомимся с каждым из инструментов поближе🍂
Узнайте об основных инструментах Python для разработки программного обеспечения, веб-скреппинга и разработки, анализа и визуализации данных, а также машинного обучения.
• Инструменты для разработки Python
Jupyter Notebook
Pip
VSCode
• Инструменты веб-скрейпинга Python
Requests
Beautiful Soup
Scrapy
• Инструменты веб-разработки Python
Flask
Streamlit
FastAPI
• Инструменты анализа данных Python
pandas
Numpy
SQLAlchemy
Dask
• Инструменты визуализации данных Python
Matplotlib
Seaborn
Plotly
Pandas-profiling
• Инструменты машинного обучения Python
Scikit-learn
Keras
PyTorch
OpenCV
Начинаем наш учебный сентябрь и познакомимся с каждым из инструментов поближе🍂
👍3
Инструменты для Python разработки ✨
• Jupyter Notebook
Jupyter Notebook — это веб-среда IDE. Он популярен среди Data Scientists специалистов и ML-специалистов. Jupyter Notebook позволяет добавлять описание и заголовок, экспортировать результат в виде файлов PDF и .ipynb.
• Pip
Pip — это инструмент, который использует индекс пакетов Python для установки и управления программным обеспечением Python. Вам доступно 393 343 проекта, которые вы можете загрузить и установить с молниеносной скоростью:
• VSCode
Visual Studio Code — это бесплатный, легкий и мощный редактор кода. Вы можете создавать, тестировать, развертывать и поддерживать все типы приложений, не выходя из окна программного обеспечения. Он поставляется с подсветкой синтаксиса, автозавершением кода, языком, Git и встроенной поддержкой отладки. Вы можете использовать расширения для предварительной сборки систем и развертывания приложений в облаке. VSCode — самая популярная IDE в мире. Бесплатные расширения позволяют специалистам по обработке и анализу данных проводить эксперименты в Jupyter Notebook , редактировать файлы, интегрировать SQL-сервер, совместно работать над проектами, использовать автозаполнение кода и встроенную справку по коду.
• Jupyter Notebook
Jupyter Notebook — это веб-среда IDE. Он популярен среди Data Scientists специалистов и ML-специалистов. Jupyter Notebook позволяет добавлять описание и заголовок, экспортировать результат в виде файлов PDF и .ipynb.
• Pip
Pip — это инструмент, который использует индекс пакетов Python для установки и управления программным обеспечением Python. Вам доступно 393 343 проекта, которые вы можете загрузить и установить с молниеносной скоростью:
pip установить <имя_пакета>С помощью Pip можно создавать среды Python и управлять ими, устанавливать зависимости и устанавливать пакеты из сторонних репозиториев, используя URL-адреса.
• VSCode
Visual Studio Code — это бесплатный, легкий и мощный редактор кода. Вы можете создавать, тестировать, развертывать и поддерживать все типы приложений, не выходя из окна программного обеспечения. Он поставляется с подсветкой синтаксиса, автозавершением кода, языком, Git и встроенной поддержкой отладки. Вы можете использовать расширения для предварительной сборки систем и развертывания приложений в облаке. VSCode — самая популярная IDE в мире. Бесплатные расширения позволяют специалистам по обработке и анализу данных проводить эксперименты в Jupyter Notebook , редактировать файлы, интегрировать SQL-сервер, совместно работать над проектами, использовать автозаполнение кода и встроенную справку по коду.
👍5
Инструменты веб-скрейпинга на Python 👩🏽💻
• Requests
Запросы упрощают отправку HTTP-запросов. Для добавления аутентификации, аргументов и строк запросов конфигурации к URL-адресам, можно использовать API запросов и метод get JSON. Requests — довольно популярная среди специалистов по работе с данными библиотека для парсинга многостраничных веб-сайтов.
• Beautiful Soup
Beautiful Soup используется для очистки и извлечения данных из HTML и XLM и для анализа HTML-текста, позволяет преобразовывать текстовые данные в структурированную таблицу или фрейм данных pandas. В некоторых случаях вам нужен только тег таблицы, и вы можете получить доступ ко всем данным без разбора текста.
• Scrapy
Scrapy — это совместная платформа с открытым исходным кодом для парсинга и сканирования веб-страниц. Это быстро, просто и расширяемо для сканирования многостраничных веб-сайтов для извлечения данных в структурированном формате. Обычно он используется для интеллектуального анализа данных, мониторинга и автоматизированного тестирования.
• Requests
Запросы упрощают отправку HTTP-запросов. Для добавления аутентификации, аргументов и строк запросов конфигурации к URL-адресам, можно использовать API запросов и метод get JSON. Requests — довольно популярная среди специалистов по работе с данными библиотека для парсинга многостраничных веб-сайтов.
• Beautiful Soup
Beautiful Soup используется для очистки и извлечения данных из HTML и XLM и для анализа HTML-текста, позволяет преобразовывать текстовые данные в структурированную таблицу или фрейм данных pandas. В некоторых случаях вам нужен только тег таблицы, и вы можете получить доступ ко всем данным без разбора текста.
• Scrapy
Scrapy — это совместная платформа с открытым исходным кодом для парсинга и сканирования веб-страниц. Это быстро, просто и расширяемо для сканирования многостраничных веб-сайтов для извлечения данных в структурированном формате. Обычно он используется для интеллектуального анализа данных, мониторинга и автоматизированного тестирования.
🔥3👍1