Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 5881 / 712 | Длительность: 21:48:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 4:

Функции

< Самостоятельная работа 1 || Самостоятельная работа 4: 1234

8.5. Математические функции

В Python содержится математический модуль (module), который предоставляет большинство популярных математических функций. Перед тем, как его использовать, нам необходимо его импортировать:

>>> import math

Эта инструкция создает модульный объект (module object), который называется math. Если вы выведите на экран модульный объект, то получите некоторую информацию о нем:

>>> print math
<module 'math' (built-in)>

Модульный объект содержит функции и переменные, определенные в объекте. Для получения доступа к одной из этих функций, вам необходимо задать имя модуля и имя функции, разделенные точкой (period). Этот формат называется точечной нотацией (dot notation).

>>> ratio = signal_power / noise_power
>>> decibels = 10 * math.log10(ratio)
>>> radians = 0.7
>>> height = math.sin(radians)

В первом примере вычисляется логарифм по основанию 10 отношения "сигнал-шум". Модуль math также предоставляет функцию log, которая вычисляет логарифмы по основанию e.

Во втором примере вычисляется синус radians. Имя переменной подсказывает, что sin и другие тригонометрические функции (cos, tg и т.д.) принимают аргументы в радианах. Для перевода градусов в радианы, разделим на 360 и умножим на 2*pi:

>>> degrees = 45
>>> radians = degrees / 360.0 * 2 * math.pi
>>> math.sin(radians)
0.707106781187

Выражение math.pi получает значение переменной pi из модуля math. Значением этой переменной является приближенное с точностью до 15 знаков.

8.6. Добавление новых функций

Ранее мы использовали встроенные в Python функции. Теперь мы рассмотрим, как добавлять новые функции. Определение функции (function definition) задает имя новой функции и последовательность инструкций, которые выполняются, когда функция вызывается. Как только мы определили функцию, мы можем многократно ее использовать.

Например,

def print_lyrics():
print "I'm a lumberjack, and I'm okay."
print 'I sleep all night and I work all day.'

def – это ключевое слово, которое показывает, что далее следует определение функции. Имя функции - print_lyrics. Правила наименования функций такие же, как для переменных: возможны буквы, числа и некоторые знаки пунктуации, но в начале не может быть число. Вы не можете использовать ключевые (зарезервированные) слова в качестве имен функций. Имена функций и переменных не должны совпадать.

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

Первая строка определения функции называется заголовком (header), оставшаяся часть – телом (body) функции. Заголовок заканчивается двоеточием, тело функции имеет отступ. По договоренности, отступ всегда является четырьмя пробелами. Тело функции может содержать любое количество инструкций.

Строки, которые мы выводим на экран, заключены в двойные кавычки. Одиночные и двойные кавычки взаимозаменяемы, большинство людей используют одиночные кавычки, за исключением тех случаев, когда одиночные кавычки встречаются внутри строки.

Если вы будете набирать функцию в интерактивном режиме, то Python для тела функции сделает отступы, а в конце необходимо будет ввести пустую строку.

Определение функции создает переменную с таким же именем.

>>> print print_lyrics
<function print_lyrics at 0xb7e99e9c>
>>> print type(print_lyrics)
<type 'function'>

Значением print_lyrics является функциональный объект (function object), который имеет тип 'function'.

Синтаксис вызова новой функции похож на вызов встроенной функции:

>>> print_lyrics()
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.

Однажды определив функцию, вы можете использовать ее внутри других функций. Для примера повторим строку-припев, воспользовавшись новой функцией:

def repeat_lyrics():
       print_lyrics()
       print_lyrics()

Затем вызовем repeat_lyrics:

>>> repeat_lyrics()
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
I'm a lumberjack, and I'm okay.
I sleep all night and I work all day.
< Самостоятельная работа 1 || Самостоятельная работа 4: 1234
Инесса Воробьева
Инесса Воробьева

Я записалась на курсы, но я опасаюсь отправлять копию паспорта. Я не уверена, что она не попадёт в чужие руки. Скажите, пожалуйста, какая у Вас степень защиты документов?

Николай Анищенко
Николай Анищенко

Первая лекция, первая блок-схема, и нате вам. ЦПУ и оперативка объеденены в единый блок. Ну это ладно, то блок этот софтваре! С каких это пор, ЦПУ и оперативка стали софтом?

Александр Мигунов
Александр Мигунов
Россия
Ксения Макеева
Ксения Макеева
Россия, Смоленск