8-7. Nesting Function Calls

Nesting function calls is a common technique in Python and many other programming languages. It allows you to combine multiple function calls into a more concise and organized structure. This involves placing a function call within the argument list of another function call, so that the result of the inner call is used as an argument for the outer call.

 

Example: Finding the Maximum Score

def main():
    monty_scores = [77, 88, 75]
    bob_scores = [88, 99, 95]

    print("The highest score this term is: ")
    print(max([max(monty_scores), max(monty_scores)]))

if __name__=="__main__":
    main()

 

Output:

The highest score this term is: 99

 

Explanation:

  • Individual Max Calculations:
    • max(monty_scores) calculates the maximum value in monty_scores, which is [77, 88, 75]. The result is 88.
    • max(bob_scores) calculates the maximum value in bob_scores, which is [88, 99, 95]. The result is 99.
  • Creating a New List:
    • A new list is created with the results of the previous max calculations: [88, 99].
  • Outer Max Calculation:
    • max([88, 99]) calculates the maximum value in the new list, which is 99.
  • Print Statement:
    • The result of max([88, 99]), which is 99, is passed to the print function and printed.

Advantages of Nesting

  • Conciseness: Nesting reduces the number of intermediate variables and makes the code more concise.
  • Readability: For experienced programmers, nested calls can be more readable as they reduce clutter.
  • Efficiency: By avoiding temporary variables, nesting can sometimes improve the efficiency of the code.