On 13 October 2012 17:38, Joshua Landau <[email protected]> wrote:
> This here isn't a flaw in Python, though. It's a flaw in the command-line
> interpreter. By putting it all on one line, you are effectively saying:
> "group these". Which is the same as an "if True:" block, and some things
> like Reinteract even supply a grouping block like "build".
>
> That said, because some shells suck it would be nice if:
>
>> python -c "a=1\nif a:print(a)"
>
> worked (just for -c).
>
>
And, spurred on by another thread, this has become possible.
Make a file like so, install it if you wish.
import sys
> evaluable = sys.argv[1].encode("utf8").decode("unicode_escape")
> exec(evaluable)
This lets you do this:
python unicode_escape.py "a = [] ##\nfor x in range(100): ##\n
> a.append(x) ##\n a.append(x**2) ##\nprint(a)"
It's ugly, but it works and only takes one line.
--
http://mail.python.org/mailman/listinfo/python-list