


Bagaimana menyelesaikan ralat nameerror apabila mencetak corak jam di Python?
Python Beginner Encounters NameError
When Printing Hourglass Corak: Analisis Masalah dan Penambahbaikan Kod
Artikel ini menyediakan penyelesaian terperinci kepada NameError: name 'sym' is not defined
ralat yang ditemui oleh pemula Python apabila corak corak jam. Kod asal berhasrat untuk menggunakan fungsi print_hourglass
untuk mencetak corak jamglass yang terdiri daripada aksara yang ditentukan pengguna, tetapi ralat disebabkan oleh pemprosesan input yang tidak wajar.
Akar masalah terletak pada pemprosesan input kod asal: ia cuba membaca kedua-dua nombor baris dan aksara, tetapi jika format input pengguna tidak betul (contohnya, masukkan satu nombor atau masukkan aksara bukan numerik), map(int, input().split())
fungsi menimbulkan pengecualian ValueError
. Lebih penting lagi, walaupun tidak ada ValueError
, pembolehubah sym
tidak akan ditentukan jika pengguna tidak memberikan input kedua (aksara), yang mengakibatkan NameError
.
Kod yang lebih baik menyelesaikan masalah ini dengan pemprosesan input yang lebih mantap dan definisi berubah -ubah:
def is_integer_string (s): "" "Periksa sama ada rentetan input adalah integer" "" Cuba: int (s) kembali benar Kecuali ValueError: kembali palsu def print_hourglass (n, sym): "" "Corak cetakan jam" "" " i = 1 sementara n> = i * i: cetak ('' * (i - 1) sym * (i * 2 -1)) # Formula pembetulan cetak ('' * (i - 1) sym * ((i 1) * 2 -1)) # Formula pembetulan i = 2 Semasa saya> 0: cetak ('' * (i -1) sym * (i * 2 -1)) # Ubah suai formula i -= 2 Cuba: n_str = input ("Sila masukkan bilangan baris jam (ganjil):") jika is_integer_string (n_str): n = int (n_str) jika n % 2 == 0: Cetak ("Sila masukkan nombor ganjil") lain: Sym = Input ("Sila masukkan watak yang membentuk jamglass:") cetak_hourglass (n, sim) lain: Cetak ("Input tidak sah, sila masukkan integer") Kecuali pengecualian sebagai e: cetak (f "ralat berlaku: {e}")
Penambahbaikan:
- Input yang lebih jelas : Kod menambah input arahan untuk membimbing pengguna untuk memasukkan bilangan baris dan aksara.
- Baca input secara berasingan : Kod membaca bilangan baris dan aksara secara berasingan, mengelakkan masalah yang berpotensi dengan fungsi
map
. - Pemeriksaan Integer : Fungsi
is_integer_string
memudahkan, menggunakan bloktry-except
untuk memeriksa sama ada input adalah integer lebih ringkas. - Cek Nombor Ganjil : Menambah cek pada sama ada bilangan garisan input adalah ganjil untuk memastikan paparan corak jam yang betul.
- Pengendalian ralat : Gunakan blok
try-except
untuk menangkap semua pengecualian yang mungkin dan mencetak mesej ralat mesra. - Pembetulan Formula : Formula untuk mencetak corak jam dalam kod asal mempunyai sedikit kecacatan dan telah diperbetulkan untuk membolehkannya mencetak corak jamglass dengan betul.
Dengan penambahbaikan ini, kod ini lebih mantap, dapat mengendalikan pelbagai input pengguna dengan berkesan, elakkan kesilapan NameError
, dan mencetak corak jam yang betul.
Atas ialah kandungan terperinci Bagaimana menyelesaikan ralat nameerror apabila mencetak corak jam di Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Pythonusesahybridmodelofcompilationandinterpretation: 1) thepythoninterpretercompilessourcodcecodeintoplatform-independentbytecode.2) thepythonvirtualmachine (PVM) thenexecutesthisbytecode, BalantingeaseOfusoWithperformance.

Pythonisbothinterpretedandandcompiled.1) it'scompiledtobytecodeforporabilityAcrossplatforms.2) theBytecodeistheninterpreted, membolehkanfordynamictypingandrapiddevelopment, walaupunItmayBeslowerLowerWanLelyCiledlanguages.

ForloopsareidealwhenyonesshenumberofiterationsationseSinadvance, whilewhileloopsarebetterforsituationshipheryouneedtoloopuntilaconditionismet.forloopsaremoreeficientablyandable, yang sesuai, manakala whileloopsoffermorecontrolandareusefereficeficeficeficeficient,

Forloopsareusedwhenthenumberofiterationsisknowninadvance, whilewhileloopsareusedwhenTheiterationsdependonacondition.1) forloopsareidealforiteratingoversequencesLikeListsorArrays.2)

Pythonisnotpurelyinterinterpreted; itusesahybridapproachofbytecodecompilationandruntimeinterpretation.1) pythoncompilessourcecodeintobytecode, whoomeSthenexecutedbythepythonvirtualmachine (pvm)

ToConcatenatelistsinpythonwiththesameelements, gunakan: 1) operatortokokduplicates, 2) asettoremoveduplicates, OR3) listomprehensionfensionfensionfensionfensiontroloverduplicates, setiapmethodhasdifferentperformanceAdordlications.

Pythonisaninterpretedlanguage, menawarkanfuseofuseandflexibilitybutfacingperpormancelimitationsincriticalapplications.1) interpretlanguagesepythonexecuteline-by-line, membolehkanMmediateDebackandrapidprototyping.2)

Useforloopswhenthenumberofiterationsisknowninadvance,andwhileloopswheniterationsdependonacondition.1)Forloopsareidealforsequenceslikelistsorranges.2)Whileloopssuitscenarioswheretheloopcontinuesuntilaspecificconditionismet,usefulforuserinputsoralgorit


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Dreamweaver Mac版
Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna
