To decide or control the flow of a program, we have **branching and looping techniques in Python**. To perform decision-making, we use the if-else statement in Python.

To iterate over a sequence of elements, we use for loop, and when we want to iterate a block of code repeatedly, as long as the condition is true, we use the while loop.

We often use a loop, and if-else statement in our program, so a good understanding of it is necessary.

This Python loop exercise aims to help Python developers to learn and practice **if-else** conditions, `for`

loop, `range()`

function, and `while`

loop. All questions are tested on Python 3.

**Also Read**:

**This Python loop exercise include the following**: –

- The exercise contains
**18 questions**and solutions provided for each question. - This exercise is nothing but an assignment to solve, where you can solve and practice different looping techniques programs, and challenges.

This **Python loop exercise covers questions on the following topics**:

- Python for loop and while loop, and range() function
- Python nested if-else and nested loop
- Break, continue and pass statement

Let us know if you have any alternative solutions. It will help other developers.

Use **Online Code Editor** to solve exercise questions.

#### Exercise 1: Print First 10 natural numbers using while loop

**Expected output:**

0 1 2 3 4 5 6 7 8 9 10

## Show Solution

```
i = 0
while i <= 10:
print(i)
i += 1
```

#### Exercise 2: Print the following pattern

1 1 2 1 2 3 1 2 3 4 1 2 3 4 5

**Refer**: Print Patterns In Python

## Show Solution

```
print("Second Number Pattern ")
lastNumber = 6
for row in range(1, lastNumber):
for column in range(1, row + 1):
print(column, end=' ')
print("")
```

#### Exercise 3: Accept number from user and calculate the sum of all number from 1 to a given number

For example, if user entered **10** the output should be **55**.

## Show Solution

```
sum1 = 0
n = int(input("Please enter number "))
for i in range(1, n + 1, 1):
sum1 += i
print("\n")
print("Sum is: ", sum1)
```

#### Exercise 4: Print multiplication table of a given number

For example, `num = 2`

so the output should be

2 4 6 8 10 12 14 16 18 20

## Show Solution

```
n = 2
for i in range(1, 11, 1):
product = n*i
print(product)
```

#### Exercise 5: Given a list, iterate it, and display numbers divisible by five, and if you find a number greater than 150, stop the loop iteration.

`list1 = [12, 15, 32, 42, 55, 75, 122, 132, 150, 180, 200]`

**Expected output:**

15 55 75 150

## Show Solution

```
list1 = [12, 15, 32, 42, 55, 75, 122, 132, 150, 180, 200]
for item in list1:
if (item > 150):
break
if(item % 5 == 0):
print(item)
```

#### Exercise 6: Given a number count the total number of digits in a number

For example, the number is **75869**, so the output should be **5**.

## Show Solution

```
num = 75869
count = 0
while num != 0:
num //= 10
count+= 1
print("Total digits are: ", count)
```

#### Exercise 7: Print the following pattern using for loop

5 4 3 2 1 4 3 2 1 3 2 1 2 1 1

## Show Solution

```
n = 5
k = 5
for i in range(0,n+1):
for j in range(k-i,0,-1):
print(j,end=' ')
print()
```

#### Exercise 8: Reverse the following list using for loop

`list1 = [10, 20, 30, 40, 50]`

**Expected output:**

50 40 30 20 10

## Show Solution

```
list1 = [10, 20, 30, 40, 50]
start = len(list1) - 1
stop = -1
step = -1
for i in range(start, stop, step) :
print(list1[i])
```

#### Exercise 9: Display numbers from -10 to -1 using for loop

**Expected output:**

-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

## Show Solution

```
for num in range(-10, 0, 1):
print(num)
```

#### Exercise 10: Display a message “Done” after successful execution of for loop

For example, the following loop will execute without any error.

```
for i in range(5):
print(i)
```

So the** Expected output should be:**

0 1 2 3 4 Done!

## Show Solution

```
for i in range(5):
print(i)
else:
print("Done!")
```

#### Exercise 11: Write a program to display all prime numbers within a range

**Note**: A Prime Number is a whole number that cannot be made by multiplying other whole numbers

**Examples**:

- 6 is not a Prime Number because it can be made by 2×3 = 6
- 37 is a Prime Number because no other whole numbers multiply together to make it.

**Given**:

```
start = 25
end = 50
```

**Expected output:**

Prime numbers between 25 and 50 are: 29 31 37 41 43 47

## Show Solution

```
start = 25
end = 50
print("Prime numbers between", start, "and", end, "are:")
for num in range(start, end + 1):
# all prime numbers are greater than 1
# if number is less than or equal to 1, it is not prime
if num > 1:
for i in range(2, num):
# check for factors
if (num % i) == 0:
# not a prime number so break inner loop and
# look for next number
break
else:
print(num)
```

#### Exercise 12: Display Fibonacci series up to 10 terms

**Expected output:**

Fibonacci sequence: 0 1 1 2 3 5 8 13 21 34

## Show Solution

```
terms = 10
# first two terms
num1, num2 = 0, 1
count = 0
print("Fibonacci sequence:")
while count < terms:
print(num1, end=" ")
temp = num1 + num2
# update values
num1 = num2
num2 = temp
count += 1
```

#### Exercise 13: Write a loop to find the factorial of any number

The factorial (symbol: `!`

) means to multiply all whole numbers from the chosen number down to 1.

**For example**: calculate the factorial of 5

5! = 5 × 4 × 3 × 2 × 1 = 120

**Expected output:**

120

## Show Solution

```
num = 5
factorial = 1
if num < 0:
print("Factorial does not exist for negative numbers")
elif num == 0:
print("The factorial of 0 is 1")
else:
for i in range(1, num + 1):
factorial = factorial * i
print("The factorial of", num, "is", factorial)
```

#### Exercise 14: Reverse a given integer number

**Given**:

76542

**Expected output:**

24567

## Show Solution

```
num = 76542
reverse_number = 0
print("Given Number ", num)
while num > 0:
reminder = num % 10
reverse_number = (reverse_number * 10) + reminder
num = num // 10
print("Revered Number ", reverse_number)
```

#### Exercise 15: Use a loop to display elements from a given list that are present at odd index positions

**Given:**

`my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]`

**Note**: list index always starts at 0

**Expected output:**

20 40 60 80 100

## Show Solution

```
my_list = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
for i in my_list[1::2]:
print(i, end=" ")
```

#### Exercise 16: Display the cube of the number up to a given integer

**Given**:

`input_number = 6`

**Expected output:**

Current Number is : 1 and the cube is 1 Current Number is : 2 and the cube is 8 Current Number is : 3 and the cube is 27 Current Number is : 4 and the cube is 64 Current Number is : 5 and the cube is 125 Current Number is : 6 and the cube is 216

## Show Solution

```
input_number = 6
for i in range(1, input_number + 1):
print("Current Number is :", i, " and the cube is", (i * i * i))
```

#### Exercise 17: Find the sum of the series 2 +22 + 222 + 2222 + .. n terms

**Given**:

number_of_terms = 5

So series will become **2 + 22 + 222 + 2222 + 22222**

**Expected output:**

24690

## Show Solution

```
number_of_terms = 5
start = 2
sum = 0
for i in range(0, number_of_terms):
print(start, end=" ")
sum += start
start = (start * 10) + 2
print("\nSum of above series is:", sum)
```

#### Exercise 18: Print the following pattern

* * * * * * * * * * * * * * * * * * * * * * * * *

**Refer**: Print Patterns In Python

## Show Solution

```
rows = 5
for i in range(0, rows):
for j in range(0, i + 1):
print("*", end=' ')
print("\r")
for i in range(rows, 0, -1):
for j in range(0, i - 1):
print("*", end=' ')
print("\r")
```