Mengapa Python 2.x Melemparkan 'SyntaxError: Tanda kurung yang hilang dalam panggilan untuk 'mencetak'' Apabila Menggunakan Hujah Kata Kunci 'tamat'?

Mary-Kate Olsen
Lepaskan: 2024-11-10 00:23:02
asal
485 orang telah melayarinya

Why Does Python 2.x Throw a

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=' ')
Salin selepas log masuk

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) ...",
    Salin selepas log masuk
  • 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) ... ")
    Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan