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 Python for loop and while loop assignments 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
- Python nested if-else and nested loop
- Break, continue and pass statement

When you complete each question, you get more familiar with the if-else conditions, for loop, and while loop. Let us know if you have any alternative solutions. It will help other developers.

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

**Read**: Python range().

#### 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 even index positions

**Given:**

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

**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")
```