Saat memprogram Anda pasti mengalami kesalahan atau pengecualian saat menulis skrip Python. Nama setiap pengecualian dapat memberi tahu Anda jenis kesalahan apa yang Anda temui, dan pesannya memberikan detail lebih lanjut, inilah yang membuat proses debug jauh lebih mudah di Python. Namun, pengecualian >>> math.sqrt(100) 10.0 3 sedikit berbeda. Meskipun mengacu pada jenis kesalahan tertentu, hal itu dapat disebabkan oleh berbagai alasan. Hal ini dapat membuat sulit untuk mengidentifikasi penyebabnya
Pada artikel ini, Anda akan belajar tentang berbagai cara terjadinya ValueError, dan bagaimana Anda dapat mengatasi dan menghindarinya di masa mendatang
Apa itu pengecualian bawaan Python?
Pengecualian dalam Python terjadi selama eksekusi program saat program menemui kesalahan. Pengecualian dapat dibuat secara bawaan/default dan bahkan dapat dimunculkan dalam kode menggunakan kata kunci >>> math.sqrt(100) 10.0 4. Ada banyak pengecualian bawaan yang berbeda di Python, dan mereka memberi Anda pesan kesalahan yang berguna saat dimunculkan. Anda dapat menggunakan pesan kesalahan ini untuk memperbaiki kesalahan yang sesuai
Apa saja 3 jenis kesalahan dalam Python?
Beberapa pengecualian umum termasuk
- >>> math.sqrt(100) 10.0 5 - terjadi ketika ada sintaks yang salah dalam kode
- >>> math.sqrt(100) 10.0 6 - terjadi ketika operasi dilakukan pada jenis objek yang salah
- >>> math.sqrt(100) 10.0 7 - terjadi ketika modul yang diimpor tidak ada, atau tidak ditemukan
Apa itu kesalahan nilai python?
Negara
pengecualian ValueError. Dibesarkan ketika sebuah operasi atau fungsi menerima argumen yang memiliki tipe yang benar tetapi nilai yang tidak sesuai, dan situasinya tidak dijelaskan oleh pengecualian yang lebih tepat seperti IndexError
ValueError terjadi saat Anda memasukkan nilai yang salah ke dalam fungsi, tetapi jenis nilainya benar. Misalnya, jika suatu fungsi memerlukan nilai int, tetapi Anda memasukkan string sebagai gantinya, ini akan menyebabkan TypeError, bukan ValueError. Namun, jika Anda memasukkan nilai int negatif ke dalam fungsi yang hanya mengambil nilai int positif, ini akan meningkatkan ValueError. Tentu saja, contoh utamanya adalah saat Anda mencoba mengakarkan bilangan negatif
>>> import math >>> math.sqrt('abc') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: must be real number, not str >>> math.sqrt(-1) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: math domain error >>>Di sini, TypeError dimunculkan saat Anda memasukkan string untuk matematika. sqrt dan ValueError saat Anda memasukkan int negatif
Bagaimana Anda memperbaiki kesalahan nilai di Python?
Ada banyak penyebab ValueError yang berbeda, jadi di bagian ini, kita akan membahas penyebab umum, dan cara memperbaikinya. Perhatikan bahwa pada dasarnya pengecualian ini terjadi (seperti namanya) ketika tipe argumen dalam pemanggilan fungsi benar, tetapi secara khusus nilainya salah
matematika. sqrt() dengan Angka Negatif
Anda dapat memperbaiki ValueError yang ditemui dengan matematika. sqrt di bagian sebelumnya, cukup dengan memastikan inputnya positif
>>> math.sqrt(100) 10.0Anda juga dapat menggunakan coba/kecuali untuk menangkap pengecualian yang muncul ini dan menangani pengecualian dengan kode Anda sendiri
Menggunakan fungsi int dengan Nilai Data Tidak Valid
Seperti yang mungkin sudah Anda ketahui, fungsi >>> math.sqrt(100) 10.0 8 bawaan mengambil string, float, atau representasi angka apa pun, dan mengembalikan bilangan bulat. Namun, jika Anda memasukkan string dengan karakter non-numerik, atau representasi float yang tidak konvensional, fungsi int() dapat mengembalikan ValueError. Berikut beberapa contohnya
Karakter Non-numerik
>>> int('a') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: 'a' _Di sini kami mencoba memasukkan karakter non-numerik, yang menghasilkan kesalahan nilai. Anda dapat memperbaikinya dengan memastikan untuk memasukkan representasi string dari bilangan bulat (string yang hanya berisi angka)
>>> int('1') 1 _Mengambang
>>> int('0.1') Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '.1'Di sini, int tidak dapat mengonversi string yang mewakili pelampung dan mengembalikan ValueError. Untuk mengonversi string yang mewakili pelampung, pertama-tama gunakan fungsi float() untuk mengubah string menjadi pelampung, lalu ubah hasilnya menjadi int, karena fungsi int() menerima pelampung
String Biner
>>> int(b'102', 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 2: b'102' >>>Di sini kami memasukkan string biner yang tidak valid b'102'. Perhatikan bahwa argumen kedua di int() adalah basis angka, yang secara default adalah 10. Kami dapat memperbaiki masalah ini dengan memastikan untuk menentukan basis sebagai 2 dan memastikan string biner hanya berisi 1 dan 0
>>> int(b'101', 2) 5Membongkar Nilai dari Daftar/Tuple
Alasan umum lainnya untuk terjadinya ValueError adalah saat membongkar item dalam tupel atau daftar ke dalam variabel. Di Python, Anda dapat menyimpan setiap item dalam daftar atau tupel ke dalam variabel tertentu dengan sintaks seperti ini
>>> a, b, c = [1, 2, 3] >>> print(a, b, c)Ini bisa sangat berguna saat Anda ingin menetapkan beberapa variabel di baris yang sama, meningkatkan keterbacaan. Perhatikan bahwa jumlah variabel harus sama persis dengan jumlah item dalam daftar/tuple. Jika tidak, Anda akan menemukan ValueError. Misalnya
>>> a, b = [1, 2, 3] Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: too many values to unpack (expected 2) >>> a, b, c = [1, 2] Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: not enough values to unpack (expected 3, got 2)Satu-satunya cara untuk memperbaiki kesalahan ini adalah memastikan jumlah variabel dan item sama
Menghapus Nilai dari Daftar atau Set
Anda juga dapat menemukan ValueError saat menggunakan metode bawaan remove() pada daftar. Metode ini digunakan untuk menghapus item dengan nilai tertentu dari daftar atau set. Namun, Anda akan menemukan ValueError saat Anda mencoba menghapus item dari daftar yang tidak ada. Perhatikan, kesalahan ini hanya terjadi pada daftar, bukan kumpulan, yang akan menyebabkan >>> math.sqrt(100) 10.0 9
>>> math.sqrt(100) 10.0 0Bagaimana Anda meningkatkan pengecualian kesalahan nilai dengan Python?
Seperti pengecualian lainnya, Anda dapat menaikkan ValueError dengan Python menggunakan pesan khusus. Misalnya
>>> math.sqrt(100) 10.0 _1Ini bisa berguna dengan sendirinya ketika Anda ingin menaikkan ValueError untuk situasi di mana mungkin ada kesalahan karena nilai input. Tapi, ini sangat berguna dengan mencoba dan kecuali sintaks
Menangani ValueError menggunakan klausa coba dan kecuali
Sintaks coba dan kecuali digunakan untuk menangkap pengecualian, dan menanganinya dengan tepat
Seperti yang telah dibahas sebelumnya, Anda dapat menangani matematika. sqrt ValueError dengan angka negatif menggunakan coba dan kecuali bersamaan dengan kenaikan. Mari kita lihat bagaimana Anda bisa melakukannya dengan menggunakan contoh
>>> math.sqrt(100) 10.0 _2Dengan coba/kecuali Anda dapat menangkap ValueError, lalu menaikkan ValueError lagi dengan pesan yang lebih bermakna
Ringkasan
Dalam artikel ini, Anda mempelajari tentang ValueErrors, perbedaannya dari pengecualian bawaan lainnya, dan berbagai cara untuk menanganinya
Anda mulai dengan melihat secara singkat apa itu Pengecualian di Python dan kemudian khususnya ValueError, dan mengapa itu berbeda dari Pengecualian lainnya. Kemudian, Anda menjelajahi berbagai cara terjadinya ValueError dan cara memperbaikinya. Selanjutnya, Anda mempelajari apa itu kata kunci kenaikan di Python dan bagaimana Anda bisa menggunakannya. Terakhir, Anda melihat bagaimana Anda dapat menggunakan kenaikan gaji dengan mencoba/kecuali untuk menangani ValueErrors
Langkah selanjutnya
Jika Anda tertarik untuk mempelajari lebih lanjut tentang dasar-dasar Python, pengkodean, dan pengembangan perangkat lunak, lihat Buku Panduan Penting Coding untuk Pengembang kami, di mana kami membahas bahasa, konsep, dan alat penting yang Anda perlukan untuk menjadi pengembang profesional
Terima kasih dan selamat coding. Kami harap Anda menikmati artikel ini. Jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk menghubungi jacob@initialcommit. io