яндекс
  • 1
    Ввод и вывод данных
    • Задачи
  • 2
    Условия
    • Задачи
  • 3
    Цикл for
    • Задачи
  • 4
    Строки
    • Задачи
  • 5
    Цикл while
    • Задачи
  • 6
    Списки
    • Задачи
  • 7
    Двумерные массивы
    • Задачи
  • 8
    Словари
    • Задачи
  • 9
    Множества
    • Задачи
  • 10
    Функции и рекурсия
    • Задачи
  • к

Занятие 10. Функции и рекурсия

Задача «Поиск минимального элемента в списке»

Уровень сложности:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib
Напишите функцию find_min(lst), которая принимает список чисел и возвращает минимальный элемент.
 
Пример:
Input:
            3 4 3 5 8 9 0 -1 3 4
Output:
            -1
 
Подсказка
Функция определяется с помощью ключевого слова def, за которым следует имя функции, круглые скобки (в которых указываются аргументы функции, если они есть) и двоеточие. Тело функции находится под определением, с отступом.
def имя_функции(аргументы):
    # тело функции
    return результат
 
Пример простой функции
def приветствие():
    print("Привет, мир!")

приветствие()  # Вывод: Привет, мир!
 
Аргументы функции
 
Позиционные аргументы
Это самые простые аргументы, передаваемые функции по порядку.
def сложение(a, b):
    return a + b

print(сложение(2, 3))  # Вывод: 5
 
Именованные аргументы (ключевые слова)
Это аргументы, передаваемые функции по имени. Они позволяют задавать значения аргументов в любом порядке.
def приветствие(имя, сообщение):
    print(f"{сообщение}, {имя}!")

приветствие(имя="Алиса", сообщение="Добро пожаловать")  # Вывод: Добро пожаловать, Алиса!
 
Аргументы по умолчанию
Это аргументы, которые имеют значение по умолчанию. Если значение не передано при вызове функции, используется значение по умолчанию.
def приветствие(имя, сообщение="Привет"):
    print(f"{сообщение}, {имя}!")

приветствие("Алиса")  # Вывод: Привет, Алиса!
приветствие("Боб", "Добро пожаловать")  # Вывод: Добро пожаловать, Боб!
 
Произвольное количество аргументов
Используется *args для передачи произвольного количества позиционных аргументов и **kwargs для передачи произвольного количества именованных аргументов.
def сложение(*args):
    return sum(args)

print(сложение(1, 2, 3, 4, 5))  # Вывод: 15

def отображение_информации(**kwargs):
    for ключ, значение in kwargs.items():
        print(f"{ключ}: {значение}")

отображение_информации(имя="Алиса", возраст=30)  
# Вывод:
# имя: Алиса
# возраст: 30
 
Возвращение значений
Функция может возвращать значение с помощью оператора return. Если return не указан, функция возвращает None.
def умножение(a, b):
    return a * b

результат = умножение(3, 4)
print(результат)  # Вывод: 12
 
Области видимости и время жизни переменных
Переменные, определенные внутри функции, имеют локальную область видимости и доступны только в пределах этой функции. Глобальные переменные определяются вне функций и доступны в любой части программы.
глобальная_переменная = "Я глобальная"

def функция():
    локальная_переменная = "Я локальная"
    print(глобальная_переменная)
    print(локальная_переменная)

функция()
# Вывод:
# Я глобальная
# Я локальная

# print(локальная_переменная)  # Ошибка: переменная не определена в глобальной области видимости
 
Рекомендации по наименованию функций
Используйте значимые и описательные имена: Имя функции должно четко указывать на её назначение. Например, calculate_area лучше, чем calc.
Соблюдайте соглашения об именовании: В Python принято использовать стиль snake_case, то есть все буквы в нижнем регистре, слова разделены подчеркиваниями.
Избегайте однобуквенных имен: За исключением случаев, когда это общепринято, например, в математических вычислениях или итераторах (i, j), однобуквенные имена обычно не дают никакой информации о функции.
Используйте глаголы: Функции выполняют действия, поэтому их имена часто должны начинаться с глаголов, таких как get, set, compute, calculate, is, process, validate, и т.д.
Следите за длиной: Имя функции должно быть достаточно длинным, чтобы быть понятным, но не слишком длинным. Стремитесь к балансу.
Будьте последовательны: Если в вашем проекте приняты определенные соглашения об именовании, придерживайтесь их на протяжении всего кода.
 
Функции для получения данных:
def get_user_info(user_id):
    pass
 
Функции для выполнения вычислений:
def calculate_total_price(items):
    pass
 
Функции для выполнения действий:
def send_email(recipient, subject, body):
    pass
Solution
Входные данные
Выходные данные

Тесты

2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1
2 3 6 1 1

🎉 Поздравляем! 🎉

Ты отлично справился с задачей! Это был непростой вызов, но ты нашёл правильное решение. Ты на шаг ближе к мастерству в программировании! Продолжай в том же духе, ведь каждый пройденный этап делает тебя ещё сильнее.

AD

Реклама

red-snake blue-snake green-snake

Запускаем ваш код...