В этом уроке мы познакомимся с функциями.
Функции в Питоне, как и в других языках программирования – это фрагмент кода, выполняющий какое-то действие, и который может быть встроен в любой участок программы. Функция в чем-то похожа на переменную – сначала программист пишет код функции, а затем в определенных местах программы он может ее вызвать (или "выполнить функцию", или еще говорят - "использовать функцию"), просто введя ее название.
Ранее мы уже знакомились с функциями в Питоне. Например, print ()
– это функция. Только ее программный код написан внутри самого языка Питон. А программист в любой удобный момент вызывает эту функцию, просто указав ее имя - print ()
.
Любой программист может составить свои участки кода, таким образом создать свою собственную, или еще называют, пользовательскую функцию.
Как создать свою функцию в Питоне 2.7?
- Существует специальная команда
def
. С помощью нее программисты и создают пользовательские функции. Для этого надо прописатьdef
nazvanie_funktii
():
- Название функции следует писать на латинице, нельзя начинать с цифры.
- Если в названии два слова, их соединяют нижним подчеркиванием.
- В скобках указывают аргументы, или параметры. Это данные, с которыми и работает функция.
- В конце строки ставим кавычки.
- Тело самой функции следует писать со следующей строки, отступив слева 4 пробела.
- Программисты говорят так: аргументы передаются, а функция их принимает.
Практический пример
Создаем на рабочем столе файл test18.py
Пишем в него следующий программный код:
# -*- coding: utf- 8 -*- def funktia1(*arguments): klub1, klub2 = arguments print "klub1: %r, klub2: %r" % (klub1, klub2) funktia1("Spartak", "Dinamo")
Краткое пояснение к коду
В начале нашего кода мы пишем команду def
, таким образом Питон знает, что мы сейчас будем писать собственную функцию. Называем эту функцию именем funktia1
. В скобках названия функции прописываем, что мы будем использовать любые аргументы, характеризующие данную функцию - (*arguments)
. Здесь «звездочка» как раз и означает «любое количество аргументов».
Далее прописываем сами аргументы, только пишем их в виде переменных - klub1, klub2.
Далее – вывод на печать этих аргументов.
В самом низу кода – вызываем функцию. То есть вводим название этой функции и в скобках указываем названия аргументов (в данном случае спортивные клубы Спартак и Динамо).
Главная ошибка
Часто Питон выдает нам ошибку выполнения программы: IdentationError: unexpected indent
Эта ошибка означает, что мы при написании кода функции не сделали отступ в 4 пробела, а просто нажали на enter. Внимание: вы должны поставить курсор на начало строки и отступить пробелом 4 раза, и только после этого печатать код функции. Вы также можете покопаться в настройках Notepad++ и убрать возможность переноса строки TABом. То есть чтобы курсор при нажатии на enter опять возвращался в крайнее левое положение, а не перескакивал на уровень предыдущей строки.
Этот код немного похож на выполнение функции argv, которую мы разбирали ранее ЗДЕСЬ и ЗДЕСЬ.
Теперь открываем программу PowerShell и прописываем команду: python desktop/test18.py
В итоге у вас должно получиться также, как на картинке.
Видите главное отличие функции? Мы прописали только название функции и название аргументов, а Питон нам выдал полный текст, с использованием переменных и названиями аргументов.
Домашнее задание
1. Попробуйте изменить запись аргументов со звездочки на перечисление, и посмотрите, что получилось. Например, вот так:
def funktia4(klub1, klub2, klub3): print "klub1: %r, klub2: %r, klub3: %r" % (klub1, klub2, klub3) funktia4("Spartak", "Dinamo", "Avangard")
2. Попробуйте изменять количество аргументов в функции. Например, пропишите только один аргумент, как здесь:
def funktia3(klub1): print "klub1: %r" % (klub1) funktia3("Spartak")
3. Попробуйте совсем без аргументов, посмотрите, что получилось, как здесь.
def funktia2(): print u"Аргументы отсутствуют" funktia2()
4. Попробуйте поменять название функции, название аргументов.
В следующем уроке попробуем связать переменные с функцией: перейти на следующий урок.