ok, i've done what sir Kent just said, my fault... but an error still occurs: Traceback (most recent call last): File "C:\Python23\practices\opentxtprintlngnew.py", line 18, in -toplevel- print process(data) File "C:\Python23\practices\opentxtprintlngnew.py", line 10, in process tempLine = int(line) ValueError: invalid literal for int(): abc
isn't this the job of : except TypeError: print "Non numeric character in line", line continue #Breaks, and starts with next line On Mon, 14 Mar 2005 20:22:29 -0500, Kent Johnson <[EMAIL PROTECTED]> wrote: > jrlen balane wrote: > > import sys > > > > data_file = open('C:/Documents and Settings/nyer/Desktop/nyer.txt', 'r') > > data = data_file.readlines() > > > > def process(list_of_lines): > > data_points = [] > > for line in list_of_lines: > > try: > > tempLine = int(line) > > except TypeError: > > print "Non numeric character in line", line > > continue #Breaks, and starts with next line > > > > data_points.append(tempLine) > > return data_points > > > > print process(data) > > > > ============== > > > > [1000] > > > > ============== > > same result :( any other suggestion??? > > It doesn't look to me like you changed the 'return datapoints' line at all? > Indentation is > significant in Python; by indenting the 'return' past the 'for', you make the > return part of the > loop. The effect of this is to break out of the loop after the first line, > which is what you are seeing. > > Try this: > > import sys > > data_file = open('C:/Documents and Settings/nyer/Desktop/nyer.txt', 'r') > data = data_file.readlines() > > def process(list_of_lines): > data_points = [] > for line in list_of_lines: > try: > tempLine = int(line) > except TypeError: > print "Non numeric character in line", line > continue #Breaks, and starts with next line > > data_points.append(tempLine) > return data_points #### This line was moved left four spaces > #### now it is not part of the loop > > print process(data) > > Kent > > > > On Mon, 14 Mar 2005 19:57:26 -0500, Kent Johnson <[EMAIL PROTECTED]> wrote: > > > >>jrlen balane wrote: > >> > >>>this is what i get after running this on IDLE: > >>> > >>>import sys > >>> > >>>data_file = open('C:/Documents and Settings/nyer/Desktop/nyer.txt', 'r') > >>>data = data_file.readlines() > >>> > >>>def process(list_of_lines): > >>> data_points = [] > >>> for line in list_of_lines: > >>> try: > >>> tempLine = int(line) > >>> except TypeError: > >>> print "Non numeric character in line", line > >>> continue #Breaks, and starts with next line > >>> > >>> data_points.append(tempLine) > >>> return data_points > >> > >>This line ^^^ is indented four spaces too much - you are returning after > >>the first time through the > >>loop. Indent it the same as the for statement and it will work correctly. > >> > >>Kent > >> > >>>print process(data) > >>> > >>>================= > >>>[1000] > >>> > >>>============== > >>>but this is what i have written on the text file: > >>> > >>>1000 > >>>890 > >>>900 > >> > >>_______________________________________________ > >>Tutor maillist - Tutor@python.org > >>http://mail.python.org/mailman/listinfo/tutor > >> > > > > > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor > _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor