[Tutor] NEWBIE QUEASTION ALERT - how to restart program?
Don Arnold
Don Arnold" <darnold02@sprynet.com
Fri Dec 20 20:18:01 2002
----- Original Message -----
From: Ole Jensen
To: tutor@python.org
Sent: Friday, December 20, 2002 6:10 PM
Subject: [Tutor] NEWBIE QUEASTION ALERT - how to restart program?
Alright, as the subject says - Im not the most educated man in python (or
any other language), but I been going through some tutorials.
And as I have expanded the trials in order not to just copy and paste I was
wondering how it is possible to go back in the script/file in order to
restart certain section in order for the program not just to shut down...
well e.g.:
This program has been modified from the area calculator found in the instant
hacking tutorial http://www.hetland.org/python/instant-hacking.php
___________________________________________________________________________
<source snipped>
If you run this program independently the window will close automaticly
after it has been run, now instead of just closing the window how would it
be possiple to re-run the program, e.g. in the first many you have a choice
of: 1 or 2. if the user presses any other key, the program will print "grow
up man... 1 or 2!!!" and shut down/close the window (given after waiting 5
seconds), now instead I would like the program to ask the question again...
how is that done...?
given it maight not be crutial, but I really would like to know how its
done. and finally I should say I have no understanding of how the loops work
(I've gone through tutorials about the FOR-loops and WHILE-loops but they
make no sense to me) so if loops are esantial to what i want to achive I was
wondering if any of you reading this could guide me to some very basic
walk-through's of loops
--- my reply: ---
Loops _are_ essential to what you are trying to do: repeatedly execute a
body of suite of code. Python has 2 flavors of loop. The 'for' loop is
designed to repeat a set number of times. It executes your loop body once
for each item in the given sequence:
>>> for number in (1,2,3,4,5):
print number, number * 5
1 5
2 10
3 15
4 20
5 25
The 'while' loop will execute its body as long as its condition is true.
It's an indefinite loop because it doesn't run a specific number of times.
Instead, some action inside the loop body eventually invalidates the loop
condition, causing it to terminate.
>>> from random import randint
>>> number = 0
>>> while number != 10:
number = randint(1,10)
print number
9
6
3
6
10
>>>
This is exactly the behavior you want: you want to repeat the loop until the
user chooses to quit. You can do this by adding a 'quit' option to your main
menu and then moving the code that should repeat inside a 'while' loop:
# Import the sleep mode in order to display results before shut down
from time import sleep
#flag to see if we're done
done = 0
# Area calculator
print "WELCOME TO THE AREA CALCULATOR"
print "------------------------------"
while not done:
# menu
print ""
print ""
print "Select a shape"
print "1: Quadrangle"
print "2: Circle"
print "3: Quit"
shape = input(">>>")
if shape == 1:
print "Is it a:"
print ""
print "1: square"
print "2: rectangle"
quad_shape = input(">>>")
if quad_shape == 1:
print "Square"
S = input("What is the lenght of any side?")
print ""
print "The area is",S**2
sleep(5)
elif quad_shape== 2:
print "rectangle"
L = input("What is the lenght?")
W = input("What is the width?")
print ""
if L == W:
print "this not a rectangle moron!"
sleep(5)
else:
print "The area is",L*W
sleep(5)
else:
print "wrong key!!!"
sleep(5)
elif shape == 2:
print "circle"
R = input("What is the radius?")
print ""
print "The area of the circle is:",R**2*3.14
sleep(5)
elif shape == 3:
done = 1
else:
print "Grow up man... 1, 2 or 3!!!"
sleep(5)
## we fell out of the loop
print 'Finished.'
sleep(5)
HTH,
Don