This is exactly what I am trying to do.  I am so confused with trying to
write this.  I am not very familiar with any of the functions.  I keep
reading my book and reading my book, and none of it seems to make sense
anymore.  I can write extremely simple functions, but when I need to use
more than one in a code, I'm lost!

Thanks

----- Original Message ----- 
From: "Marc Poulin" <[EMAIL PROTECTED]>
To: <tutor@python.org>
Sent: Thursday, May 04, 2006 12:08 AM
Subject: Re: [Tutor] counting number of inputs (EARLIER VERSION SENT
ACCIDENTLY)


>
> Michelle:
>
> Are you familiar with writing functions?
> Here I've created a function named getInputs.
>
> I've also created a few test cases to verify that (a)
> my understanding of the problem is correct, and (b) my
> solution is correct.
>
> It's important to think about how your program is
> supposed to behave in different situations. Do you
> think these 3 tests are enough to prove that the code
> is correct?
>
> #########################
> ## start of code       ##
> #########################
> def getInputs():
>     """
>     Description:
>        Collect numbers entered by the user (up to a
> maximum of 5 values) and
>        store them in the listOfValues.
>
>        Stop collecting numbers if the user enters -1
> or if 5 numbers have been collected.
>
>        If the user entered -1, the -1 is NOT returned
> as part of the list.
>     """
>     listOfValues = [] ## this list holds the values
> entered by the user
>
>     for i in range(5):
>         newValue = int(raw_input('Enter a number [-1
> to exit]:'))
>         if newValue == -1:
>             # Return right now with whatever is
> currently in the list.
>             return listOfValues
>         else:
>             # Add this new value to the list and keep
> looping.
>             listOfValues.append(newValue)
>
>     ## If we got this far, it means the user did not
> enter a -1 so
>     ## the list contains 5 values.
>     return listOfValues
>
> """
> Here are a few test cases to verify the logic of my
> code.
>
> Test Case 1:
>    INPUTS:
>       first entered value: -1
>    RESULT:
>       function returns empty list
>
> Test Case 2:
>    INPUTS:
>       first entered value: 1
>       second entered value: 2
>       third entered value: -1
>    RESULT:
>       returned list contains [1,2]
>
> Test Case 3:
>    INPUTS:
>       first entered value: 1
>       second entered value: 2
>       third entered value: 3
>       fourth entered value: 4
>       fifth entered value: 5
>    RESULT:
>       returned list contains [1,2,3,4,5]
> """
> if __name__ == "__main__":
>     print getInputs()
>
> ###################
> ## end of code   ##
> ###################
>
>
> --- Python <[EMAIL PROTECTED]> wrote:
>
> > 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" <[EMAIL PROTECTED]>
> > > To: "MICHELLE EVANS" <[EMAIL PROTECTED]>
> > > Cc: "Tutor Python" <tutor@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" <[EMAIL PROTECTED]>
> > > > > To: "MICHELLE EVANS" <[EMAIL PROTECTED]>
> > > > > Cc: "Tutor Python" <tutor@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.
> > > > > >
> >
> === message truncated ===
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> http://mail.python.org/mailman/listinfo/tutor
>

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to