On 02/22/2013 03:59 PM, Jerry Hill wrote:
On Fri, Feb 22, 2013 at 4:26 PM, Jim Byrnes <jf_byr...@comcast.net> wrote:
I am cleaning up my code and have a number of sqlite3 execute statements
that extend far past 80 characters.

 From my reading implicit line joining with (), [] or {} seems to be the
preferred method, but

cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account
         COLLATE NOCASE', cat)

gives this error:

jfb@jims1204:~/MyProgs/passwords$ python passwords.py
   File "passwords.py", line 50
     cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account
                                                                           ^
SyntaxError: EOL while scanning string literal

Single quoted strings aren't allowed to have line breaks in them.  If
you have two string literals separated only by whitespace, though,
they get joined together, so you could do this:

cur.execute('SELECT Account FROM pwds WHERE Category=? ORDER BY Account'
         'COLLATE NOCASE', cat)

You can also use triple quoted strings instead, which is my
preference.  Triple quoted strings are allowed to have line breaks,
and the whitespace doesn't matter in your SQL query.  So I'd do
something like this:

cur.execute ('''select account
                 from pwds
                 where category = ?
                 order by account
                 collate nocase''', cat)

You can break the query up over however many lines it needs to be
readable, of course.


Thanks, the triple quoted method worked great. I guess I always think of them in terms of docstrings or comments not in this way.

Regards,  Jim

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to