Python

Tutorial Python Traceback

Tutorial Python Traceback
Setelah pengecualian dibuat semasa melaksanakan kod, Python memaparkan traceback. Jejak sepertinya laporan dalam Python yang merangkumi panggilan fungsi yang dibuat di tempat tertentu dalam kod, i.e., setelah anda melakukan kesalahan, disarankan agar kami membuangnya ke belakang (traceback). Jejak balik dapat memberikan perincian mengenai apa yang turun dengan kod tersebut sekiranya kod tersebut menerima ralat. Jejak seperti itu mungkin kelihatan sedikit meletihkan, tetapi ia sangat berguna sehingga anda melucutkannya dan melihat apa yang cuba diajarkan kepada anda. Terdapat banyak data dalam penelusuran jejak Python yang akan membantu anda menganalisis dan membetulkan punca masalah tersebut dihasilkan dalam kod anda.

Tafsirkan Traceback:

Melihat beberapa jejak dapat memberikan tafsiran yang lebih baik mengenai pengetahuan yang mereka berikan untuk membolehkan anda memperoleh sesuatu daripadanya. Mari kita lihat tafsiran bagaimana pengecualian asas dapat dikesan. Berikut adalah contoh kod mudah yang menghasilkan kesalahan penelusuran dalam pelaksanaan Spyder (Python 3).

Di bawah ini adalah gambar jejak kesalahan. Baris pertama menunjukkan lokasi fail. Berikut adalah beberapa spesifikasi untuk semua garis menggunakan warna.

Putih: Traceback (panggilan terakhir terakhir) adalah pernyataan traceback. Sebaliknya, bahagian putih baris terakhir menunjukkan maklumat kesalahan yang berkaitan.

Hijau: Kesalahan memberitahu nama fail dan lokasi.

Biru: Menunjukkan nombor baris fail di mana kesalahan berlaku.

Kuning: Ia memaparkan garis sebenar di mana pengecualian muncul.

Merah: Jenis Ralat.

Berikut adalah beberapa kesalahan penting dalam penelusuran semula:

Kesalahan Nama
Kesalahan Indeks
Kesalahan Utama
Taip Kesalahan
nilaiError
ImportError / ModuleNotFound

Ralat Nama:
Setiap kali anda mahu mentafsirkan pemboleh ubah yang belum dinyatakan dalam kod, NameError akan muncul. Berikut adalah contoh mudah bagi penelusuran semula NameError. Kami mempunyai pemboleh ubah 'nombor' ditakrifkan dengan beberapa nilai, semasa di mencetak penyataan, kami telah mencetak 'kebas', yang tidak ditentukan di mana-mana kod. Mari jalankan kod ini dan periksa apa yang berlaku.

Anda dapat melihat jejak NameError telah berlaku kerana kami belum menentukan pemboleh ubah 'numb', jadi bagaimana ia dapat dicetak. Itulah sebabnya mengapa program ini menunjukkan NameError dan menghuraikannya dengan maklumat tambahan pada baris terakhir dengan teks putih dan merah. Teks kuning menunjukkan kod yang tepat di mana ralat berlaku.

Ralat Indeks:

IndexError dihasilkan apabila siri yang berada di luar jangkauan ditentukan dalam kod. Kami telah menentukan a senarai dinamakan 'baru' mempunyai 5 indeks dengan beberapa nilai di dalamnya. Selepas itu, kita harus menyatakan perintah cetak untuk mengeluarkan nilai pada indeks nombor 9.

Apabila kita melaksanakan kod ini, ia akan menghasilkan IndexError yang menentukan indeks di luar jangkauan. Oleh kerana kami telah menentukan senarai 5 indeks, oleh itu nombor indeks bercetak, yang mana 9 tidak dapat diakses kerana tidak ada dalam julat kami.

Ralat Utama:

Python menghasilkan ralat utama semasa anda cuba mencapai kunci iaitu tidak ditakrifkan atau dipetakan, terutamanya dari a kamus. Ia lebih seperti IndexError. Oleh itu, mari kita lihat contoh ringkas kamus bernama 'rawak' dengan dua kunci yang ditentukan di dalamnya dengan beberapa nilai yang diberikan kepada kunci ini. Pada baris seterusnya, kami telah mencetak kunci bernama 'A' dalam pernyataan cetak.

Oh! Kami mendapat Traceback KeyError. Ini disebabkan oleh kunci yang salah yang disediakan dalam pernyataan cetak, yang tidak ditentukan dalam kamus. Seseorang boleh melakukan kesalahan dengan memberikan kunci huruf besar sementara kamus mempunyai kunci huruf kecil yang ditentukan di dalamnya.

Ralat Jenis:

TypeError didefinisikan sebagai pengecualian yang berlaku apabila beberapa operasi atau kaedah telah dilancarkan ke jenis yang tidak sesuai entiti atau pemboleh ubah. Kami mempunyai contoh pemboleh ubah sederhana yang mengambil dua nilai sementara rentetan ini menambahkan kedua-dua nilai. Nilai pertama adalah jenis rentetan, dan yang lain adalah jenis integer. Pernyataan cetak mencetak hasil penambahan.

Apabila kod ini dilakukan, ia menimbulkan pengecualian. Pengecualian ini adalah mengenai jenis objek yang salah yang digabungkan. Ini menjelaskan bahawa anda tidak boleh menambahkan pemboleh ubah jenis rentetan dengan pemboleh ubah jenis integer.

Ralat Nilai:

Kesalahan Nilai ditakrifkan sebagai pengecualian yang hanya berlaku apabila beberapa kaedah terbina dalam mengambil hujah jenis betul tetapi nilai yang salah di dalamnya. Mari kita lihat sedikit contoh. Kami menggunakan kaedah terbina dalam int () dengan beberapa nilai rentetan dalam pernyataan cetak.

Apabila anda menjalankan kod satu baris ini, ia akan menghasilkan ValueError kerana kita menggunakan fungsi jenis bilangan bulat sambil memberikannya nilai string yang akan dijalankan. Itulah sebabnya ia akan menunjukkan bahawa fungsi int () mempunyai nilai yang tidak sah di dalamnya.

Sebaliknya, jika anda memberikannya nilai pecahan, ia akan mengubahnya menjadi nilai integer.

Kod ini mengeluarkan 11 kerana hanya mengambil bahagian integer sementara bahagian perpuluhan diabaikan sepenuhnya.

Ralat Import / Modul Tidak Ditemui:

Kadang-kadang anda mesti mengimport beberapa pakej atau modul dalam kod python anda untuk menggunakan fungsi khas melaluinya. Anda akan menemui jejak ImportError apabila agak salah mengenai pernyataan Import dalam kod. Kesalahan penjejakan ini berlaku semasa anda berada tidak dapat ke cari modul khusus atau sesuatu dari dalam pakej. Di sini kita telah mengimport dua modul, 'pip' dan 'java', dalam kod kami.

Semasa melaksanakan kod ini akan memberikan jejak ModuleNotFoundError. Ini kerana modul yang diimport 'java' tidak disokong oleh python library. Sebaliknya, ia tidak memberikan pengecualian semasa mengimport modul 'pip' kerana ia adalah modul yang disokong oleh Python.

Kesimpulan:

Jejak Python memberikan pengetahuan yang sangat baik yang akan membantu anda mengetahui apa yang tidak betul dalam kod tersebut. Sama ada anda melakukan ini untuk pertama kalinya atau tidak memahami apa yang dilakukannya, penjanaan traceback sedikit menakutkan. Untuk menjadi pengaturcara Python yang lebih kuat, penting untuk mengetahui butiran apa yang diberikan oleh jejak Python.

Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...
Aplikasi Pemetaan Gamepad Terbaik untuk Linux
Sekiranya anda suka bermain permainan di Linux dengan gamepad dan bukannya sistem input papan kekunci dan tetikus biasa, ada beberapa aplikasi berguna...
Alat Berguna untuk Pemain Linux
Sekiranya anda suka bermain permainan di Linux, kemungkinan anda telah menggunakan aplikasi dan utiliti seperti Wine, Lutris dan OBS Studio untuk meni...