Книга «Изучаем Python»



Pdf көрінісі
бет84/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   80   81   82   83   84   85   86   87   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


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


8
Функции
Эта глава посвящена 
функциям
— именованным блокам кода, предназначенным 
для решения одной конкретной задачи. Чтобы выполнить задачу, определенную 
в виде функции, вы указываете имя функции, отвечающей за эту задачу. Если зада-
ча должна многократно выполняться в программе, вам не придется заново вводить 
весь необходимый код; просто вызовите функцию, предназначенную для решения 
задачи, и этот вызов приказывает Python выполнить код, содержащийся внутри 
функции. Как вы вскоре убедитесь, использование функций упрощает чтение, на-
писание, тестирование кода и исправление ошибок.
В этой главе также рассматриваются возможности передачи информации функ-
циям. Вы узнаете, как писать функции, основной задачей которых является вывод 
информации, и другие функции, предназначенные для обработки данных и возвра-
щения значения (или набора значений.) Наконец, вы научитесь хранить функции 
в отдельных файлах, называемых 
модулями
, для упорядочения файлов основной 
программы.
Определение функции
Вот простая функция 
greet_user()
, которая выводит приветствие:
greeter.py
 
def greet_user():
 
"""Выводит простое приветствие."""
 
print("Hello!")
 
greet_user()
В этом примере представлена простейшая структура функции. Строка 

при по-
мощи ключевого слова 
def
сообщает Python, что вы определяете функцию. В 
опре-
делении функции
указывается имя функции и, если нужно, описание информации, 
необходимой функции для решения ее задачи. Эта информация заключается 
в круглые скобки. В данном примере функции присвоено имя 
greet_user()
, и она 
не нуждается в дополнительной информации для решения своей задачи, поэтому 
круглые скобки пусты. (Впрочем, даже в этом случае они обязательны.) Наконец, 
определение завершается двоеточием.
Все строки с отступами, следующие за 
def greet_user():
, образуют 
тело
функ-
ции. Текст в точке 

представляет собой комментарий — 
строку документации


136
Глава 8 • Функции
с описанием функции. Строки документации заключаются в утроенные кавычки; 
Python опознает их по этой последовательности символов во время генерирования 
документации к функциям в ваших программах.
«Настоящий» код в теле этой функции состоит всего из одной строки 
print("Hello!")
— см. 

. Таким образом, функция 
greet_user()
решает всего 
одну задачу: выполнение команды 
print("Hello!")
.
Когда потребуется использовать эту функцию, вызовите ее. Вызов функции при-
казывает Python выполнить содержащийся в ней код. Чтобы вызвать функцию, 
укажите ее имя, за которым следует вся необходимая информация, заключенная 
в круглые скобки, как показано в строке 

. Так как никакая дополнительная ин-
формация не нужна, вызов функции эквивалентен простому выполнению команды 
greet_user()
. Как и ожидалось, функция выводит сообщение 
Hello!
:
Hello!
Передача информации функции
С небольшими изменениями функция 
greet_user()
сможет не только сказать 
«Привет!» пользователю, но и поприветствовать его по имени. Для этого следует 
включить имя 
username
в круглых скобках в определение функции 
def greet_
user()
. С добавлением 
username
функция примет любое значение, которое будет 
заключено в скобки при вызове. Теперь функция ожидает, что при каждом вызове 
будет передаваться имя пользователя. При вызове 
greet_user()
укажите имя (на-
пример, 
'jesse'
) в круглых скобках:
def greet_user(username):
"""Выводит простое приветствие."""
print("Hello, " + username.title() + "!")
greet_user('jesse')
Команда 
greet_user('jesse')
вызывает функцию 
greet_user()
и передает ей 
информацию, необходимую для выполнения команды 
print
. Функция получает 
переданное имя и выводит приветствие для этого имени:
Hello, Jesse!
Точно так же команда 
greet_user('sarah')
вызывает функцию 
greet_user()
и передает ей строку 
'sarah'
, что приводит к выводу сообщения 
Hello, Sarah!
Функцию 
greet_user()
можно вызвать сколько угодно раз и передать ей любое 
имя на ваше усмотрение — и вы будете получать ожидаемый результат.
Аргументы и параметры
Функция 
greet_user()
определена так, что для работы она должна получить 
значение переменной 
username
. После того как функция будет вызвана и полу-
чит необходимую информацию (имя пользователя), она выведет правильное 
приветствие.


Передача аргументов
137
Переменная 
username
в определении 
greet_user()
— 
параметр
, то есть условные 
данные, необходимые функции для выполнения ее работы. Значение 
'jesse'
в 
greet_user('jesse')
— 
аргумент
, то есть конкретная информация, переданная 
при вызове функции. Вызывая функцию, вы заключаете значение, с которым 
функция должна работать, в круглые скобки. В данном случае аргумент 
'jesse'
был передан функции 
greet_user()
, а его значение было сохранено в переменной 
username
.


Достарыңызбен бөлісу:
1   ...   80   81   82   83   84   85   86   87   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет