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