# 100 days of code: Day 7 - for loops

Source: 100-days-of-code.

Using a *loop* to execute a block of code multiple times and the `range()`

function to specify the number of iterations. I created a program - for_numbers.py - that uses a for loop to display all numbers between START and STOP and the sum total of all the numbers in the range.

In addition to looping and `range()`

I use:

`import`

to add the`time`

code library that provides a timer function- string formating to specify floating point precision and separators for large numbers
`input`

to pause after each for loop runs, waiting on the user to press ENTER to continue

```
import time
# Start and stop numbers for range().
START = 1
STOP = 1_000_001
print("Use 2 different methods that employ a for loop to display all numbers "
+ f"between {START} and "
+ f"{STOP - 1:_}:") # display large numbers with `_` separator
print("\nMethod #1: Pre-seed a list of numbers using list() and range().")
input("Press ENTER to continue ...")
start_time = time.time() # let's time how long each method takes to run
numbers = list(range(START, STOP))
for number in numbers:
print(number)
total_time = time.time() - start_time # total elapsed time
print(f"Method #1 took {total_time:.2f} " # display time to 2 decimal places
+ "seconds to run.")
print("\nMethod #2: Create an empty list and append each number generated "
+ "by range() in the loop.")
input("Press ENTER to continue ...")
start_time = time.time()
numbers = [] # clear the list generated by Method #1
for number in range(START, STOP):
print(number)
numbers.append(number)
total_time = time.time() - start_time
print(f"Method #2 took {total_time:.2f} " + "seconds to run.")
print(f"\nSum total of all numbers between {START} and "
+ f"{numbers[-1]:_} is " + f"{sum(numbers):_}" + ".")
```

After running the program several times, I find it interesting to note that Method #2 (start with an empty list and append) consistently takes (roughly 8%) longer than Method #1 (generate the list in the beginning).

Happy hacking!