none wrote: > import pgdb; > > dbh = pgdb.connect(database = 'test') > sth = dbh.cursor() > sth.execute("SELECT * FROM capitals") > #while 1: > #results = sth.fetchone() > #if results == None: > #break > #print results > while results = sth.fetchone(): > print results > > If I try to run the above code, I get a SyntaxError indicating that I > can't do an assignment in the while loop. I found a way around this > (see the commented out while loop), but it seems hackish. Assignment > within a while loop seems like a pretty standard thing, so I'm just > curious what I'm missing.
A more pythonic way to do that is something like: for results in sth.fetchall(): print results (I'm not familiar with pgdb, but if it's a reasonable module it will have some function that returns an iterator.) In the beginning of my python experience, I was a bit irritated at being unable to assign and check a condition in one statement, but the irritation really doesn't last very long. Python has a huge amount of inherent beauty, and is well worth the time. -- http://mail.python.org/mailman/listinfo/python-list