|
Saat belajar Python, mungkin agak rumit untuk memahami arti pesan kesalahan Python. Berikut adalah daftar beberapa kesalahan runtime umum yang menyebabkan program Anda mogok.
1) Lupa menambahkan :( di akhir if, elif, else, for, while, class, def def def. Kesalahan akan terjadi dalam kode seperti ini: jika spam == 42 cetak("Halo!") 2) Gunakan = alih-alih == (menghasilkan "SyntaxError: sintaks tidak valid") = adalah operator penugasan dan == sama dengan operasi perbandingan.Kesalahan terjadi dalam kode seperti ini: Jika spam = 42: cetak("Halo!") 3) Penggunaan lekukan yang salah. (Menghasilkan "IndentationError:indentasi yang tidak terduga", "IndentasiError:unindent tidak cocok dengan tingkat indetasi luar apa pun", dan "IndentasiError:mengharapkan blok indentasi") Ingatlah bahwa lekukan hanya digunakan setelah pernyataan yang diakhiri dengan: setelah itu format lekukan harus dikembalikan ke format lekukan sebelumnya. Kesalahan terjadi dalam kode seperti ini: cetak("Halo!") cetak("Howdy!") Atau: Jika spam == 42: cetak("Halo!") cetak("Howdy!") Atau: Jika spam == 42: cetak("Halo!") 4) Lupa memanggil len() dalam pernyataan for loop (menghasilkan "TypeError: objek "list" tidak dapat ditafsirkan sebagai bilangan bulat") Biasanya Anda ingin mengulangi elemen daftar atau string melalui indeks, yang memerlukan pemanggilan fungsi range(). Ingatlah untuk mengembalikan nilai len alih-alih mengembalikan daftar ini. Kesalahan terjadi dalam kode seperti ini: spam = ["kucing", "anjing", "tikus"] untuk i dalam rentang (spam): cetak (spam) 5) Coba ubah nilai string (menghasilkan "TypeError: objek "str" tidak mendukung penetapan item") string adalah tipe data yang tidak dapat diubah, dan kesalahan terjadi dalam kode seperti ini: spam = "Saya punya kucing peliharaan." spam[13] = "r" cetak (spam) Dan Anda benar-benar ingin melakukan ini: spam = "Saya punya kucing peliharaan." spam = spam[:13] + "r" + spam[14:] cetak (spam) 6) Mencoba menggabungkan nilai non-string dengan string (menghasilkan "TypeError: Tidak dapat mengonversi objek "int" ke str secara implisit") Kesalahan terjadi dalam kode seperti ini: numTelur = 12 print("Saya punya " + numEggs + " telur.") Dan Anda benar-benar ingin melakukan ini: numTelur = 12 print("Saya punya " + str(numEggs) + " telur.") Atau: numTelur = 12 print("Saya memiliki %s telur." % (numEggs)) 7) Lupa meletakkan tanda kutip di awal dan akhir string (menghasilkan "SyntaxError: EOL saat memindai literal string") Kesalahan terjadi dalam kode seperti ini:
cetak (Halo!") Atau: cetak("Halo!) Atau: myName = "Al" print("Nama saya " + myName + . Apa kabar?") 8) Kesalahan ejaan nama variabel atau fungsi (mengakibatkan "NameError: nama "fooba" tidak ditentukan") Kesalahan terjadi dalam kode seperti ini: foobar = "Al" print("Nama saya " + fooba) Atau: spam = ruond(4.2) Atau: spam = Bulat(4.2) 9) Kesalahan ejaan nama metode (menghasilkan "AttributeError: objek "str" tidak memiliki atribut "lowerr"") Kesalahan terjadi dalam kode seperti ini: spam = "INI DALAM HURUF KECIL." spam = spam.lowerr() 10) Referensi melebihi indeks maksimum daftar (menghasilkan "IndexError: indeks daftar di luar jangkauan") Kesalahan terjadi dalam kode seperti ini: spam = ["kucing", "anjing", "tikus"] cetak(spam[6]) 11) Menggunakan nilai kunci kamus yang tidak ada (menghasilkan "KeyError: 'spam'") Kesalahan terjadi dalam kode seperti ini: spam = {"kucing": "Zophie", "anjing": "Kemangi", "tikus": "Kumis"} print("Nama zebra peliharaan saya adalah " + spam["zebra"]) 12) Mencoba menggunakan kata kunci Python sebagai nama variabel (menghasilkan "SyntaxError: sintaks tidak valid") Kunci Python tidak dapat digunakan sebagai nama variabel, kesalahan terjadi dalam kode seperti ini: class = "aljabar" Kata kunci Python3 adalah: dan, sebagai, menegaskan, memutuskan, kelas, melanjutkan, def, del, elif, else, kecuali, Salah, akhirnya, untuk, dari, global, jika, impor, dalam, adalah, lambda, Tidak ada, nonlokal, tidak, atau, lulus, naikkan, kembali, Benar, coba, sementara, dengan, menghasilkan
13) Menggunakan operator nilai tambah dalam variabel baru yang ditentukan (menghasilkan "NameError: nama "foobar" tidak ditentukan") Jangan gunakan string 0 atau null sebagai nilai awal saat mendeklarasikan variabel, sehingga spam kalimat += 1 menggunakan operator self-incrementing sama dengan spam = spam + 1, yang berarti spam perlu menentukan nilai awal yang valid. Kesalahan terjadi dalam kode seperti ini: spam = 0 spam += 42 telur += 42 14) Gunakan variabel lokal dalam fungsi sebelum menentukan variabel lokal (dalam hal ini, ada variabel global dengan nama yang sama dengan variabel lokal) (menghasilkan "UnboundLocalError: variabel lokal "foobar" yang direferensikan sebelum penetapan") Sangat rumit untuk menggunakan variabel lokal dalam fungsi dengan nama yang sama dengan variabel global, dan aturan penggunaannya adalah: jika ada yang didefinisikan dalam suatu fungsi, jika hanya digunakan dalam fungsi, itu adalah lokal, dan sebaliknya. Ini berarti Anda tidak dapat menggunakannya dalam fungsi sebagai variabel global sebelum mendefinisikannya. Kesalahan terjadi dalam kode seperti ini: beberapaVar = 42 def myFunction(): cetak(beberapaVar) beberapaVar = 100 Fungsiku() 15) Mencoba membuat daftar bilangan bulat dengan range() (menghasilkan "TypeError: objek "range" tidak mendukung penetapan item") Terkadang Anda ingin mendapatkan daftar bilangan bulat yang berurutan, jadi range() sepertinya cara yang baik untuk membuat daftar ini. Namun, Anda perlu ingat bahwa range() mengembalikan "objek rentang", bukan nilai daftar yang sebenarnya. Kesalahan terjadi dalam kode seperti ini: spam = rentang(10) spam[4] = -1 Mungkin inilah yang ingin Anda lakukan: spam = daftar(rentang(10)) spam[4] = -1 (Catatan: spam = range(10) berfungsi di Python 2, karena di Python 2 range() mengembalikan nilai daftar, tetapi di Python 3 kesalahan di atas dihasilkan) 16) Bagus di ++ atau -- operator self-increment. (Menghasilkan "SyntaxError: sintaks tidak valid") Jika Anda terbiasa dengan bahasa lain seperti C++, Java, PHP, dll., Anda mungkin ingin mencoba menggunakan ++ atau -- menambah dan mengurangi variabel. Tidak ada operator seperti itu di Python. Kesalahan terjadi dalam kode seperti ini: spam = 1 spam++ Mungkin itu yang ingin Anda lakukan: spam = 1 spam += 1 17) Lupa menambahkan parameter diri ke argumen pertama metode (menghasilkan "TypeError: myMethod() tidak mengambil argumen (1 diberikan)") Kesalahan terjadi dalam kode seperti ini: kelas Foo(): def myMethod(): cetak("Halo!") a = Foo() a.metode saya()
|