Pythoner
رفتن به کانال در Telegram
Полезные материалы по Python, которые будут интересны опытному и начинающему разработчику. Сотрудничество - @flattys Цены - @serpent_media Канал на бирже: https://telega.in/c/pythonercode
نمایش بیشتر6 770
مشترکین
-524 ساعت
-357 روز
-6330 روز
آرشیو پست ها
6 770
🪄Разбор
1. У нас есть класс Animal, который служит абстракцией и определяет метод voice.
2. Класс Cat наследует от Animal и переопределяет метод voice, выводя "meow".
3. Мы создаем объект cat как экземпляр класса Cat.
4. Вызываем cat.voice() и выводим результат с print().
Но помним что cat.voice() только выводит результат принтом и не возвращает ничего с помощью return
5. Результат: создание cat, вызов cat.voice() выводит "meow", но тк мы пытаемся вывести результат, который возвращается из функции, а там нет явного return то получаем None.
Итак, код выведет "meow None".
6 770
⌨️Вызов программ операционной системы.
👨💻sh — это полноценный интерфейс, как альтернатива
subprocess, который позволяет вызывать любую программу, как если бы это была обычная функция.
Все запускаемые команды импортируются, как обычные функции, но функциями не являются, а лишь динамически обращаются к командам системы. Таким образом мы можем по сути обратиться к любой программе в системе.
sh полагается на системные вызовы Unix и работает только в Unix-подобных операционных системах, т.е. данный модуль не подойдет для работы с Windows.
Для обращения к командам программы и передать набор аргументов команды, мы можем передать их как обычные аргументы функции.
Также в модуле реализована функция which, которая находит полный путь до программы либо возвращает None, если программа не найдена.6 770
👨💻Криптографически безопасная генерация случайных чисел.
Подход основан на CSPRNG, что гарантирует хорошую безопасность.
Что такое CSPRNG?
Это стандарт, который расшифровывается как: Криптографически стойкий генератор псевдослучайных чисел. В отличие от обычных генераторов псевдослучайных чисел (PRNG), CSPRNG спроектированы так, чтобы быть устойчивыми к криптографическим атакам и обеспечивать высокий уровень безопасности.
⬆️Основные преимущества:
1. CSPRNG нацелен на создание выходных данных, которые статистически неотличимы от истинной случайности. Это означает, что сгенерированные числа должны обладать свойствами случайности, такими как равномерное распределение и непредсказуемость.
2. Даже если злоумышленник знает алгоритм генератора и предыдущие выходные данные, он все равно не сможет вычислять будущие значения, так как данные непредсказуемы.
3. CSPRNG защищен от попытки предсказания данных и влияния на сгенерированные числа.
6 770
⌨️Cкачать картинку с сайта с помощью Python
📌В этом примере мы используем функцию get() из библиотеки requests для отправки GET-запроса на указанный URL. Затем мы проверяем статусный код ответа: если он равен 200, то картинка успешно загружена, и мы записываем ее содержимое в файл с расширением '.png'. Если же статусный код не равен 200, то возникла ошибка при загрузке.
6 770
Живи в мире фантастической визуализации с каналом о компьютерной графике!
Graphics Secrets - один из лучших каналов по компьютерной графике! тут есть множество реалистичных 3D моделей, уникальных анимаций и захватывающих визуальных эффектов. Мы расскажем тебе о самых новейших программных продуктах, инструментах и уроках.
Не упусти возможность познать красоту графики или же стать частью этого мира и воплотить свои творческие идеи в реальность.
@graphicsecrets
6 770
⌨️Генераторные выражения и списковые включения.
📌В примере выше первая и вторая строчки очень похожи, но различаются видами скобок. В списковом включении они квадратные, а в генераторном выражении – круглые.
Если вывести переменные, то видим, что значением переменной l является список, а переменная g хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.
Нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы — используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
6 770
✏ Сравнение *args и **kwargs. Когда, что использовать?
Когда вы работаете с функциями в Python, вы можете столкнуться с двумя специальными параметрами: *args и **kwargs. Оба эти параметра позволяют передавать переменное количество аргументов в функцию.
*args: передача произвольного числа аргументов
Параметр *args позволяет передавать произвольное количество позиционных аргументов в функцию. Когда вы используете *args, все переданные аргументы будут собраны в кортеж. Вы можете использовать этот кортеж внутри функции для обработки переданных значений.
Одним из примеров использования *args может быть функция, которая суммирует все переданные числа. Предположим, у нас есть функция
sum_numbers, принимающая произвольное количество аргументов. Мы можем вызвать эту функцию с разным количеством чисел и получить их сумму.
def sum_numbers(*args):
total = 0
for num in args:
total += num
return total
print(sum_numbers(1, 2, 3)) # Output: 6
print(sum_numbers(10, 20, 30, 40)) # Output: 100
📌 **kwargs: передача произвольного числа именованных аргументов
Параметр **kwargs позволяет передавать произвольное количество именованных аргументов в функцию. В отличие от *args, аргументы передаются в виде пар ключ-значение, и они собираются в словарь. Вы можете использовать этот словарь внутри функции для доступа к переданным значениям.
Одним из примеров использования **kwargs может быть функция, которая выводит информацию о переданных пользователях. Предположим, у нас есть функция print_users, которая принимает именованные аргументы в виде пары ключ-значение, где ключ - это имя пользователя, а значение - его возраст. Мы можем вызвать эту функцию с разными пользователями и получить информацию о них.
def print_users(**kwargs):
for name, age in kwargs.items():
print(f"User {name} is {age} years old")
print_users(john=25, alice=30, bob=35)
# Output:
# User john is 25 years old
# User alice is 30 years old
# User bob is 35 years old
📌 Когда что использовать?
- *args следует использовать, когда вы хотите передать произвольное количество позиционных аргументов в функцию и работать с ними как с кортежем. Например, это может быть полезно, когда вам необходимо суммировать числа или склеить строки.
- **kwargs следует использовать, когда вы хотите передать произвольное количество именованных аргументов в функцию и работать с ними как с словарем. Это может быть полезно, когда вам необходимо обрабатывать различные параметры или настройки.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
