Python. Урок 3
В контексте программирования функция (function) — это блок программы (или подпрограмма), к которому можно обращаться из любого другого места программы. Чтобы создать функцию, нужно определить ее имя, принимаемые аргументы и последовательность инструкций, которые она должна выполнять. Впоследствии вы можете «вызвать» функцию по её имени. Если необходимо передать несколько аргументов — они указываются через запятую. Результат выполнения функции type() — вывод типа аргумента. Обычно говорят, что функция «принимает» аргументы и «возвращает» значение или результат. Python поддерживает функции, которые преобразуют значения из одного типа в другой. Функция int() принимает любое значение и, если может, преобразует его в целое число или «жалуется» на те, которые не может преобразовать: Функция int() может преобразовывать значения с плавающей точкой в целые числа, но не округляет, а просто отбрасывает дробную часть: В Python входит математический модуль, который предоставляет доступ к большинству известных математических функций. Модуль (module) — это файл, содержащий подборку связанных функций. Прежде чем мы сможем использовать функции в модуле, мы должны импортировать его с помощью инструкции импорта (import statement): та инструкция создает объект модуля (module object) math. Если вы вызовете объект модуля в интерактивном режиме, вы получите некоторую информацию о нём: Порядок выполнения: Порядок, в котором выполняются инструкции. Стековая диаграмма: Графическое представление стека функций, их переменных и значений, на которые они ссылаются. Фрейм: Блок в диаграмме стека, представляющий вызов функции. Он содержит локальные переменные и параметры функции. Трассировка: Список функций, которые выполняются, распечатывается при возникновении ошибки (исключения). Упражнение 3.1 Напишите функцию right_justify(), которая принимает строку s в качестве параметра и печатает строку с достаточным количеством пробелов в начале строки, так чтобы последняя буква строки находилась в столбце 70 на экране: right_justify('monty') monty Совет. Используйте конкатенацию и повторение строк. Кроме того, Python содержит встроенную функцию len(), которая возвращает длину строки, так что значение len('monty') равно 5. Объект функции — это значение, которое вы можете присвоить переменной или передать в качестве аргумента. Например, do_twice() — это функция, которая принимает объект функции в качестве аргумента и вызывает его дважды: def do_twice (f): f() f() Ниже представлен пример, в котором функция do_twice() используется для вызова функции print_spam() дважды: def print_spam(): print('спам') do_twice(print_spam) 1. Запишите этот пример в файл скрипта и протестируйте его. 2. Измените код функции do_twice() так, чтобы она принимала два аргумента, объект функции и значение и дважды вызывала функцию, передавая значение в качестве аргумента. 3. Запишите определение функции print_twice(), приведённое ранее в этой главе, в свой скрипт. 4. Используйте модифицированную версию функции do_twice(), чтобы дважды вызвать функцию print_twice(), передав в качестве аргумента значение 'спам'. 5. Определите новую функцию do_four(), которая принимает объект функции и значение и вызывает функцию четыре раза, передавая значение в качестве параметра. В теле этой функции должно быть только две инструкции, а не четыре.
В контексте программирования функция (function) — это блок программы (или подпрограмма), к которому можно обращаться из любого другого места программы. Чтобы создать функцию, нужно определить ее имя, принимаемые аргументы и последовательность инструкций, которые она должна выполнять. Впоследствии вы можете «вызвать» функцию по её имени. Если необходимо передать несколько аргументов — они указываются через запятую. Результат выполнения функции type() — вывод типа аргумента. Обычно говорят, что функция «принимает» аргументы и «возвращает» значение или результат. Python поддерживает функции, которые преобразуют значения из одного типа в другой. Функция int() принимает любое значение и, если может, преобразует его в целое число или «жалуется» на те, которые не может преобразовать: Функция int() может преобразовывать значения с плавающей точкой в целые числа, но не округляет, а просто отбрасывает дробную часть: В Python входит математический модуль, который предоставляет доступ к большинству известных математических функций. Модуль (module) — это файл, содержащий подборку связанных функций. Прежде чем мы сможем использовать функции в модуле, мы должны импортировать его с помощью инструкции импорта (import statement): та инструкция создает объект модуля (module object) math. Если вы вызовете объект модуля в интерактивном режиме, вы получите некоторую информацию о нём: Порядок выполнения: Порядок, в котором выполняются инструкции. Стековая диаграмма: Графическое представление стека функций, их переменных и значений, на которые они ссылаются. Фрейм: Блок в диаграмме стека, представляющий вызов функции. Он содержит локальные переменные и параметры функции. Трассировка: Список функций, которые выполняются, распечатывается при возникновении ошибки (исключения). Упражнение 3.1 Напишите функцию right_justify(), которая принимает строку s в качестве параметра и печатает строку с достаточным количеством пробелов в начале строки, так чтобы последняя буква строки находилась в столбце 70 на экране: right_justify('monty') monty Совет. Используйте конкатенацию и повторение строк. Кроме того, Python содержит встроенную функцию len(), которая возвращает длину строки, так что значение len('monty') равно 5. Объект функции — это значение, которое вы можете присвоить переменной или передать в качестве аргумента. Например, do_twice() — это функция, которая принимает объект функции в качестве аргумента и вызывает его дважды: def do_twice (f): f() f() Ниже представлен пример, в котором функция do_twice() используется для вызова функции print_spam() дважды: def print_spam(): print('спам') do_twice(print_spam) 1. Запишите этот пример в файл скрипта и протестируйте его. 2. Измените код функции do_twice() так, чтобы она принимала два аргумента, объект функции и значение и дважды вызывала функцию, передавая значение в качестве аргумента. 3. Запишите определение функции print_twice(), приведённое ранее в этой главе, в свой скрипт. 4. Используйте модифицированную версию функции do_twice(), чтобы дважды вызвать функцию print_twice(), передав в качестве аргумента значение 'спам'. 5. Определите новую функцию do_four(), которая принимает объект функции и значение и вызывает функцию четыре раза, передавая значение в качестве параметра. В теле этой функции должно быть только две инструкции, а не четыре.
