python for loop
In this post:
- Basic loop - for x in range(3, 5):
- for loop based on list
- for loop list all files recursively
- for loop and else clause
- for loop with continue
- for loop example get perfect numbers
Basic loop for in python
The syntax of for loop is straight forward and at the same time give you many options. You can see the some basic example below:
for loop from range
for x in range(3, 5):
print ("%d" % (x))
result:
3
4
for x in range(5):
print ("%d" % (x))
result:
0
1
2
3
4
for loop based on list
days = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
for day in days:
print (day)
result:
SUN
MON
TUE
WED
THU
FRI
SAT
for loop list all files recursively
You can use for loop to list all files and folders recursively by:
import os
indir = 'C:\\Users\\user\\'
for root, dirs, filenames in os.walk(indir):
for f in filenames:
filename = indir + f
print filename
result:
test.txt
for loop and else clause
for x in xrange(3):
print 'We start in %d' % (x)
else:
print 'We are live'
result:
We start in 0
We start in 1
We start in 2
We are live
for loop with step
If you need to skip several steps you have the option of skipping n steps. Let say that you want odd numbers then you can do:
for x in range(1, 10, 2):
print(x)
result:
1
3
5
7
9
for loop with continue
Continue can be used within for loop. The continue statement is used to continue with the next iteration of the loop. It's useful in several situations:
filtering an input
For loop and continue can be used to remove special characters from a string:
str = "find ;;;divisors of...... a ,,number without the number"
for x in str:
if (x in [";",',','.']):
continue
print(x, end="")
result:
find divisors of a number without the number
preventing errors
Errors can be easily avoided with continue statement. In the example below error:
TypeError: unsupported operand type(s) for /: 'int' and 'str'
will be produced without continue statement:
for num in [1,4,5,'c',7,8,9,'b']:
if not isinstance(num, int): continue
print (1/num)
for loop example get perfect numbers
By definition perfect number is a number that is equal to it's divisors sum. So 6 and 1, 2, 3 are the first perfect number. Below you can find example of for loop and continue in order to stop the second check if the number is perfect.
import math
from numpy import prod
#find divisors of a number without the number
def divisorGenerator(n):
divs = [1]
for i in range(2,int(math.sqrt(n))+1):
if n%i == 0:
divs.extend([i,n/i])
divs.extend([])
return list(set(divs))
for x in range(1, 30):
divisors = list(divisorGenerator(x))
suma = sum(divisors)
product = prod(divisors)
#check is it perfect number
if(suma == x and divisors != [1]):
print (x)
print (divisors)
continue # if we remove it we will get the second result
# check if the sum is equal to product
if (suma == product and divisors != [1]):
print(x)
print(divisors)
result:
6
[1, 2, 3]
28
[1, 2, 4, 14, 7]
second result without continue:
6
[1, 2, 3]
6
[1, 2, 3]
28
[1, 2, 4, 14, 7]