Think Python How to Think Like a Computer Scientist


Download 1.04 Mb.
Pdf ko'rish
bet34/190
Sana02.11.2023
Hajmi1.04 Mb.
#1740310
1   ...   30   31   32   33   34   35   36   37   ...   190
Bog'liq
thinkpython

3.7. Flow of execution
21
def repeat_lyrics():
print_lyrics()
print_lyrics()
repeat_lyrics()
This program contains two function definitions: print_lyrics and repeat_lyrics. Function
definitions get executed just like other statements, but the effect is to create function objects. The
statements inside the function do not get executed until the function is called, and the function
definition generates no output.
As you might expect, you have to create a function before you can execute it. In other words, the
function definition has to be executed before the first time it is called.
Exercise 3.1
Move the last line of this program to the top, so the function call appears before the
definitions. Run the program and see what error message you get.
Exercise 3.2
Move the function call back to the bottom and move the definition of print_lyrics
after the definition of repeat_lyrics. What happens when you run this program?
3.7
Flow of execution
In order to ensure that a function is defined before its first use, you have to know the order in which
statements are executed, which is called the flow of execution.
Execution always begins at the first statement of the program. Statements are executed one at a time,
in order from top to bottom.
Function definitions do not alter the flow of execution of the program, but remember that statements
inside the function are not executed until the function is called.
A function call is like a detour in the flow of execution. Instead of going to the next statement, the
flow jumps to the body of the function, executes all the statements there, and then comes back to
pick up where it left off.
That sounds simple enough, until you remember that one function can call another. While in the
middle of one function, the program might have to execute the statements in another function. But
while executing that new function, the program might have to execute yet another function!
Fortunately, Python is good at keeping track of where it is, so each time a function completes, the
program picks up where it left off in the function that called it. When it gets to the end of the
program, it terminates.
What’s the moral of this sordid tale? When you read a program, you don’t always want to read from
top to bottom. Sometimes it makes more sense if you follow the flow of execution.

Download 1.04 Mb.

Do'stlaringiz bilan baham:
1   ...   30   31   32   33   34   35   36   37   ...   190




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling