[Tutor] Request for help with code

Joseph Gulizia joseph.gulizia at gmail.com
Tue Nov 6 18:15:40 EST 2018


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.gulizia at 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
>


More information about the Tutor mailing list