2015-11-19 39 views
0

爲什麼這行會在bash腳本中給出錯誤?使用Python在bash腳本中漂亮地打印

$ python -c "print "{:02d}".format(3)" 

    File "<string>", line 1 
    print {:02d}.format(3) 
    ^
SyntaxError: invalid syntax 

我直接在終端輸入。

雖然在python控制檯:

>>> print "{:02d}".format(1) 
01 
+0

你不能「嵌套」這樣的雙引號。內部兩個引號沒有傳遞給python,它們與shell的第一個和最後一個引號進行配對,並被刪除,所以python將'print {:02d} .format(3)'看作要運行的代碼。 –

+0

糟糕。啊!是。他們正在配對。愚蠢的我! 感謝您指點@EtanReisner。 :) –

+0

@AbhishekTripathi隨時點擊附近的答案附近的任何答案接近回答這個問題。在StackOverflow上接受答案的歷史證明會鼓勵更多人回答您的後續問題。 – ChrisGuest

回答

3

您正在使用bash中雙引號,並試圖在Python中使用雙引號了。然而,bash似乎將這個解釋爲沒有任何嵌套的兩組雙引號,並且它們被剝離出來並且不能到達python解釋器。因此,Python看到這一點,並提出了一個語法錯誤:

print {:02d}.format(3) 

嘗試在bash中使用單引號,而在蟒蛇的兩倍。這將比避免雙引號更簡單。

python -c 'print "{:02d}".format(3)'