Mengendalikan SyntaxError dengan Cetak dan Tamat Hujah Kata Kunci
Apabila cuba melaksanakan kod berikut:
if Verbose: print("Building internal Index for %d tile(s) ...", end=' ')
an ralat berlaku: "SyntaxError: Tiada kurungan dalam panggilan untuk 'mencetak'". Ini kerana hujung hujah kata kunci tidak disokong dalam Python 2.x.
Memahami Perbezaan
Dalam Python 2.x, cetakan berfungsi sebagai pernyataan. Oleh itu, kod di atas ditafsirkan sebagai panggilan yang dibalut tuple untuk mencetak, dengan hujah terakhir ialah rentetan literal. Walau bagaimanapun, literal rentetan tidak menyokong hujah kata kunci, yang membawa kepada ralat.
Penyelesaian untuk Python 2.x
Dalam Python 2.x, gunakan salah satu daripada yang berikut kaedah untuk menamatkan baris dengan ruang:
Tambahkan koma akhir pada cetakan pernyataan:
print "Building internal Index for %d tile(s) ...",
Gunakan modul sys.stdout secara langsung untuk kawalan yang lebih besar ke atas output:
import sys sys.stdout.write("Building internal Index for %d tile(s) ... ")
Mendayakan Tamat Argumen Kata Kunci dalam Python 2.x
Dalam versi terbaru Python 2.x (2.5 dan lebih baru), modul __future__ membenarkan pengaktifan fungsi cetakan sebagai fungsi dengan mengimport fungsi_cetak. Walau bagaimanapun, kaedah ini mungkin tidak serasi dengan versi Python 2.x yang lebih lama.
Peralihan kepada Python 3.x
Dalam Python 3.x, cetakan berfungsi sebagai fungsi, membolehkan penggunaan hujah kata kunci seperti end. Oleh itu, kod asal harus dilaksanakan dengan betul dalam Python 3.x tanpa sebarang pengubahsuaian.
Atas ialah kandungan terperinci Mengapa Python 2.x Melemparkan 'SyntaxError: Tanda kurung yang hilang dalam panggilan untuk 'mencetak'' Apabila Menggunakan Hujah Kata Kunci 'tamat'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!