首頁 >後端開發 >Python教學 >為什麼 Python 2.x 在使用 'end' 關鍵字參數時拋出「語法錯誤:呼叫 'print' 時缺少括號」?

為什麼 Python 2.x 在使用 'end' 關鍵字參數時拋出「語法錯誤:呼叫 'print' 時缺少括號」?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-10 00:23:02538瀏覽

Why Does Python 2.x Throw a

使用Print 和End 關鍵字參數處理語法錯誤

嘗試執行以下程式碼時:

if Verbose:
   print("Building internal Index for %d tile(s) ...", end=' ')

an發生錯誤:「語法錯誤:呼叫'列印'時缺少括號」。這是因為 Python 2.x 不支援關鍵字參數 end。

理解差異

在 Python 2.x 中,將函數印為語句。因此,上面的程式碼被解釋為對 print 的元組包裝調用,最後一個參數是字串文字。但是,字串文字不支援關鍵字參數,從而導致錯誤。

Python 2.x 的解

在Python 2.x 中,採用下列其中一項以空格結束行的方法:

  • 在print 語句中加入最後一個逗號:

    print "Building internal Index for %d tile(s) ...",
  • 使用sys.stdout直接模組以更好地控制輸出:

    import sys
    sys.stdout.write("Building internal Index for %d tile(s) ... ")

在Python 2.x 中啟用End 關鍵字參數

在Python 2 的最新版本中.x(2.5 及更高版本)中,__future__模組允許透過匯入print_function 將print 函數作為函數啟動。但是,此方法可能與較舊的 Python 2.x 版本不相容。

過渡到 Python 3.x

在 Python 3.x 中, print 的行為類似於函數,允許使用關鍵字參數,例如 end。因此,原始程式碼無需任何修改即可在 Python 3.x 中正確執行。

以上是為什麼 Python 2.x 在使用 'end' 關鍵字參數時拋出「語法錯誤:呼叫 'print' 時缺少括號」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn