Python Tutorial 17: Python Functions Examples and Solutions

Python Tutorial 17: Python Functions Examples and Solutions

Introduction to Python Functions

Overview of the Lesson

  • Paul McQuarter introduces lesson number 17 in a Python tutorial series, emphasizing the importance of being prepared with coffee for the session.
  • He encourages viewers to use Visual Studio Code and acknowledges supporters on Patreon, highlighting their role in sustaining content creation.

Recap of Previous Lesson

  • The previous lesson (lesson 16) focused on writing functions in Python. Students were tasked with modularizing a program that handled grades.
  • Paul prompts viewers to comment on their progress, encouraging engagement and acknowledging that struggling is part of the learning process.

Modular Programming with Functions

Importance of Homework

  • Paul stresses the necessity of attempting homework assignments to enhance understanding, noting that watching without practice leads to limited learning.

Setting Up the Program

  • Transitioning to coding, he opens Visual Studio Code and creates a new Python file named functhw.py.
  • He explains that the first step is determining how many grades will be inputted by the user.

Inputting Grades from Users

Gathering User Input

  • The program begins by asking for an integer input representing the number of grades.
  • A function called input_grades is defined to collect these grades based on user input.

Function Definition Process

  • The main program calculates how many grades are needed before calling input_grades, which will return an array containing all entered grades.

Defining Functions in Python

Creating Input Function

  • Paul demonstrates defining a function using def, naming it input_grades, and specifying parameters for grade collection.

Looping Through Inputs

  • A loop iterates through a range equal to the number of grades specified, prompting users for each grade entry.

Handling Grade Data

Storing Grades in an Array

  • Each entered grade is converted into a float and appended to an array named grades, showcasing how data can be dynamically collected during execution.

Creating and Printing Grades in Python

Defining the Grades Array

  • The speaker discusses the need to define an empty array called grades before entering a loop to append values. This ensures that the grades can be collected properly.

Returning Grades

  • The function will return the grades array, which is already known by the main program, eliminating the need to return other variables like num_grades.

Inputting and Formatting Grades

  • The user inputs three grades (90, 91, 92), but a formatting issue arises due to missing spaces after prompts.
  • The speaker emphasizes neatness in coding by suggesting improvements for better user input formatting.

Printing Grades

  • A new function named print_grades is introduced to display the grades without returning any value; it simply prints them.
  • The function requires both my_grades and num_grades as parameters for proper execution.

Implementing Print Functionality

  • Instead of calculating length dynamically within the print function, a variable (num_grades) is passed for clarity and simplicity.
  • A new function definition begins with establishing parameters needed for printing each grade from an array.

Averaging Grades

Setting Up Average Calculation

  • After successfully printing grades, the next step involves averaging them. An average calculation function will be created that takes in both num_grades and my_grades.

Defining Average Function

  • A new function called average_grades is defined with parameters for number of grades (nm) and grade list (x).

Summing Up Grades

  • Inside this average calculation function, a total variable initializes at zero. A loop iterates through each grade to sum them up effectively.

This structured approach captures key insights from the transcript while providing clear timestamps for reference.

How to Calculate Average, High, and Low Grades

Calculating the Average Grade

  • The process begins by initializing an array x with grades. A loop iterates through this array to calculate the total of all grades.
  • The average is computed as total divided by nm, where nm represents the number of grades. This division occurs outside the loop for accuracy.
  • The calculated average is returned from the function and stored in a variable named avg.
  • An example run demonstrates inputting five grades (90, 91, 93, 84, 92), resulting in an average of 90.
  • Testing with non-integer values shows that rounding can be applied to format the output better.

Enhancing Output Formatting

  • To improve readability, the average is rounded to one decimal point using Python's built-in round function.
  • After implementing formatting changes, another test confirms that three grades (90, 91, 93) yield an average of 91.3.

Finding High and Low Grades

  • A new requirement arises: finding both high and low grades alongside calculating averages.
  • A separate function will handle this task; it will return both high and low grade values after processing inputs.
  • The new function requires two variables (high g and low g) initialized before looping through the grades to determine their respective values.

Implementing High-Low Functionality

  • The high-low function iterates over each grade while comparing them against initialized high and low values.
  • If a grade is lower than low g, it updates low g. Conversely, if it's higher than high g, it updates accordingly.
  • Finally, both high and low grades are returned from this function for further use in displaying results.

Final Testing Phase

  • In a final test scenario with four inputted grades (90, 91, 97, 82), results show correct outputs for averages but highlight that printed statements need adjustment for clarity.

Understanding Python Grade Calculation

Implementing Grade Calculations

  • The instructor discusses the process of printing high and low grades, emphasizing the need to define variables for high grade (high g) and low grade (low g).
  • A sample set of five grades is provided: 90, 91, 82, 87, and 99. The calculated average is noted as 89.8, with a high grade of 99 and a low grade of 82.

Learning Through Practice

  • The instructor encourages students to attempt coding independently rather than just watching the tutorial. Emphasis is placed on learning through practice.
  • Students who struggled are advised to start from scratch without assistance to reinforce their understanding before moving on.

Introduction to Object-Oriented Programming

  • Next week's focus will be on classes and methods in Python, which can initially seem confusing but are essential for advanced programming.
  • The instructor plans to simplify object-oriented programming concepts using straightforward examples to help students grasp class structures.

Future Lessons and Projects

  • Upcoming lessons will clarify complex code structures often seen in professional Python programs by breaking down object-oriented programming into manageable parts.
  • Exciting future projects include integrating Python with Arduino for data control and exploring advanced graphics programming.

Engagement and Feedback

  • The instructor expresses enthusiasm for teaching these lessons and invites feedback from students. Encouragement is given to subscribe for updates on future content.
Video description

You guys can help me out over at Patreon, and that will help me keep my gear updated, and help me keep this quality content coming: https://www.patreon.com/PaulMcWhorter In this video we show step-by-step instructions on how to understand and use Python Functions. We write demonstration code and give examples and solutions. I do not assume you are an expert, so these lessons are designed for complete beginners. #Python #Lessons #Programming