[Tutor] Question

Alan Gauld alan.gauld at btinternet.com
Thu Jul 12 22:54:24 CEST 2007


"Que Prime" <queprime at gmail.com> wrote 

>   Here is what I have so far but can't seem to get the loop and
> write correct.

I suspect you have used another language before and 
Python's for loop is foxing you.

> print "Creating txt file"
> tfile = open("25.txt", "w")
> 
> for i in range(25):
>    x = int(1)

You don;t need to convert to an int, i is already an int.
But worse, you are here converting the number 1 to 
an int every time through the loop. I don't think thats 
what you want! range(25) will produce a list of numbers 
from 0 to 24. The for loop will set i to each number in 
turn. 

>    tfile.writelines("x\n")

And writelines expects a list of strings but you are 
giving it one string. You only need write() here. And 
of course you don't need x so you can just write 
the string version of i: str(i) plus a new line (\n)

>    x += 1

And you don't need this at all because the loop 
will automatically get the next number.

> tfile.close()

Try those changes, it should simplify things significantly.

You might find a quick read through my loops and file 
handling topics useful too.

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld



More information about the Tutor mailing list