В этом уроке мы познакомимся с функциями.

Функции в Питоне, как и в других языках программирования – это фрагмент кода, выполняющий какое-то действие, и который может быть встроен в любой участок программы. Функция в чем-то похожа на переменную – сначала программист пишет код функции, а затем в определенных местах программы он может ее вызвать (или "выполнить функцию", или еще говорят - "использовать функцию"), просто введя ее название.

Ранее мы уже знакомились с функциями в Питоне. Например, print () – это функция. Только ее программный код написан внутри самого языка Питон. А программист в любой удобный момент вызывает эту функцию, просто указав ее имя - print ().

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

 

Как создать свою функцию в Питоне 2.7?

  1. Существует специальная команда def. С помощью нее программисты и создают пользовательские функции. Для этого надо прописать def nazvanie_funktii ():
  2. Название функции следует писать на латинице, нельзя начинать с цифры.
  3. Если в названии два слова, их соединяют нижним подчеркиванием.
  4. В скобках указывают аргументы, или параметры. Это данные, с  которыми и работает функция.
  5. В конце строки ставим кавычки.
  6. Тело самой функции следует писать со следующей строки, отступив слева 4 пробела.
  7. Программисты говорят так: аргументы передаются, а функция их принимает. 

 

Практический пример

Создаем на рабочем столе файл 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. Попробуйте поменять название функции, название аргументов.

 

В следующем уроке попробуем связать переменные с функцией: перейти на следующий урок.