Функция-это отдельная, функционально независимая часть программы, которая выполняет определенную задачу.
Функции объявляются с помощью ключевого слова def (от англ.define - define). после ключевого слова def ставится имя функции, скобки () и двоеточие:.
def название_функции():
блок кода
Первая строка объявления функции называется заголовком функции. Следующий блок кода строки-это тело функции. Это набор инструкций, которые составляют один блок и выполняются каждый раз, когда вызывается функция. Отметим, что каждая строка в тексте функции имеет отступ.
Для отступа строк блока кода программисты Python обычно используют четыре пробела в соответствии со стандартом PEP 8.
Функция
Рассмотрим оператор функции:
def print_message():
print ('я-Артур,')
print ('король британцев. ')
Этот фрагмент кода определяет функцию под названием print_message (). Его тело состоит из двух инструкций, и приглашение вызывает их выполнение.
Чтобы вызвать функцию, мы пишем ее имя и открываем пустые скобки.
Важно: начинающие программисты забывают вызвать функцию. Помните, что объявление функции не является вызовом функции.
Функции с параметрами объявляются только в скобках, как и функции без параметра:
def название_функции(параметр): блок кода
Давайте перезапишем предыдущую версию функции draw_box (), чтобы принять параметры, указывающие высоту и ширину прямоугольника:
def draw_box (height, width): # функция принимает два параметра
for i in range (height):
print ('*' * width)
Теперь наша функция draw_box () принимает два целочисленных параметра height – высота прямоугольника и width – ширина прямоугольника, и нам нужно отобразить их в программе, чтобы вызвать его.
Чтобы нарисовать прямоугольник из 5-7 звездочек, напишем следующий код:
draw_box(5, 7)
Аргумент
Аргумент-это любая часть данных, которая передается функции при вызове функции.
Параметр-это переменная, которая принимает аргумент, переданный функции.
к функции draw_box(height, width) :
def draw_box(height, width):
for i in range(height):
print('*' * width)
параметры-это переменные высоты и ширины.
при вызове функции draw_box (height, width) :
height = 10
draw_box (height, 9)
аргументами являются height и 9.
Локальные переменные
Локальные переменные-это переменные, объявленные внутри функции и доступные только самой функции. Программный код вне функции не может получить к ним доступ.
Давайте посмотрим на функцию print_texas (), которая печатает информацию о количестве птиц в Техасе.
def print_texas():
birds = 5000
print ('в Техасе обитает', birds, ' птиц.)
В основной части функции мы объявляем переменную birds, которой присвоено значение 5000. Эта переменная является локальной для функции print_texas (). Когда переменной внутри функции присваивается значение, в результате создается локальная переменная. Он принадлежит функции, для которой он создан, и только программный код этой функции может получить к нему доступ.
Например:
Рассмотрим следующий программный код:
def print_texas():
birds = 5000
print ('в Техасе обитает', birds, ' птиц.)
def print_california():
print ('в Калифорнии обитает', birds, 'птиц.')
если функция print_california() хочет использовать локальную переменную birds функции print_texas (), вызов функции print_california () приведет к следующей ошибке:
NameError: name 'birds' is not defined различные функции могут иметь локальные переменные с одинаковыми именами, потому что они не видят локальных переменных друг друга.
Например,
def print_texas():
birds = 5000
print ('в Техасе обитает', birds, ' птиц.)
def print_california():
birds = 9000 print('в Калифорнии обитает', birds, 'птиц.)
Каждая из этих двух функций имеет локальную переменную, называемую birds. Но они никогда не появляются одновременно, потому что находятся в разных функциях. когда выполняется функция print_texas (), отображается переменная birds со значением 5000. когда выполняется функция print_california (), отображается переменная birds со значением 9000.
Область действия переменной
Область работы переменной-это часть программы, к которой она может получить доступ, функция, для которой она создана. Переменная видна только коду в его диапазоне. Ни одно утверждение вне функции не может получить доступ к такой переменной.
Локальная переменная не может быть достигнута с помощью кода, который появляется внутри функции до создания переменной.
Например, если мы заменяем строки кода в функции print_texas() :
def print_texas():
print ('в Техасе обитает', birds, ' птиц.')
birds = 5000
затем, когда мы вызываем эту функцию, мы получаем такую ошибку:
UnboundLocalError: local variable 'birds' referenced before assignment ошибка возникла в результате преждевременного вызова еще не объявленной локальной переменной birds.
Спасибо за внимание!