manipulating files within 'for'

Matt Nordhoff mnordhoff at mattnordhoff.com
Fri Sep 12 15:57:17 EDT 2008


bearophileHUGS at lycos.com wrote:
> Ben Keshet:
>> ...wrong.  I thought I should omit the comma and didn't put it.  I guess
>> that stating the obvious should be the first attempt with beginners like
>> me.  Thanks for thinking about it (it's running perfect now).
> 
> In CLisp, Scheme etc, lists such commas aren't necessary, but in
> Python if you don't separate strings with a comma they become merged
> into a single string:
> 
>>>> 'foo', 'bar'
> ('foo', 'bar')
>>>> 'foo' 'bar'
> 'foobar'
> 
> Your mistake is caused by Python not following one of its general
> rules:
> 
> Explicit is better than implicit.
> 
> In such case the string concatenation (+) is done implicitly. It's a
> little handy feature once in a while (but not for me so far), while it
> may cause bugs, so I don't like this little feature of Python and I
> may like to see it removed, because it may bite you in similar
> situations, where you forgot a comma for mistake:
> 
> parts = ["foo", "bar" "baz"]
> 
> Bye,
> bearophile

It's useful when wrapping a line. For lack of better lorem ipsum:

whatever = some_function("Your mistake is caused by Python not "
                         "following one of its general rules:\n\n"
                         "Explicit is better than implicit.")

You can also use backslashes, and probably even + if you want to, but
the implicit concatenation is prettier (IMO, at least ;-).

But you do have a point. I have never thought about the problems it
could cause.

BTW, I could easily be wrong, but I think C behaves the same way as Python.
-- 



More information about the Python-list mailing list