Mengapa Python 2.7 membuang `NameError` apabila memasukkan rentetan tanpa petikan menggunakan `input()`?

Susan Sarandon
Lepaskan: 2024-10-28 14:47:02
asal
905 orang telah melayarinya

Why does Python 2.7 throw a `NameError` when entering strings without quotes using `input()`?

Manipulasi Input Pengguna: Mengatasi Kesengsaraan Sebutharga dalam Python 2.7

Semasa anda memulakan perjalanan anda dengan Python 2.7, anda mungkin menghadapi masalah yang pelik apabila cuba mendapatkan input pengguna yang tidak mempunyai tanda petikan yang disertakan. Ini boleh menjadi halangan yang mengecewakan, terutamanya apabila anda ingin memanipulasi rentetan yang dimasukkan sebagai rentetan Python.

Jika anda telah cuba menggunakan fungsi input() seperti berikut:

testVar = input("Ask user for something.")
Salin selepas log masuk

Anda mungkin perasan bahawa jika pengguna memasukkan "Hello" tanpa petikan, ralat berikut berlaku:

NameError: name 'Hello' is not defined
Salin selepas log masuk

Ralat yang kelihatan samar ini berpunca daripada fakta bahawa fungsi input() dalam Python 2.7 menilai pengguna's input sebagai kod Python. Akibatnya, apabila menemui rentetan tanpa melampirkan petikan, jurubahasa mentafsirkannya sebagai rujukan pembolehubah dan bukannya rentetan literal.

Untuk menyelesaikan isu ini dan memastikan input pengguna dianggap sebagai rentetan tanpa petikan, anda boleh memanfaatkan fungsi raw_input():

testVar = raw_input("Ask user for something.")
Salin selepas log masuk

Tidak seperti input(), raw_input() mengekalkan rentetan verbatim yang dimasukkan oleh pengguna, membolehkan anda memanipulasinya sebagai rentetan tanpa sebarang pertimbangan tanda petikan tambahan.

Key Takeaway:

Sentiasa memilih raw_input() berbanding input() apabila matlamat utama anda adalah untuk mendapatkan rentetan daripada pengguna tanpa memerlukan tanda petikan. Suis ringkas ini akan menghapuskan potensi rujukan pembolehubah yang salah dan memastikan manipulasi rentetan yang lancar.

Atas ialah kandungan terperinci Mengapa Python 2.7 membuang `NameError` apabila memasukkan rentetan tanpa petikan menggunakan `input()`?. 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!