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



Pdf көрінісі
бет78/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   74   75   76   77   78   79   80   81   ...   238
Байланысты:
2 5343781172763690906


Глава 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   ...   74   75   76   77   78   79   80   81   ...   238




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

    Басты бет