Лекция. Функции.

Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.

Функцию нужно не только написать, но и вызвать.

Содержимое разработки

Лекция.  Функции. Преподаватель: Фартышев Дмитрий Александрович

Лекция. Функции.

Преподаватель:

Фартышев Дмитрий Александрович

Функции Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def. Функцию нужно не только написать, но и вызвать.

Функции

Функция в python - объект, принимающий аргументы и возвращающий значение. Обычно функция определяется с помощью инструкции def.

Функцию нужно не только написать, но и вызвать.

Функции без параметров Требуется изобразить звездный прямоугольник размерами 5×7 (5 строк и 7 столбцов): Первая версия кода Вторая версия кода Третья версия кода print('*******') print('*******') print('*******') print('*******') print('*******') for _ in range(5): print('*' * 7) print('*' * 7)  print('*' * 7) print('*' * 7) print('*' * 7) print('*' * 7)

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

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

Первая версия кода

Вторая версия кода

Третья версия кода

print('*******')

print('*******')

print('*******')

print('*******')

print('*******')

for _ in range(5):

print('*' * 7)

print('*' * 7)

print('*' * 7)

print('*' * 7)

print('*' * 7)

print('*' * 7)

Функции без параметров ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* ******* for _ in range(5):  print('*' * 7) print() for _ in range(5):  print('*' * 7) print() for _ in range(5):  print('*' * 7)

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

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

*******

for _ in range(5):

print('*' * 7)

print()

for _ in range(5):

print('*' * 7)

print()

for _ in range(5):

print('*' * 7)

  • код громоздкий
  • код дублируется
  • придется менять во всех местах, если размеры прямоугольника поменяются
Функции без параметров Для создания функции мы пишем такой код: def draw _ box():  for _ in range(5):  print('*' * 7) Вызов функции осуществляется по имени, следующим образом: draw _ box()

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

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

def draw _ box():

for _ in range(5):

print('*' * 7)

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

draw _ box()

Функции без параметров Теперь для того чтобы изобразить 3 прямоугольника мы напишем код стал короче код стал читабельнее  если нам потребуется изменить размеры прямоугольника, то необходимо будет внести изменения только в самой функции draw _ box() draw _ box() print() draw _ box() print() draw _ box() Мы можем вызывать функцию столько раз, сколько нам нужно

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

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

  • код стал короче
  • код стал читабельнее
  • если нам потребуется изменить размеры прямоугольника, то необходимо будет внести изменения только в самой функции draw _ box()

draw _ box()

print()

draw _ box()

print()

draw _ box()

Мы можем вызывать функцию столько раз, сколько нам нужно

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

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

  • Имя функции должно быть достаточно описательным, чтобы читающий ваш код мог обоснованно догадаться, что именно функция делает
  • Python требует, чтобы вы соблюдали такие же правила, которые вы соблюдаете при именовании переменных
  • Поскольку функции выполняют действия, большинство программистов предпочитает в именах функций использовать глаголы
Объявление функций Функции объявляются с помощью ключевого слова def : def название _ функции():  блок кода Первая строка объявления функции называется заголовком функции Начиная со следующей строки идет блок кода, который называется телом функции Слово def происходит от слова define – определять

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

Функции объявляются с помощью ключевого слова def :

def название _ функции():

блок кода

  • Первая строка объявления функции называется заголовком функции
  • Начиная со следующей строки идет блок кода, который называется телом функции

Слово def происходит от слова define – определять

Объявление функций Рассмотрим объявление функции: def print _ message() :  print('Я - Артур,')  print('король британцев. ') Тело функции состоит из двух инструкций print() Вызов функции приведет к исполнению этих инструкций: print _ message()

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

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

def print _ message() :

print('Я - Артур,')

print('король британцев. ')

Тело функции состоит из двух инструкций print()

Вызов функции приведет к исполнению этих инструкций:

print _ message()

Локальные переменные Локальными называются переменные, объявленные внутри функции и доступные только ей самой.  def print _ texas():  birds = 5000 # локальная переменная  print('В Техасе обитает', birds, 'птиц.') Переменная birds является локальной для функции print _ texas().  Программный код за пределами функции к ним доступа не имеет.

Локальные переменные

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

def print _ texas():

birds = 5000 # локальная переменная

print('В Техасе обитает', birds, 'птиц.')

Переменная birds является локальной для функции print _ texas().

Программный код за пределами функции к ним доступа не имеет.

Локальные переменные Если программный код одной функции попытается обратиться к локальной переменной, принадлежащей другой функции, то произойдет ошибка.  def print _ texas():  birds = 5000  print('В Техасе обитает', birds, 'птиц.') def print _ california():  print('В Калифорнии обитает', birds, 'птиц.') вызов функции print _ california()  NameError: name 'birds' is not defined

Локальные переменные

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

def print _ texas():

birds = 5000

print('В Техасе обитает', birds, 'птиц.')

def print _ california():

print('В Калифорнии обитает', birds, 'птиц.')

вызов функции print _ california()

NameError: name 'birds' is not defined

Глобальные переменные Глобальными называются переменные, объявленные в основной программе и доступные как программе, так и всем ее функциям.  birds = 5000 # глобальная переменная def print _ texas():  print('В Техасе обитает', birds, 'птиц.') def print _ california():  print('В Калифорнии обитает', birds, 'птиц.') вызов функций  В Техасе обитает 5000 птиц. В Калифорнии обитает 5000 птиц.

Глобальные переменные

Глобальными называются переменные, объявленные в основной программе и доступные как программе, так и всем ее функциям.

birds = 5000 # глобальная переменная

def print _ texas():

print('В Техасе обитает', birds, 'птиц.')

def print _ california():

print('В Калифорнии обитает', birds, 'птиц.')

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

В Техасе обитает 5000 птиц.

В Калифорнии обитает 5000 птиц.

Глобальные переменные Большинство программистов согласны, что следует ограничить использование глобальных переменных либо не использовать их вообще. Причины следующие:

Глобальные переменные

Большинство программистов согласны, что следует ограничить использование глобальных переменных либо не использовать их вообще. Причины следующие:

  • глобальные переменные затрудняют отладку программы;
  • функции, использующие глобальные переменные, обычно зависят от этих переменных;
  • глобальные переменные затрудняют понимание программы.
Глобальные переменные Большинство программистов согласны, что следует ограничить использование глобальных переменных либо не использовать их вообще. Причины следующие:

Глобальные переменные

Большинство программистов согласны, что следует ограничить использование глобальных переменных либо не использовать их вообще. Причины следующие:

  • глобальные переменные затрудняют отладку программы;
  • функции, использующие глобальные переменные, обычно зависят от этих переменных;
  • глобальные переменные затрудняют понимание программы.
Функции Функция объявляется при помощи инструкции def , после неё пишется названии функции, которое может быть почти любым, после чего в скобках указываются аргументы функции. У функции может быть указана инструкция return которая обозначает, то что функция возвращает.

Функции

Функция объявляется при помощи инструкции def , после неё пишется названии функции, которое может быть почти любым, после чего в скобках указываются аргументы функции.

У функции может быть указана инструкция return которая обозначает, то что функция возвращает.

Инструкция return В Python инструкция return может встречаться лишь в теле функции, и за ней может следовать необязательное выражение. Выполнение инструкции return приводит к прекращению работы функции, а значение выражения, если оно имеется, возвращается в качестве результата. Если работа функции завершается достижением конца ее тела или посредством выполнения инструкции return , не содержащей выражения, то она возвращает значение None . Разумеется, функция может вернуть это значение посредством инструкции return None .

Инструкция return

В Python инструкция return может встречаться лишь в теле функции, и за ней может следовать необязательное выражение.

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

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

Разумеется, функция может вернуть это значение посредством инструкции return None .

b: c = a - b x = c*c else: x = a + b return x def sum(a, b): return a + b def func(a, b): if a b: x = a - b return x*x return a + b" width="640"

Инструкция return: примеры использования

# или

def func(a, b):

if a b:

c = a - b

x = c*c

else:

x = a + b

return x

def sum(a, b):

return a + b

def func(a, b):

if a b:

x = a - b

return x*x

return a + b

13 1 42 print(type(calculate(7, 6)))" width="640"

Возвращаемые значения (return)

Функции в Python способны возвращать любой тип объекта.

В Питоне поддерживается возврат функциями сразу несколько значений. Достаточно перечислить их через запятую после инструкции return. Возвращаемым типом будет кортеж (tuple), который можно распаковать в переменные.

def calculate(num1, num2):

return num1 + num2, num1 - num2, num1 * num2

# для так называемой распаковки нескольких значений

# их следует присвоить равному количеству аргументов

res1, res2, res3 = calculate(7, 6)

print(res1, res2, res3)

13 1 42

print(type(calculate(7, 6)))

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

Функции

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

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

Функции

Похожий пример, но с операциями над списком.

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

Функции Можно также приравнивать значение переменной к возвращаемому значению функции.

Функции

Можно также приравнивать значение переменной к возвращаемому значению функции.

Функции В python можно возвращать из функции несколько значений

Функции

В python можно возвращать из функции несколько значений

Спасибо за внимание!

Спасибо за внимание!

Сохранить у себя:
Лекция. Функции.

Получите свидетельство о публикации сразу после загрузки работы



Получите бесплатно свидетельство о публикации сразу после добавления разработки