Python и 1000 уязвимостей
37.7K subscribers
1.85K photos
563 videos
27 files
1.98K links
Сила в единстве.

Сотрудничество: @workhouse_price

Канал на бирже:
https://telega.in/channels/osint_pythons/card

№ 5383975776
РКН: https://clck.ru/3FtTDH
Download Telegram
📣 Головоломка «Сапёр» на Python в 66 строк и ее решение вероятностным алгоритмом

Писать головоломку будем оп нескольким требованиям:
Программа представляет собой консольный вариант головоломки Сапёр. Игровое поле печатается в stdout, колонки и поля нумеруются, каждый шаг консоль очищается от предыдущих данных.
При запуске программа принимает в качестве аргументов размер поля (ширину и высоту) и количество мин. По умолчанию, без передачи аргументов, создается игровое поле размером 10x10 с 10 минами.
Управление происходит путем передачи команд в стандартный ввод (stdin) в формате row col.
Первым ходом нельзя проиграть, т.е. ячейка, выбранная в первом ходе, не должна содержать мину. Также соседние ячейки не должны содержать мины.
Победа засчитывается, когда на игровом поле все незаминированные ячейки раскрыты, поражение – когда игрок открывает ячейку с миной. Последним ходом выводится соответствующее сообщение о победе или поражении и полностью открытое игровое поле.
Необходимо реализовать алгоритм решения головоломки. На каждом шаге программа печатает текущее состояние игры с сопутствующей справочной информацией

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥32
Media is too big
VIEW IN TELEGRAM
▶️ Список и кортеж

В видео рассмотрим особенности списков и кортежей: что хочет слышать работодатель, как хранятся в памяти, почему кортеж реально неизменяемый

Использование кортежей:
Используй [] для создания пустого списка ({} для словаря)
Если заранее известен размер, то не используй append (для 8000 добавлений выделяется 8600 ячеек памяти)
Используй листкомпс
Не пытайся заменять список кортежом, там где идет изменение размера

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
👍17🤯71🔥1
📣 Как писать модульные тесты для функций в Python

С помощью этого руководства вы научитесь писать модульные тесты для функций Python

В данном руководстве, Вы научитесь:
Обращаться с модульными тестами в Python.
Использовать встроенный в Python модуль unittest для настройки и запуска модульных тестов, а также для написания тестовых примеров для проверки функций Python
Тестировать функции, которые вызывают исключения

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Media is too big
VIEW IN TELEGRAM
▶️ Паттерн Singleton (Одиночка) в Python

Singleton (Одиночка) – это шаблон предоставления глобального доступа к состоянию, гарантируется, что объект всегда будет один и тот же.

Нужен для одной точки доступа к ресурсам/данным и для того чтобы ресурсоемкие задачи сделать 1 раз

Monostate – это шаблон предоставления глобального доступа к состоянию, объекты при этом могут быть разными

Плюсы: 1 раз выполняем тяжелые задачи, имеем 1 вход для всей системы
Минусы: общесистемная глобальная переменная

Модуль в python – это Singleton!
Потому нам никуда от них не деться, даже если считать Singleton анти-паттерном


👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Что выведет код?
Anonymous Quiz
30%
1, 2, 3, 4
11%
1, 2, 3 + 4
34%
4
26%
Ошибку
🔥19🤔7🤯7
📣 Как обрабатывать ошибки в Python | Раскрываем значения ключевых слов try, except, else и finally

«Достаточно сложно найти ошибки в вашем коде, если вы ее ищете; еще сложнее, если вы думаете, что в вашем коде нет ошибок» – Стив МакКоннелл

В статье как можно реализовать обработку ошибок в Python с помощью блоков try/except для того, чтобы отлавливать потенциальные ошибки.

А также изучим, как использовать блоки else и finally, которые также связаны с методами обработки ошибок

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥1
Media is too big
VIEW IN TELEGRAM
▶️ Доступ к свойствам объекта | Property и slots

В видео обсудим интересный вопрос – как можно запретить менять наши атрибуты, реализовать логику изменения/получения атрибутов и как запретить добавлять объекту новые атрибуты.

_dict_ – это атрибут объектов в питоне, который хранит состояние
_setattr_ – вызывается при попытке установить атрибут
property – это удобный механизм создания геттеров и сеттеров
_slots_ – создан для уменьшения памяти, занимаемой объектами, но как побочное свойство – не даст добавить объекту новый атрибут

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Что выведет код?
Anonymous Quiz
8%
0
8%
None
44%
True
30%
False
10%
Ошибку
🤔12👍9🤯4
👩‍💻 Полное руководство по пакету NumPy для научных расчетов в Python

NumPy (Numeric Python, Числовой Python) – это библиотека с открытым исходным кодом для работы с многомерными массивами и набор математических функций, которые применяются над ними

Это руководство научит вас основам NumPy, которые вы сможете использовать для вычислений в Python

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3
Media is too big
VIEW IN TELEGRAM
▶️ Магические методы в Python | Dunder методы

Dunder (двойное подчёркивание) или магические мыетод – это особые методы в Python, которые позволяют настраивать классы и объекты. Эти методы называются магическими, потому что они могут изменять поведение кода неожиданными способами


В видео поговорим об основных магических методах, которые могут добавить нашим классам самую разную функциональность и существенно поменять их поведение.

Затронем как именно они реализованы по-умолчанию, то есть как они работают, если их не реализовать

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤯2
Что выведет код?
Anonymous Quiz
4%
0
6%
None
33%
True
44%
False
13%
Ошибку
👍13🤯12🤔31🔥1
📣 Функция setdefault() в Python | Для чего нужна и как её использовать

В статье рассмотрим синтаксис, сценарии использования функции и покажем её пользу на практических примерах, а в подробном заключении сделаем основные выводы

Метод setdefault() в словарях Python позволяет извлекать значение по указанному ключу, если он существует

Если ключа нет, функция вставляет ключ с указанным значением по умолчанию и возвращает это значение


Метод особенно полезен при работе со словарями, в которых обязательно нужен ключ и при этом, если ключа изначально нет, вам нужно инициализировать его значением по умолчанию

🖥 Читать подробнее
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Media is too big
VIEW IN TELEGRAM
▶️ ООП: Наследование (Inheritance)

Сегодня разберемся что это такое и зачем это нужно программисту

Наследование – это механизм доступа к данным и поведению предка, а также способ расширения (изменения поведения) класса не изменяя его код.

Главное правило наследования: наследник является предком, например директор является работником, но машина не является двигателем, потому наследовать автомобиль от двигателя нельзя, тут нужна композиция.

👀 Смотреть на YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Что выведет код?
Anonymous Quiz
10%
42
75%
42.0
4%
None
11%
Ошибку
🔥12👍6🤯61