Какие функции поддерживает Python? Полное руководство
Какие встроенные функции Python существуют для базовых операций?
В языке Python имеется множество встроенных функций, доступных без подключения дополнительных модулей. Они покрывают типичные задачи: ввод/вывод, преобразование типов, работа с последовательностями и математические вычисления. Использование этих функций ускоряет разработку и снижает вероятность ошибок.
print('Привет, мир!') # вывод строки
length = len('Python') # длина строки (6)
number = int('42') # преобразование строки в числоаргументы print python (аргументы функции print в python)
Привет, мир!
Python 3 аргументы (аргументы в python 3)
Функция range позволяет генерировать последовательности чисел:
for i in range(5):
print(i, end=' ')аргумент параметр python (аргументы и параметры в python)
0 1 2 3 4
аргумент класса python (аргументы класса python)
Типичная ошибка: вызов range с одним аргументом без указания шага приводит к последовательности от 0 до n-1. Если требуется обратный порядок, следует использовать reversed или задать отрицательный шаг.
Как создавать собственные функции с помощью def для повторного использования кода?
Определение функции через def – основной способ структурировать программу. Функция принимает аргументы, выполняет действия и возвращает результат оператором return.
def greet(name):
return f'Привет, {name}!'
print(greet('Анна'))Python аргументы строки (аргументы строки в python (командная строка))
Привет, Анна!
аргумент метода python (аргументы метода python)
Можно задавать значения по умолчанию:
def power(base, exp=2):
return base ** exp
print(power(3)) # 9
print(power(3, 3)) # 27Python args (аргументы в python)
Ошибка: изменение изменяемого объекта по умолчанию (например, список) приводит к неожиданному поведению. Рекомендуется использовать None и создавать объект внутри функции.
Когда удобно использовать анонимные функции lambda для кратких вычислений?
Lambda-функции создаются в одной строке без ключевого слова def. Они полезны в качестве аргументов для функций высшего порядка, таких как map, filter, sorted.
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared)именованные аргументы функции python (именованные аргументы функции python)
[1, 4, 9, 16]
именованные аргументы python (именованные аргументы python)
Lambda не может содержать сложные выражения или инструкции (например, циклы). Для логики с условиями лучше использовать обычную функцию.
Как организовать ленивые вычисления с помощью функций-генераторов?
Генераторы используют yield вместо return. Они возвращают итератор, который выдает значения по одному, экономя память.
def count_up_to(n):
i = 1
while i <= n:
yield i
i += 1
for num in count_up_to(3):
print(num, end=' ')количество аргументов функции python (количество аргументов функции python)
1 2 3
параметры и аргументы функции python (параметры и аргументы функции python)
После исчерпания генератора его нельзя переиспользовать – нужно создавать новый экземпляр.
Как расширить функциональность функций без изменения их кода с помощью декораторов?
Декоратор – это функция, принимающая другую функцию и возвращающая обёртку. Декораторы часто применяются для логирования, замера времени, проверки прав доступа.
def timer(func):
import time
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f'Время выполнения: {end-start:.4f} сек')
return result
return wrapper
@timer
def slow_sum(a, b):
import time
time.sleep(1)
return a + b
print(slow_sum(3, 4))Python передать аргументы (передача аргументов в python)
Время выполнения: 1.0012 сек 7
Python принять аргументы (приём аргументов в python)
При применении нескольких декораторов порядок имеет значение. Неправильный порядок может нарушить логику или скрыть метаданные.
Как решать задачи рекурсивно, разбивая их на подзадачи?
Рекурсия – вызов функции из самой себя. Подходит для задач с естественной вложенностью: факториал, обход деревьев, вычисление чисел Фибоначчи.
def factorial(n):
if n == 0:
return 1
return n * factorial(n-1)
print(factorial(5))Python список аргументов (список аргументов в python)
120
Python тип аргумента (тип аргумента в python)
Глубина рекурсии ограничена (по умолчанию 1000). Для больших значений лучше использовать итеративный подход или увеличить лимит через sys.setrecursionlimit.
Какие функции высшего порядка (map, filter, reduce) используются для обработки последовательностей?
Функции высшего порядка принимают другую функцию как аргумент. map применяет функцию к каждому элементу, filter оставляет элементы по условию, reduce свёртывает последовательность в одно значение.
nums = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, nums))
even = list(filter(lambda x: x % 2 == 0, nums))
from functools import reduce
sum_all = reduce(lambda a, b: a + b, nums)
print('Квадраты:', squared)
print('Чётные:', even)
print('Сумма:', sum_all)Python return value (возвращаемое значение функции в python)
Квадраты: [1, 4, 9, 16, 25] Чётные: [2, 4] Сумма: 15
В Python 3 reduce вынесен в модуль functools. Забыв импорт, получите ошибку NameError.
Расширенные примеры использования функций в Python
Ниже приведены более сложные сценарии, комбинирующие различные типы функций.
Комбинация декоратора и генератора для кэширования результатов
def cache(func):
memo = {}
def wrapper(n):
if n not in memo:
memo[n] = func(n)
return memo[n]
return wrapper
@cache
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)) # 55
55
Декоратор cache запоминает уже вычисленные значения, что многократно ускоряет рекурсивный вызов.
Генератор, возвращающий бесконечную последовательность простых чисел
def prime_generator():
yield 2
primes = [2]
n = 3
while True:
is_prime = all(n % p != 0 for p in primes if p * p <= n)
if is_prime:
primes.append(n)
yield n
n += 2
pg = prime_generator()
for _ in range(5):
print(next(pg), end=' ')
2 3 5 7 11
Генератор prime_generator создаёт простые числа «на лету», не храня всю бесконечную последовательность в памяти.
Функция высшего порядка для создания конвейера обработки данных
def pipe(*functions):
def apply(initial):
result = initial
for func in functions:
result = func(result)
return result
return apply
cleaning = pipe(
lambda s: s.lower(),
lambda s: s.replace(',', ''),
lambda s: s.split()
)
print(cleaning('Hello, World! This is Python.'))
['hello', 'world!', 'this', 'is', 'python.']
Функция pipe объединяет несколько преобразований, передавая выход одной функции на вход следующей.
Рекурсивный обход дерева каталогов с помощью функций
import os
def list_files(path):
entries = os.listdir(path)
files = []
for entry in entries:
full_path = os.path.join(path, entry)
if os.path.isdir(full_path):
files.extend(list_files(full_path))
else:
files.append(full_path)
return files
print(list_files('.')) # список всех файлов в текущей папке и подпапках
['./file1.txt', './subdir/file2.txt', ...]
Рекурсивная функция list_files обходит вложенные директории, собирая все пути к файлам.