From f1cb03afc9d13f09ea1150a9ba18bc389a31af8f Mon Sep 17 00:00:00 2001 From: Eric Perlman Date: Mon, 26 Apr 2021 21:11:14 -0400 Subject: [PATCH] Use new name in order-of-operations exercise. As suggested in #538, the function print_date was previously defined. This updated question will use print_time instead. --- _episodes/16-writing-functions.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/_episodes/16-writing-functions.md b/_episodes/16-writing-functions.md index 7b0d667eb..78724e3f3 100644 --- a/_episodes/16-writing-functions.md +++ b/_episodes/16-writing-functions.md @@ -209,10 +209,10 @@ result of call is: None > 1. What's wrong in this example? > > ~~~ -> result = print_date(1871,3,19) +> result = print_time(11,37,59) > -> def print_date(year, month, day): -> joined = str(year) + '/' + str(month) + '/' + str(day) +> def print_date(hour, minute, second): +> joined = str(hour) + ':' + str(minute) + ':' + str(second) > print(joined) > ~~~ > {: .language-python} @@ -220,7 +220,7 @@ result of call is: None > 2. After fixing the problem above, explain why running this example code: > > ~~~ -> result = print_date(1871, 3, 19) +> result = print_time(11,37,59) > print('result of call is:', result) > ~~~ > {: .language-python} @@ -228,7 +228,7 @@ result of call is: None > gives this output: > > ~~~ -> 1871/3/19 +> 11:37:59 > result of call is: None > ~~~ > {: .output} @@ -237,15 +237,15 @@ result of call is: None > > > ## Solution > > -> > 1. The problem with the example is that the function `print_date()` is defined *after* the call to the function is made. Python -> > doesn't know how to resolve the name `print_date` since it hasn't been defined yet and will raise a `NameError` e.g., -> > `NameError: name 'print_date' is not defined` +> > 1. The problem with the example is that the function `print_time()` is defined *after* the call to the function is made. Python +> > doesn't know how to resolve the name `print_time` since it hasn't been defined yet and will raise a `NameError` e.g., +> > `NameError: name 'print_time' is not defined` > > -> > 2. The first line of output (`1871/3/19`) is from the print function inside `print_date()`, while the second line -> > is from the print function below the function call. All of the code inside `print_date()` is executed first, and +> > 2. The first line of output (`11:13:59`) is from the print function inside `print_time()`, while the second line +> > is from the print function below the function call. All of the code inside `print_time()` is executed first, and > > the program then "leaves" the function and executes the rest of the code. > > -> > 3. `print_date()` doesn't explicitly `return` a value, so it automatically returns `None`. +> > 3. `print_time()` does not explicitly `return` a value, so it automatically returns `None`. > > > {: .solution} {: .challenge}