В этом модуле мы углубимся в работу с функциями в Python, сосредоточившись на механике передачи данных. Вы узнаете, чем параметры отличаются от аргументов, и научитесь использовать различные способы их объявления и передачи.
Мы разберем позиционные аргументы, где важен порядок, и именованные аргументы (keyword arguments), которые делают код более читаемым и гибким. Особое внимание уделим параметрам по умолчанию, позволяющим делать аргументы необязательными. Также мы рассмотрим продвинутые темы: использование `*args` для передачи произвольного количества позиционных аргументов и `**kwargs` для именованных. Эти инструменты сделают ваши функции универсальными и мощными.
Тренажер включает задания на написание кода, поиск синтаксических ошибок, предсказание результата выполнения и сборку правильных конструкций. Будьте внимательны к синтаксису Python, отступам и порядку следования аргументов. Параметры принимают значения, а аргументы их передают.
- Модуль 1: Основы синтаксиса Python
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Арифметические операторы (+, -, *, /).
- Целочисленное деление и остаток (// и %).
- Возведение в степень (**).
- Операторы сравнения.
- Логические операторы (and, or, not).
- Операторы присваивания (=, +=, -=).
- Операторы принадлежности (in, not in).
- Операторы идентичности (is, is not).
- Битовые операторы.
- Тернарный оператор.
- Модуль 4: Ввод и вывод данных
- Модуль 5: Условные конструкции
- Модуль 6: Циклы
- Модуль 7: Строки
- Модуль 8: Списки
- Модуль 9: Кортежи
- Модуль 10: Словари
- Модуль 11: Множества
- Модуль 12: Функции
- Определение функций.
- Параметры и аргументы.
- Возврат значений return.
- Модуль 13: Встроенные функции
- Модуль 14: Работа с файлами
- Модуль 15: Обработка исключений
- Модуль 16: Модули и пакеты
- Модуль 17: ООП - Основы
- Модуль 18: ООП - Продвинутый уровень
- Модуль 19: Декораторы
- Модуль 20: Генераторы и итераторы
- Модуль 21: Регулярные выражения
- Модуль 22: Дата и время
- Модуль 23: Математические операции
- Модуль 24: Работа с сетью
- Модуль 25: Асинхронное программирование
- Модуль 26: Многопоточность
- Модуль 27: Тестирование
- Модуль 28: Базы данных
- Модуль 29: Алгоритмы и структуры данных
- Модуль 30: Продвинутые возможности
Определение функции и передача аргумента
Напишите функцию `greet`, которая принимает один параметр `name` и выводит приветствие. Затем вызовите эту функцию, передав ей строку "Alice".
input1S greet(input2S):
print(f"Hello, {name}!")
# Вызов функции
input3S("Alice")Параметры vs Аргументы
В программировании важно различать параметры (переменные в объявлении функции) и аргументы (реальные данные, передаваемые при вызове). Распределите элементы кода по этим двум категориям.
Позиционные аргументы
Позиционные аргументы присваиваются параметрам строго по порядку. Проанализируйте код и определите, что будет выведено на экран.
def describe_pet(animal, name):
print(f"I have a {animal} named {name}.")
describe_pet("Harry", "hamster")Типы аргументов и синтаксис
Сопоставьте синтаксические конструкции Python с их описанием или назначением.
*args**kwargsparam=default_valuefunc(key=value)Порядок параметров по умолчанию
В Python существует строгое правило: параметры со значениями по умолчанию не могут стоять перед параметрами без значений по умолчанию. Найдите и исправьте строку объявления функции.
def multiply(a, b): return a * bdef calculate(x=1, y, z): return (x + y) * zprint(calculate(2, 3))Вычисление с параметрами по умолчанию
Проанализируйте код функции. Обратите внимание, какие аргументы переданы, а какие используют значения по умолчанию. Введите число, которое выведет этот код.
def calc_sum(a, b=5, c=10):
return a + b + c
print(calc_sum(2))Использование *args для гибкости
Заполните пропуски, чтобы функция `sum_all` могла принимать любое количество числовых аргументов и возвращать их сумму.
def sum_all(input1S):
total = 0
for num in input2S:
total += num
return total
print(sum_all(1, 2, 3, 4))Правильный порядок типов параметров
В Python порядок объявления параметров в функции строго регламентирован. Расположите строки так, чтобы составить корректный заголовок функции и её тело.
print(a, args, kwargs)def mixed_function(a, *args, **kwargs):mixed_function(1, 2, 3, key='val')def mixed_function(*args, a, **kwargs):def mixed_function(**kwargs, *args, a):Сборка вызова с именованными аргументами
Соберите код, который создает функцию и вызывает её, используя именованные аргументы (keyword arguments), чтобы передать значения не по порядку.
print(f"{first} {last}")def fullname(first, last):fullname(last="Doe", first="John")fullname("Doe", "John")def fullname(first="John", last):Комбинирование аргументов: Сложный случай
Это задание проверит ваше понимание приоритетов. Аргумент `c` имеет значение по умолчанию. Мы вызываем функцию, передавая позиционный аргумент, а затем именованные. Что выведет этот код?
def logic(a, b, c=100):
return a - b + c
res = logic(10, c=20, b=5)
print(res)