Статья Автор: Александр Ф. Алейников

13.1 Функции без параметров

Тема урока: пользовательские функции 

  1. Функции без параметров
  2. Преимущества использования функций
  3. Ключевое слово pass
  4. Решение задач

Аннотация. Создание пользовательских функций без параметров. 

Функции

Вы уже использовали встроенные в Python функции print(), input(), int(), str(), len() и многие другие. Пришло время начать писать свои собственные функции.

Задача: изобразить звездный прямоугольник размерами 5×7 (5 строк и 7 столбцов) 3 раза.

Вместо повторения кода для вывода прямоугольника, можно перенести его в отдельную функцию и вызвать её 3 раза.

Для создания функции пишем такой код:

def draw_box():
    for _ in range(5):
        print('*' * 7)

Когда функция создана, чтобы увидеть результат её работы, надо вызвать её по имени:

draw_box()

Теперь, чтобы изобразить 3 прямоугольника, можно написать код:

draw_box()
print()
draw_box()
print()
draw_box()

Такой код короче, читабельнее (за счет удачного названия функции), а главное, если потребуются иные размеры прямоугольника, достаточно будет изменить только саму функцию draw_box().

Именование функций

Имена функциям назначаются точно так же, как переменным. Имя функции должно быть достаточно описательным, чтобы любой читающий ваш код, мог догадаться, что именно делает функция.

Поскольку функции выполняют действия, большинство программистов предпочитает в именах функций использовать глаголы. Например:

  • функцию, которая рисует прямоугольник, можно назвать draw_box();
  • функцию, которая печатает чек, можно назвать print_check();
  • функцию, которая вычисляет заработную плату до удержаний, можно назвать calculate_gross_рау()

Каждое из этих имен дает описание того, что функция делает.

Объявление функции

Итак, функция – отдельная, функционально независимая часть программы, выполняющая определенную задачу.

Функции объявляются с помощью ключевого слова def (от англ. define – определять). За ключевым словом def следуют название функции, круглые скобки () и двоеточие :.

def название_функции():
    блок кода

   Первая строка объявления функции называется заголовком функции.

Со следующей строки идет блок кода – тело функции. Это набор инструкций, составляющих одно целое и выполняющихся каждый раз, когда вызывается функция.

Обратите внимание, что каждая строка в теле функции выделена отступом. 

Для выделения строк блока кода отступом программисты Python обычно используют четыре пробела в соответствии со стандартом PEP 8.

Рассмотрим объявление функции: 

def print_message():
    print('Я - Артур,')
    print('король британцев. ')

Этот фрагмент кода определяет функцию с именем print_message(). Тело ее состоит из двух инструкций, и вызов приведет к их исполнению.

Вызов функции

Для вызова функции пишут ее название и круглые скобки.

Важно: очень часто начинающие программисты забывают вызывать функцию. Помните, что объявление функции не вызывает ее.

# объявление функции
def print_message():
    print('Я - Артур,')
    print('король британцев. ')


# вызов функции
print_message()

Примечания

Примечание 1. Обратите внимание на то, что объявление пользовательской функции напоминает использование условного оператора if и циклов for, while.

Примечание 2. Объявление функции должно предшествовать ее вызову.

Приведённый ниже код:

# вызов функции
print_message()

# объявление функции
def print_message():
    print('Я - Артур,')
    print('король британцев. ')

приводит к возникновению ошибки:

NameError: name 'print_message' is not defined

Примечание 3. При объявлении функции следует убедиться, что каждая строка тела функции начинается с одинакового количества пробелов, иначе произойдет ошибка.

Приведённый ниже код:

def print_greeting():
    print('Доброе утро!')
        print('Это очень важная тема!')

приводит к возникновению ошибки:

IndentationError: unexpected indent

Примечание 4. Иногда при объявлении функции требуется сделать своего рода заглушку, чтобы функция ничего не выполняла. Тогда мы используем ключевое слово pass:

def do_nothing():
    pass

Мы объявили функцию с именем do_nothing(). Тело такой функции содержит единственную строку кода, которая ничего не делает.

Примечание 5. Функции часто называют подпрограммами.

 

Печать