[Tutor] counting number of inputs (EARLIER VERSION SENT ACCIDENTLY)

Python python at venix.com
Wed May 3 22:58:22 CEST 2006


On Wed, 2006-05-03 at 15:33 -0400, MICHELLE EVANS wrote:
> OK, I've tried a different approach to this.
> How do I get this to stop by using -1?
> I do not want this to print until either 5 inputs have been entered or -1
> has been entered.  See below:
> 

use a "for block" rather than a "while block" to have a normal limit of
5 repetitions:

for x in range(5):

will repeat 5 times with x running from 0 to 4.
x is ignored - unless some use for it does turn up.

the break statement allows you to terminate a block, so

	if number == -1: break

will end the for block.


Now, one of the cute features in Python is the else clause that goes
with the for and while blocks.  The else block is executed when there is
no break.  So the skeleton for your program can look something like

for x in range(5):
	# get inputs and break on -1
else:
	# no break so just process the inputs

Good luck.

> # Add number of per hour
> numbers = []
> stop = None
> while stop != "-1":
>     number = int(raw_input("Run number(-1 to end) : "))
>     numbers.append(number)
>     print
>     for number in numbers:
>         print number
> 
> 
> 
> 
> ----- Original Message ----- 
> From: "Python" <python at venix.com>
> To: "MICHELLE EVANS" <evans1018 at verizon.net>
> Cc: "Tutor Python" <tutor at python.org>
> Sent: Wednesday, May 03, 2006 12:18 PM
> Subject: Re: [Tutor] counting number of inputs (EARLIER VERSION SENT
> ACCIDENTLY)
> 
> 
> > (Tip: Best to use reply-to-all when responding to an email on the list)
> > On Tue, 2006-05-02 at 21:34 -0400, MICHELLE EVANS wrote:
> > > number1 = int(raw_input("Run number 1 (-1 to end) : "))
> > > number2 = int(raw_input("Run number 2 (-1 to end) : "))
> > > number3 = int(raw_input("Run number 3 (-1 to end) : "))
> > > number4 = int(raw_input("Run number 4 (-1 to end) : "))
> > > number5 = int(raw_input("Run number 5 (-1 to end) : "))
> > Good.  You collect the string from raw_input and convert it to an
> > integer.
> >
> > This will prompt for 5 inputs, but it is missing any logic to actually
> > break if -1 is entered.  With a language like BASIC, you could stick in
> > tests sort of like:
> > if number1 == -1 goto done:
> > BUT Python does not have a goto.  So we actually need some "flow
> > control" around the block of code where you collect inputs.
> >
> > while blocks process an indefinite number of times while a test
> > condition is True.
> >
> > for blocks iterate through a sequence until they reach the end.  By
> > providing a sequence with the correct count, you can repeat the block
> > the correct number of times.  The range (and xrange for big sequences)
> > functions provide a sequence of integers that can be used conveniently
> > with for.
> >
> > The easiest way to fix your code above would be something like:
> > ask_for_number = True
> > while ask_for_number:
> > number1 = ....
> > if number1 == -1: break
> > ...
> > number5 = ...
> > ask_for_number = False
> >
> > HOWEVER, that is not a good approach in the long run.
> >
> > A better approach is to have a single container to hold all of the
> > inputs.  For this, Python provides lists.  Rather than have 5 separate
> > variables, use a single list variable to hold all of the inputs.  Then
> > use a "for block" to ask for the input and put the result into the list.
> > You already know how to convert the input from a string to a number.
> >
> > If you have trouble figuring out lists and for blocks, ask for help.
> >
> > (Sorry about the extra email.  I forgot and used ad editor hot-key combo
> > in my email program which sent the email.)
> >
> >
> > >
> > >
> > > # The following will sum the numbers and then print the answer
> > > sum = number1 + number2 + number3 + number4 + number5
> > > print
> > > print "The total number of parts produced was:", sum,"."
> > >
> > > I need this to ask the user to enter their number per each run.  That is
> why
> > > I have 5 different input numbers.  I need this break if a -1 is entered.
> > > Would I use "if-else" to break this if -1 is entered?  I need to be able
> to
> > > count the number of lines entered.
> > >
> > > Thanks
> > > Rick
> > >
> > >
> > > ----- Original Message ----- 
> > > From: "Python" <python at venix.com>
> > > To: "MICHELLE EVANS" <evans1018 at verizon.net>
> > > Cc: "Tutor Python" <tutor at python.org>
> > > Sent: Tuesday, May 02, 2006 7:56 PM
> > > Subject: Re: [Tutor] counting number of inputs
> > >
> > >
> > > > On Tue, 2006-05-02 at 19:25 -0400, MICHELLE EVANS wrote:
> > > > > I am trying to count the number of times a positive number is
> entered
> > > > > from the user.  But, the program must stop after 5 user inputs or a
> > > > > negative number.
> > > > >
> > > > > Can anyone help.
> > > > Yes, but you need to help yourself also.
> > > >
> > > > Do you know how to get input from the user?
> > > > Do you know how to count things in Python?
> > > > Do you know how to test a number to see if it is positive or negative?
> > > >
> > > > Why don't you post your code for any part of this problem and explain
> > > > how it is supposed to work and where you are having difficulty.  If
> > > > necessary, review some of the tutorials to get some pointers on
> writing
> > > > Python programs.
> > > >
> > > > We're happy to help you learn, but do not want to simply write your
> > > > program for you.
> > > >
> > > > > Rick
> > > > > _______________________________________________
> > > > > Tutor maillist  -  Tutor at python.org
> > > > > http://mail.python.org/mailman/listinfo/tutor
> > > > -- 
> > > > Lloyd Kvam
> > > > Venix Corp
> > > >
> > > >
> > >
> > -- 
> > Lloyd Kvam
> > Venix Corp
> >
> >
> 
-- 
Lloyd Kvam
Venix Corp



More information about the Tutor mailing list