String substitution VS proper mysql escaping
Tim Chase
python.list at tim.thechases.com
Thu Aug 19 07:32:55 EDT 2010
On 08/19/10 02:10, Νίκος wrote:
>> ("nikos",) is a single element tuple.
>> ["nikos"] is a single element list.
>> ["nikos",] is also a single element list, just written like the tuple.
>
> It makes more sense if i:
>
> "nikos" is just a string
> ("nikos") is a single element tuple
> ["nikos"] is also a single element list
>
> After all () used to define tuples and [] usedd to define lists. Why
> commas?
You have to look at the other side: what *else* they're used
for. Python also uses () to override order of operations (and to
call functions, but that's contextually different) which can
occur in the same context as tuples, while [] are used only
within contexts where they can be disambiguated. Going back to
one of the originals example posted in this thread:
(1) + (2)
do you think this should yield (1, 2) or 3? It would be crazy if
evaluation of
(3*14) + (7*21)
was reduced, treated as "(42) + (147)" and then reduced to
"(42,147)" instead of 189.
So Python needs a way to express that you *explicitly* mean "this
is one of those rare one-element tuples, not an order of
operations prioritization":
(1,) + (2,)
to return "(1,2)"
> Also is there a difference between 'nikos' or "nikos" or '''nikos''' ?
> What's and why best to use to enclose strings?
Internally, there's no difference other than how easily you can
include " or ' characters in your string. Thus you might write:
with_dquote = 'He said "Hello"'
with_apos = "It's 2:00am"
with_both1 = """She said "Don't touch me" to her boss"""
with_both2 = '''She said "Don't touch me" to her boss'''
You can also prefix any of them with "r" such as
file_path = r"c:\path\to\file.txt"
file_path = r'c:\path\to\file.txt
file_path = r"""c:\path\to\file.txt"""
file_path = r'''c:\path\to\file.txt'''
to alter how "\" are treated.
Otherwise, if it doesn't make a difference, I tend to use C-ish
conventions of using " for strings and ' for single characters:
if 'w' in "hello world":
but the important/kind thing is to be internally consistent to
make your own life easier. :)
-tkc
More information about the Python-list
mailing list