2016-04-15 8 views
0

Ausführung dieser Anweisung betrachtet die alle Befehle nach dem ":" in der for-SchleifePython-Befehlszeile "-c" Marotte

python -c 'for a in range(10):print(a);x=123;print(x) 

ich Python-Interpreter, um anzuzeigen, wollen, dass "x = 123;" und nach sind aus der Schleife ...

Anhaltspunkte ...

+2

In welcher Shell sind Sie? Geben Sie in bash 'python -c' für einen Bereich (10) ein: print (a) x = 123; print (x) '. Bash führt den Befehl erst aus, wenn die Zeichenfolge vollständig ist. – NoOneIsHere

+0

kann nicht verwendet ... – ZEE

+1

Ich weiß nicht, ob Sie das mit -c Args tun können, aber Sie könnten Echo und Pipe verwenden. 'echo -e 'für einen Bereich (10): print (a) \ nx = 123 \ nprint (x)' | python' – luisurrutia

Antwort

0

Per https://docs.python.org/2/using/cmdline.html:

-c den Python-Code in Befehl Ausführen. Der Befehl kann aus einer oder mehreren Anweisungen bestehen, die durch Zeilenumbrüche getrennt sind, mit signifikanten führenden Leerzeichen wie im normalen Modulcode.

Also, wenn Ihre Shell einem der bash ist, sh oder ksh, sollten Sie in der Lage sein, einfach den Code als normal zu formatieren, solange es innerhalb der einfachen Anführungszeichen voll ist (dh. Vollständig gegliederte, Wagenrücklauf, etc.).

+0

Siehe @ ZEE's Kommentar zu Zeilenumbrüchen. – NoOneIsHere

+0

Nur wie ich an alle, die mich abwerteten, eine vollkommen gültige Antwort abgab, die zur selben Zeit gepostet wurde, als die zusätzliche, widersprüchliche Einschränkung hinzugefügt wurde, ist eine wirklich, wirklich gute Möglichkeit, sicherzustellen, dass ich nie wieder versuchen werde zu liefern Hilfe zum Plakat. –

+0

Ich habe nicht downvote. Ich habe nur darauf hingewiesen. – NoOneIsHere