Control Flow (Loops) : While and While-Else Loop
Control Flow (Loops) : While and While-Else Loop
Loops in programming come into use when we need to repeatedly execute a block
of statements. For example: Suppose we want to print “Hello World” 10 times. This
can be done with the help of loops. The loops in Python are:
Output:
Hello Geek
Hello Geek
Hello Geek
4
3
2
1
11
print("List Iteration")
l = ["geeks", "for", "geeks"]
for i in l:
print(i)
2
# Iterating over a String
print("\nString Iteration")
s = "Geeks"
for i in s :
print(i)
print("\nFor-else loop")
for i in s:
print(i)
else: # Executed because no break in for
print("No Break\n")
for i in s:
print(i)
break
else: # Not executed as there is a break
print("No Break")
Output:
List Iteration
geeks
for
geeks
String Iteration
G
e
e
k
s
For-else loop
G
e
e
k
s
3
No Break
range() is commonly used in for looping hence, knowledge of same is key aspect
when dealing with any kind of Python code. Most common use of range() function
in Python is to iterate sequence type (List, string etc.. ) with for and while loop.
Python range() Basics :
In simple terms, range() allows user to generate a series of numbers within a
given range. Depending on how many arguments user is passing to the function,
user can decide where that series of numbers will begin and end as well as how big
the difference will be between one number and the next.range() takes mainly three
arguments.
start: integer starting from which the sequence of integers is to be returned
stop: integer before which the sequence of integers is to be returned.
The range of integers end at stop – 1.
step: integer value which determines the increment between each integer in
the sequence
4
# Python program to demonstrate
# range() function
for i in range(5):
print(i, end =" ")
print()
for i in range(2, 9):
print(i, end =" ")
print()
# incremented by 3
Output:
0 1 2 3 4
2 3 4 5 6 7 8
15 18 21 24
for i in range(10):
print(i, end =" ")
print()
# using range for iteration
5
l = [10, 20, 30, 40]
for i in range(len(l)):
print(l[i], end =" ")
print()
# performing sum of natural
# number
sum = 0
for i in range(1, 11):
sum = sum + i
print("Sum of first 10 natural number :", sum)
Output :
0 1 2 3 4 5 6 7 8 9
10 20 30 40
Sum of first 10 natural number : 55
There are three ways you can call range() :
range(stop)
When user call range() with one argument, user will get a series of numbers that starts at 0 and
includes every whole number up to, but not including, the number that user have provided as the
stop. For Example –
# Python program to
# print whole number
# using range()
# printing first 10
# whole number
for i in range(10):
print(i, end =" ")
print()
# printing first 20
# whole number
for i in range(20):
print(i, end = " ")
6
Output:
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
range(start, stop)
When user call range() with two arguments, user get to decide not only where the
series of numbers stops but also where it starts, so user don’t have to start at 0 all
the time. User can use range() to generate a series of numbers from X to Y using a
range(X, Y). For Example -arguments
Output:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
7
range(start, stop, step)
When user call range() with three arguments, user can choose not only where the series of
numbers will start and stop but also how big the difference will be between one number and the
next. If user don’t provide a step, then range() will automatically behave as if the step is 1.
Incrementing with range using positive step :
If user want to increment, then user need step to be a positive number. For example:
# Python program to
# increment with
# range()
# incremented by 2
Output :
2 4 6 8 10 12 14 16 18 20 22 24
0 4 8 12 16 20 24 28
15 18 21 24
Output :
25 23 21 19 17 15 13 11 9 7 5 3
30 26 22 18 14 10 6 2
9
25 22 19 16 13 10 7 4 1 -2 -5
Python range() function doesn’t support the float numbers. i.e. user cannot use
floating-point or non-integer number in any of its argument. User can use only
integer numbers.For example
# Python program to
# show using float
# number in range()
# using a float number
for i in range(3.3):
print(i)
# using a float number
for i in range(5.5):
print(i)
Output :
for i in range(3.3):
TypeError: 'float' object cannot be interpreted as an integer
10
# Python program to concatenate
# the result of two range functions
from itertools import chain
# Using chain method
print("Concatenating the result")
res = chain(range(5), range(10, 20, 2))
for i in res:
print(i, end=" ")
Output:
Output:
First element: 0
Last element: 9
Fifth element: 4
11
All argument must be integers. User can not pass a string or float number or
any other type in a start, stop and step argument of a range().
All three arguments can be positive or negative.
The step value must not be zero. If a step is zero python raises a ValueError
exception.
range() is a type in Python
12