# Chapter 4: Loops¶

## Program 4.1, page no. 139¶

In [1]:
for count in range (1, 11):
print count,
print "\nAfter the loop count has the value %d." %count

1 2 3 4 5 6 7 8 9 10
After the loop count has the value 10.


## Program 4.2, page no. 140¶

In [2]:
print "**************"
for count in range(1, 9):
print "*            *"
print "**************"

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


## Program 4.3, page no. 144¶

In [3]:
sum = 0

print "Enter the number of integers you want to sum: ",
count = int(raw_input())

for i in range(1, count+1):
sum = sum + i

print "Total of the first %d numbers is %d" %(count, sum)

Enter the number of integers you want to sum: 10
Total of the first 10 numbers is 55


## Program 4.4, page no. 144¶

In [5]:
sum = 0

print "Enter the number of integers you want to sum: ",
count = int(raw_input())

for i in range(1, count+1):
sum = sum + i

print "Total of the first %d numbers is %d" %(count, sum)

Enter the number of integers you want to sum: 10
Total of the first 10 numbers is 55


## Program 4.5, page no. 147¶

In [6]:
sum = 0

print "Enter the number of integers you want to sum: ",
count = int(raw_input())
for i in range(count, 0, -1):
sum = sum + i
print "Total of the first %d numbers is %d" %(count, sum)

Enter the number of integers you want to sum: 10
Total of the first 10 numbers is 55


## Program 4.6, page no. 148¶

In [7]:
print "This program calculates the average of any number of values."
total = 0
count = 0
while True: # infinite loop
print "\nEnter a value: ",
value = float(raw_input())
total += value
count += 1

print "Do you want to enter another value? (Y or N): ",
break

print "The average is %.2f" %(total/count)

This program calculates the average of any number of values.

Enter a value: 10
Do you want to enter another value? (Y or N): y

Enter a value: 8
Do you want to enter another value? (Y or N): y

Enter a value: 6
Do you want to enter another value? (Y or N): n
The average is 8.00


## Program 4.7, page no. 151¶

In [8]:
import sys

chosen = 15
guess = 0
count = 3

print "This is a guessing game."
print "I have chosen a number between 1 and 20 which you must guess."

for i in range(count, 0, -1):
print "You have %d tr%s left." %(i, ("y" if i == 1 else "ies"));
print "\nEnter a guess: ",
guess = int(raw_input())
if(guess == chosen):
print "Congratulations. You guessed it!"
sys.exit()
elif(guess < 1 or guess > 20):
print "I said the number is between 1 and 20."
else:
print "Sorry, %d is wrong. My number is %s than that.\n" %(guess, ("greater" if chosen > guess else "less"))
print "You have had three tries and failed. The number was %d" % chosen

This is a guessing game.
I have chosen a number between 1 and 20 which you must guess.
You have 3 tries left.

Enter a guess: 5
Sorry, 5 is wrong. My number is greater than that.

You have 2 tries left.

Enter a guess: 9
Sorry, 9 is wrong. My number is greater than that.

You have 1 try left.

Enter a guess: 14
Sorry, 14 is wrong. My number is greater than that.

You have had three tries and failed. The number was 15


## Program 4.7A, page no. 154¶

In [11]:
from random import *

guess = 0
count = 3
limit = 20

chosen = 1 + randint(1, limit) #Random int 1 to limit

print "This is a guessing game."
print "I have chosen a number between 1 and 20 which you must guess."

for i in range(count, 0, -1):
print "You have %d tr%s left." %(i, ("y" if i == 1 else "ies"));
print "Enter a guess: ",
guess = int(raw_input())
if(guess == chosen):
print "Congratulations. You guessed it!"
sys.exit()
elif(guess < 1 or guess > 20):
print "I said the number is between 1 and 20."
else:
print "Sorry, %d is wrong. My number is %s than that.\n" %(guess, ("greater" if chosen > guess else "less"))
print "You have had three tries and failed. The number was %d" % chosen

This is a guessing game.
I have chosen a number between 1 and 20 which you must guess.
You have 3 tries left.
Enter a guess: 6
Sorry, 6 is wrong. My number is greater than that.

You have 2 tries left.
Enter a guess: 14
Sorry, 14 is wrong. My number is greater than that.

You have 1 try left.
Enter a guess: 16
Sorry, 16 is wrong. My number is greater than that.

You have had three tries and failed. The number was 20


## Program 4.8, page no. 158¶

In [9]:
sum = 0
i = 1

print "Enter the number of integers you want to sum: ",
count = int(raw_input())

while(i <= count):
sum += i
i += 1

print "Total of the first %d numbers is %d" %(count, sum)

Enter the number of integers you want to sum: 10
Total of the first 10 numbers is 55


## Program 4.9, page no. 161¶

In [17]:
MIN_SIZE = 3;

print "Enter values for the width and height (minimum of %d): " % MIN_SIZE
width = int(raw_input("Width: "))
height = int(raw_input("Height: "))

if(width < MIN_SIZE):
print "Width value of %d is too small. Setting it to %d." %(width, MIN_SIZE)
width = MIN_SIZE
if(height < MIN_SIZE):
print "Height value of %d is too small. Setting it to %d." %(height, MIN_SIZE)
height = MIN_SIZE

for i in range(0, width):
print "*",
print "\n"
for j in range(0, height-2):
print "*",
for i in range(0, width-2):
print " ",
print "*"

print "\n"
for i in range(0, width):
print "*",

Enter values for the width and height (minimum of 3):
Width: 24
Height: 7
* * * * * * * * * * * * * * * * * * * * * * * *

*                                             *
*                                             *
*                                             *
*                                             *
*                                             *

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


## Program 4.10, page no. 162¶

In [18]:
sum = 0
count = 0

print "Enter the number of integers you want to sum: ",
count = int(raw_input())

for i in range(1, count+1):
sum = 0
for j in range(1, i+1):
sum += j
print "%d\t%5d" %(i, sum)
print "\n"

Enter the number of integers you want to sum: 10
1	    1
2	    3
3	    6
4	   10
5	   15
6	   21
7	   28
8	   36
9	   45
10	   55



## Program 4.11, page no. 164¶

In [19]:
print "Enter the number of integers you want to sum: ",
count = int(raw_input())

for i in range(1, count+1):
sum = 1
j = 1
print "1",
while(j < i):
j += 1
sum += j
print "+ %d" % j,
print "= %d" % sum
print "\n"

Enter the number of integers you want to sum: 10
1 = 1
1 + 2 = 3
1 + 2 + 3 = 6
1 + 2 + 3 + 4 = 10
1 + 2 + 3 + 4 + 5 = 15
1 + 2 + 3 + 4 + 5 + 6 = 21
1 + 2 + 3 + 4 + 5 + 6 + 7 = 28
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55



## Program 4.12, page no. 167¶

In [20]:
rebmun = 0
print "\nEnter a positive integer: ",
number = int(raw_input())
temp = number
while(temp):
rebmun = 10*rebmun + temp % 10
temp = temp/10

print "The number %d reversed is %d rebmun ehT" %(number, rebmun)

Enter a positive integer: 7
The number 7 reversed is 7 rebmun ehT