Forwarded from Pythoner
filter()?Функция
filter() в Python принимает два аргумента: функцию и итерируемый объект (например, список, кортеж или другую последовательность). Она применяет заданную функцию к каждому элементу итерируемого объекта и возвращает итератор, содержащий только те элементы, для которых функция вернула True.filter()?1. Функцию фильтрации: Это функция, которая принимает один аргумент (элемент итерируемого объекта) и возвращает
True или False, определяя, должен ли этот элемент быть включен в результирующий итератор.2. Итерируемый объект: Это коллекция элементов, которые будут проверены на соответствие условию функции фильтрации.
filter()?filter() полезна там, где требуется отфильтровать элементы итерируемого объекта в соответствии с определенным условием. Она может быть использована для:- Фильтрации списка: Удаление элементов списка, не соответствующих заданному условию.
- Устранения ненужных данных: Очистка данных от нежелательных значений или форматов.
- Обработки ввода пользователя: Фильтрация ввода пользователя для удаления ошибочных или неподходящих значений.
- Фильтрации данных из базы данных: Выборка данных из базы в соответствии с критериями фильтрации.
filter()# Пример: отфильтровать список чисел, оставив только четные числа
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def is_even(n):
return n % 2 == 0
even_numbers = list(filter(is_even, numbers))
print(even_numbers) # Вывод: [2, 4, 6, 8, 10]
is_even() определяет, является ли число четным. Функция filter() применяет is_even() к каждому элементу списка numbers и возвращает новый список, содержащий только четные числа.filter() - мощный инструмент, который позволяет программистам Python легко фильтровать данные в соответствии с определенным условием, повышая читаемость и эффективность кода.Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤6🔥2
F-строки начинаются с префикса "f" перед открывающей кавычкой строки. Внутри строки можно использовать фигурные скобки "{}", в которых указываются переменные или выражения, значения которых нужно вставить. Например, вот простой пример использования f-строки:
name = "Alice"
age = 25
print(f"My name is {name} and I am {age} years old.")
Внутри фигурных скобок можно не только указывать переменные, но и выполнять любые выражения. Например:
x = 10
y = 5
print(f"The sum of {x} and {y} is {x + y}.")
F-строки также позволяют форматировать значения, которые вставляются в строку. Например, можно указать количество знаков после запятой для чисел или выровнять строки. Вот примеры:
pi = 3.14159265359
print(f"The value of pi is approximately {pi:.2f}.")
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍7❤4
str.upper() — преобразует строку к верхнему регистру.str.lower() — преобразует строку к нижнему регистру.str.swapcase() — меняет регистр каждого символа на противоположный.str.capitalize() — делает первую букву заглавной, остальные строчными.str.isupper() — проверка на заглавный регистр.str.islower() — проверка на строчный регистр.Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍7🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥3
zipfile, который предоставляет функционал для работы с архивами ZIP. import zipfile
# Создаем новый ZIP файл
with zipfile.ZipFile('новый_архив.zip', 'w') as new_zip:
# Добавляем файлы в архив
new_zip.write('file1.txt')
new_zip.write('file2.txt')
# Можно добавить еще файлы по мере необходимости
zipfile обладает широкими возможностями, позволяя извлекать файлы, читать содержимое архива, добавлять и удалять файлы, а также многое другое. Это удобный инструмент, который позволяет манипулировать архивами непосредственно из кода Python.Если вам интересно узнать больше о модуле zipfile или экспериментировать с архивами в Python, рекомендую обратиться к официальной документации Python.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤5👍4
Давайте рассмотрим пример создания связанного списка на языке программирования Python. Для начала, мы создадим класс Node, который будет представлять узел связанного списка. Каждый узел будет содержать данные и ссылку на следующий узел.
class Node:
def __init__(self, data):
self.data = data
self.next = None
Затем мы создадим класс LinkedList, который будет представлять сам связанный список. У него будет ссылка на первый узел списка (голова).
class LinkedList:
def __init__(self):
self.head = None
Теперь мы можем добавить методы для работы со связанным списком, такие как добавление элемента и вывод списка.
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def display(self):
current = self.head
while current:
print(current.data)
current = current.next
Теперь мы можем создать экземпляр класса LinkedList и использовать его для создания и отображения связанного списка.
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.display()
Вывод:
1
2
3
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥5
if (x := some_function()) > 10:
print("x is greater than 10")
else:
print("x is less than or equal to 10")
Оператор моржа предлагает несколько преимуществ, которые могут значительно упростить кодирование. Во-первых, он позволяет объединить проверку условия и присваивание значения в одной строке, что делает код более компактным и легким для чтения. Во-вторых, он устраняет необходимость использования временных переменных для хранения результатов выражений, что уменьшает количество кода и повышает эффективность. Наконец, оператор моржа может быть использован в циклах, что позволяет более эффективно использовать ресурсы и улучшить производительность программы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥5⚡4❤1
secrets предоставляет инструменты для создания безопасных случайных данных, сложнее предсказать.secrets:1.
secrets.choice(sequence): Выбирает случайный элемент из последовательности. Полезно для генерации случайных выборок или паролей из определенного набора символов.2.
secrets.randbelow(n): Возвращает случайное число от 0 до n-1. Используется для генерации случайных чисел в определенном диапазоне.3.
secrets.randbits(k): Генерирует k случайных битов. Полезно для создания случайных битовых строк или чисел.4.
secrets.token_bytes(nbytes=None): Генерирует безопасную случайную последовательность байтов длиной nbytes (по умолчанию - 32 байта).5.
secrets.token_hex(nbytes=None): Генерирует безопасную случайную строку в шестнадцатеричном формате длиной nbytes (по умолчанию - 32 байта).6.
secrets.token_urlsafe(nbytes=None): Генерирует безопасную случайную URL-совместимую строку длиной nbytes (по умолчанию - 32 байта).7.
secrets.compare_digest(a, b): Сравнивает две строки для предотвращения временных атак. Это полезно при сравнении хэшей паролей или токенов без утечки информации о длине сравниваемых строк.secrets?-
secrets предоставляет криптографически безопасные данные, что делает их сложными для предсказания.- Эти функции обеспечивают высокий уровень безопасности при генерации случайных данных, паролей и токенов в Python.
secrets для защиты вашей информации и обеспечения безопасности ваших данных в Python. Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤5🔥2
@override используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
do_semething в ChildClass переопределяет метод базового класса AbstractClass с помощью декоратора @override. Это делает код более понятным и безопасным.Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥4👍2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤6👍5
Для начала, давайте создадим класс, который будет представлять людей. Класс будет иметь атрибуты "имя" и "возраст". Вот пример такого класса:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
Теперь, когда у нас есть класс, мы можем создать объекты на его основе. Например, давайте создадим двух людей:
person1 = Person("John", 25)
person2 = Person("Alice", 30)Чтобы поместить объекты в список, мы можем использовать метод append(). Например, чтобы создать список людей и добавить туда наших двух людей, мы можем написать следующий код:
people = []
people.append(person1)
people.append(person2)
Чтобы обратиться к объектам в списке, мы можем использовать индексы. Например, чтобы получить имя первого человека в списке people, мы можем написать следующий код:
first_person_name = people[0].name
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍8🔥3🗿2
Кеширование позволяет сохранять результаты выполнения функций, избегая повторных вычислений. Это полезно, особенно если функция часто вызывается с одними и теми же данными или выполняет сложные операции.
В Python есть модуль
functools, включающий декоратор lru_cache, который автоматически кеширует результаты функции.Кеширование ускоряет программу, сохраняя результаты вычислений функций. Это особенно полезно при работе с большими данными или сложными расчетами.
from functools import lru_cache
@lru_cache(maxsize=20) # 20 - это максимальное количество "запоминаний"
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)) # Первый вызов - вычисляем
print(fibonacci(10)) # Результат уже закеширован
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤4👍4
— Они неизменяемы, то есть элементы нельзя добавить или удалить после создания.
— Они могут использоваться как ключи в словарях, так как неизменяемы.
— Они быстрее обычных множеств в операциях, так как являются неизменяемыми.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤4⚡2🔥1
Асинхронное программирование - это способ написания кода, позволяющий выполнять несколько задач одновременно без блокировки основного потока выполнения. В Python для этого используются ключевые слова async и await, которые делают функции асинхронными и определяют точки, где происходит ожидание.
1. Увеличение производительности: Асинхронный код позволяет эффективно использовать ресурсы, ускоряя выполнение задач.
2. Масштабируемость: Обработка множества задач одновременно без блокировки позволяет создавать масштабируемые приложения.
3. Улучшен отклик приложения: Пользователи получают быстрый отклик, даже если выполняются длительные операции.
- `async def` и `await`: Обозначают асинхронные функции и точки ожидания выполнения задачи.
- Цикл событий (Event Loop): Основной механизм управления выполнением асинхронных задач.
- Корутины (Coroutines): Асинхронные функции, которые могут приостанавливать свое выполнение.
import asyncio
async def async_example():
print("Начало выполнения")
await asyncio.sleep(2)
print("Завершение выполнения")
async def main():
tasks = [async_example() for _ in range(5)]
await asyncio.gather(*tasks)
if __name__ == "__main__":
asyncio.run(main())
Множество библиотек и фреймворков в Python уже поддерживают асинхронное программирование, включая aiohttp, asyncio, и многие другие. Это позволяет создавать высокопроизводительные веб-приложения, работающие с асинхронными запросами.
—Документация Python по асинхронному программированию
—Статья на Real Python: "Async IO in Python: A Complete Walkthrough"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13👍7🔥3
Один из самых простых способов округления числа в Python - использовать встроенную функцию round(). Функция round() округляет число до ближайшего целого значения. Например, если у нас есть число 3.7, функция round() округлит его до 4, а если у нас есть число 3.4, оно будет округлено до 3. Важно отметить, что если дробная часть числа равна 0.5, функция round() округлит число в сторону ближайшего четного значения. Например, число 2.5 будет округлено до 2, а число 3.5 будет округлено до 4.
num1 = 3.7
num2 = 3.4
rounded_num1 = round(num1)
rounded_num2 = round(num2)
print(rounded_num1) # Output: 4
print(rounded_num2) # Output: 3
Кроме функции round(), в Python также доступны методы floor() и ceil(). Метод floor() округляет число до наибольшего целого значения, которое меньше или равно данному числу. Например, если у нас есть число 4.8, метод floor() округлит его до 4. С другой стороны, метод ceil() округляет число до наименьшего целого значения, которое больше или равно данному числу. Например, если у нас есть число 2.2, метод ceil() округлит его до 3.
import math
num = 4.8
floored_num = math.floor(num)
ceiled_num = math.ceil(num)
print(floored_num) # Output: 4
print(ceiled_num) # Output: 5
Еще один способ округления чисел в Python - использование модуля math. Модуль math предоставляет различные функции для работы с числами, включая функции округления. Например, функция math.floor() эквивалентна методу floor(), а функция math.ceil() эквивалентна методу ceil(). Кроме того, модуль math также предоставляет функции округления вниз и вверх до ближайшего целого значения, а также функцию для округления до определенного количества знаков после запятой.
import math
num = 3.7
floored_num = math.floor(num)
ceiled_num = math.ceil(num)
print(floored_num) # Output: 3
print(ceiled_num) # Output: 4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤9🔥2
https://aws.amazon.com/ru/sdk-for-python/
https://pypi.org/project/boto3/
https://pypi.org/project/botocore/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4👍2