**The problem statement:**

Program 0 provided a solution to the problem statement but it is an inefficient way to salve it. The solution required us to perform repetitious work. For that problem we only had to display the numbers from 4 to 9 along with its square. Now imagine if the problem required us to display numbers, along with their square, from 4 to 79. Our solution with be unnecessarily long and take an unacceptable amount of time to complete.

The task, just like program 0, is to write a Python program that displays a list of numbers from 4 to 9. Next to each number, the program will also display its square. But unlike program zero we are expected to write program 1 using less code such that we minimize as much as possible the repetitious work.

The following is the expected approximate output of program 1:

4 16

5 25

6 36

7 49

8 64

9 81

**The Solution:**

`def program_1():`

for number in range(4, 10):

print(number, number * number)

if __name__ == '__main__':

program_1()

Program 1 introduces a powerful programming feature called a * for* loop, that allowed us to write a concise solution to this problem.

**Why is it called a**

*for*loop?It's called this because

*each member*

**for***a given list of items, the code indented under a*

**in***loop will be looped over and executed a number of times that is equal to the number of items in the given list. In our solution, the number of members in the given list of items is 10 - 4 = 6. Hence, our*

**for***loop executed our indented code, or nested code, exactly six times.*

**for****What is this**

*range(..)*function?This

*function creates an object that produces a sequence of integers from the start value of 4 to the stop value of 10 minus 1. That is, given the start value of 4 and the stop value of 10 the following sequence of integers is generated for the*

**range***loop to consume. 4, 5, 6, 7, 8 and 9. Note that the last value of 10 is not included in the sequence. If for example we wanted modify the code to start at 2 and end at 10 we would call the range function as follows. 11 - 2 = 9*

**for***loops would be executed.*

**for**`range(2, 11)`

**Page with links to the entire series can be found here**

Are you having any issues running or understanding the program? Please, add a comment explaining where you are stuck or where the tutorial is not clear so we can improve it.