Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍4
sorted()
возвращает новый отсортированный список из итерируемого объекта. Она принимает параметры: сам итерируемый объект, key
для определения функции сортировки и reverse
для указания порядка сортировки.
numbers = [3, 1, 4, 1, 5, 9]
# Сортировка по возрастанию
sorted_numbers = sorted(numbers)
# Сортировка по убыванию
sorted_numbers_desc = sorted(numbers, reverse=True)
# Сортировка строк по длине
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=len)
Параметр
key
позволяет задавать пользовательскую логику сортировки, а reverse
определяет направление.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
def sum_all(*args):
return sum(args) # Суммирование всех переданных аргументов
result = sum_all(1, 2, 3, 4) # Вернет 10
Использование
*args
делает функции более гибкими и позволяет передавать любое количество аргументов без необходимости явно их перечислять.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤2🔥1
@
, за которым следует имя декоратора перед определением функции. Это позволяет обернуть функцию дополнительной логикой без изменения её исходного кода.
def my_decorator(func):
def wrapper():
print("Перед вызовом функции")
func()
print("После вызова функции")
return wrapper
@my_decorator
def say_hello():
print("Hello!")
say_hello() # Вызов функции с примененным декоратором
Декораторы помогают добавлять функциональность, такую как логирование или проверка прав доступа.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥3
class EuropeanSocket:
def voltage(self):
return 230
class USASocket:
def voltage(self):
return 120
class Adapter:
def __init__(self, socket):
self.socket = socket
def voltage(self):
return self.socket.voltage()
european_socket = EuropeanSocket()
adapter = Adapter(european_socket)
print(adapter.voltage()) # Использование адаптера для получения напряжения
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3🤔1
pass
используется как заглушка, когда синтаксис требует наличие кода, но логика ещё не реализована. Он позволяет избежать синтаксических ошибок в пустых конструкциях, таких как функции, циклы или классы.
def unfinished_function():
pass # Заглушка для будущей реализации
class EmptyClass:
pass # Заглушка для пустого класса
for _ in range(5):
pass # Заглушка в цикле
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤1
def my_decorator(func):
def wrapper(*args, **kwargs):
print("Действие до вызова функции")
result = func(*args, **kwargs)
print("Действие после вызова функции")
return result
return wrapper
Здесь
my_decorator
— это декоратор, который добавляет действия до и после вызова функции. wrapper
— обёртка, которая выполняет эти действия и вызывает исходную функцию.
@my_decorator
def say_hello(name):
print(f"Hello, {name}!")
При вызове
say_hello("World")
будет выведено:
Действие до вызова функции
Hello, World!
Действие после вызова функции
Декораторы полезны для логирования, проверки прав доступа, кэширования и других задач.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11💯1
range()
задаётся третьим аргументом. По умолчанию шаг равен 1, но его можно изменить на любое целое число, включая отрицательные значения для обратного порядка.
for i in range(0, 10, 2):
print(i)
В этом примере вывод будет:
0
2
4
6
8
Здесь
range(0, 10, 2)
создаёт последовательность от 0 до 10 с шагом 2. Если шаг отрицательный, последовательность будет идти в обратном порядке:
for i in range(10, 0, -2):
print(i)
Вывод:
10
8
6
4
2
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21🔥5
for i in range(3):
for j in range(2):
print(i, j)
Внешний цикл выполняется три раза, а внутренний — два раза для каждой итерации внешнего. Результат:
0 0
0 1
1 0
1 1
2 0
2 1
Вложенные циклы часто используются для работы с многомерными структурами данных, например, матрицами или вложенными списками. Они позволяют обрабатывать элементы на разных уровнях вложенности.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥2
__eq__()
определяет поведение оператора сравнения ==
для объектов класса. Он принимает два аргумента: self
(текущий объект) и other
(объект для сравнения), и возвращает True
или False
.
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return self.x == other.x and self.y == other.y
Здесь метод
__eq__()
сравнивает координаты двух точек. Если они равны, возвращается True
, иначе — False
.Метод
__eq__()
позволяет кастомизировать логику сравнения объектов, что полезно для работы с пользовательскими типами данных.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤1
and
, or
, not
используются для работы с булевыми значениями. -
and
возвращает True
, если оба операнда истинны. Если первый операнд ложный, возвращается его значение без вычисления второго. -
or
возвращает True
, если хотя бы один операнд истинный. Если первый операнд истинный, возвращается его значение без вычисления второго. -
not
инвертирует значение: True
становится False
, и наоборот.
a = True
b = False
print(a and b) # False, так как b ложно
print(a or b) # True, так как a истинно
print(not a) # False, инвертирует True
Эти операторы часто используются в условиях и для проверки нескольких выражений одновременно.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤2
dir()
возвращает список атрибутов и методов объекта. Если аргумент не передан, она возвращает имена в текущей локальной области видимости.
import math
print(dir(math)) # Список всех атрибутов и методов модуля math
print(dir()) # Список имен в текущей локальной области видимости
dir()
полезен для интроспекции, чтобы узнать, какие методы и атрибуты доступны для объекта или модуля. Это часто используется при изучении новых библиотек или для отладки.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
def add_method(cls):
def new_method(self):
return "New method added"
cls.new_method = new_method
return cls
@add_method
class MyClass:
pass
obj = MyClass()
print(obj.new_method()) # Вывод: New method added
В этом примере декоратор
add_method
добавляет новый метод new_method
в класс MyClass
. Декораторы для классов полезны для добавления функциональности без изменения исходного кода класса.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2👀1