On Tue, Nov 6, 2018 at 6:17 PM Joseph Gulizia <joseph.guli...@gmail.com> wrote: > > Apologies for earlier errors when asking for help -- I am hopeful that this > shortened post displays properly: > The code is Python 2... trying to solve why loop doesn't stop at given > number of integers....if I input request for 3 integers....it keeps asking > for integer1...and keeps asking for input,,,so count isn't > working....trying to figure out why. Pointers please. > > import sys > > target_int=raw_input("How many integers?") > > try: > target_int=int(target_int) > except ValueError: > sys.exit("You must enter an integer") > > # creates a collection (list) called ints > > ints=list() > > # keeps track of number of integers > > count=0 > > # Keep asking for an integer until we have the required number > > while count<target_int: > new_int=raw_input("Please enter integer{0}:".format(count+1)) > isint=False > try: > new_int=int(new_int) > except: > print("You must enter an integer") > ----------------- > > > On Tue, Nov 6, 2018 at 3:50 PM Joseph Gulizia <joseph.guli...@gmail.com> > wrote: > > > I'm using the bookazine "The Python Book" First Edition on pages 13-14 it > > gives the code (listed further below). > > > > It asks for user to state a given number of integers (for example > > 4)...then user enters integers. It doesn't stop seeking input after the > > number requested thereby creating an infinite loop. > > > > ----------------------------- > > CODE > > ----------------------------- > > > > # Python Book Page_13.py > > # Joe G. > > > > # several comment lines explain the code below it. > > # Re-typing is good practice > > > > # We're going to write a program that will ask the user to input an > > arbitrary > > # number of intergers, store them in a collection, and then demonstrate > > how the > > # collection would be used in various control structures. > > > > # Used for the sys.exit function > > import sys > > # Requests number of intergers > > target_int=raw_input("How many intergers?") > > # By now, the variable target_int contains a string representtion of > > # whatever the user typed. We need to try and convert that to an interger > > but > > # be ready to # deal with the error if it's not. Otherwise the program > > will > > # crash > > # Begin the error check > > try: > > target_int=int(target_int) > > except ValueError: > > sys.exit("You must enter an interger") > > # creates a collection (list) called ints > > ints=list() > > # keeps track of number of intergers > > count=0 > > # Keep asking for an interger until we have the required number > > while count<target_int: > > new_int=raw_input("Please enter interger{0}:".format(count+1)) > > isint=False > > try: > > new_int=int(new_int) > > except: > > print("You must enter an interger") > > # Only carry on if we have an interger. If not, we'll loop again > > # Notice below I use == which is different from =. The single equals sign > > is an > > # assignment operator whereas the double equals sign is a comparison > > operator. I would > > # call it a married eguals sign....but whenever single is mentioned I have > > to mention marriage. > > > > if isint==True: > > # Add the interger to the collection > > ints.append(new_int) > > # Increment the count by 1 > > count+=1 > > # print statement ("using a for loop") > > print("Using a for loop") > > for value in ints: > > print(str(value)) > > # Or with a while loop: > > print("Using a while loop") > > # We already have the total above, but knowing the len function is very > > # useful. > > total = len(ints) > > count = 0 > > while count < total: > > print(str(ints[count])) > > count +=1 > > > > count = 0 > > while count < total: > > print(str(ints[count])) > > count += 1 > > > > ------------------------------- > > END OF CODE > > ------------------------------- > > Sample output: > > > > How many integers?3 > > Please enter integer1:1 > > Please enter integer1:2 > > Please enter integer1:3 > > Please enter integer1:a > > You must enter an integer > > Please enter integer1:4 > > Please enter integer1:5 > > Please enter integer1:6 > > Please enter integer1:b > > You must enter an integer > > Please enter integer1: > > (Keeps Looping) > > > > Thanks in advance > > Joe > > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor
still not indented.. sorry.. figure that out -- Joel Goldstick http://joelgoldstick.com/blog http://cc-baseballstats.info/stats/birthdays _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor