Lesson 2

Welcome! In today's lesson, we'll delve into a unique coding challenge that centers around traversing the digits of a number using a `while`

loop under a specific condition. You'll have the opportunity to practice and enhance your skills in working with Python's **loops** and **conditional statements** - fundamental concepts in programming. Are you as excited as I am? Let's dive in!

Today, our objective is to create a function that operates on an integer input. The task might seem simple, but it requires some ingenuity. Here's the mission: given an integer, `n`

, we need to calculate and return the sum of its even digits — and here's the clincher — without converting `n`

into a string. For instance, if `n`

equals `4625`

, the output should be `12`

because the sum of the even digits `4`

, `6`

, and `2`

equals `12`

.

Keep in mind that `n`

will always be a positive integer between $1$ and $10^8$. Ready to give it a shot? Great! Let's get started!

To start, we need the basic structure of our function, where we begin by defining a variable `digit_sum`

to keep track of the sum of even digits.

Below is the initial platform for our function:

Python`1def solution(n): 2 digit_sum = 0 3 # Our code will evolve from here`

The tool we've chosen to traverse through the digits of the input integer `n`

is the `while`

loop, which is set to run as long as `n`

is greater than zero. Let's incorporate this into our function:

Python`1def solution(n): 2 digit_sum = 0 3 while n > 0: 4 # We'll develop our function from here`

Inside our loop, we'll first extract the last digit of `n`

using the modulo operation (`n % 10`

). If the digit is even, we'll increase our `digit_sum`

by this digit.

After processing a digit, we'll then chop off the last digit of `n`

using integer division (`n // 10`

), which allows the `while`

loop to proceed to the next digit. Here's how this appears in the code:

Python`1def solution(n): 2 digit_sum = 0 3 while n > 0: 4 digit = n % 10 5 if digit % 2 == 0: # Check if the digit is even 6 digit_sum += digit 7 n = n // 10 # Remove the last digit`

After summing up all the even digits, the final step is to return our `digit_sum`

.

Our complete function now looks like this:

Python`1def solution(n): 2 digit_sum = 0 3 while n > 0: 4 digit = n % 10 5 if digit % 2 == 0: # Check if the digit is even 6 digit_sum += digit 7 n = n // 10 # Remove the last digit 8 return digit_sum`

Well done on completing this lesson! You've successfully navigated the foundational concepts of using a `while`

loop to traverse the digits of a number and have gained an understanding of how to apply conditions within it. Now, it's your turn to apply what you've learned. I invite you to explore additional challenges to solidify and build upon your new skill set. Remember, the only limit to your growth is the boundary of your dedication. Keep practicing; your Python prowess is growing with each challenge you conquer!