Apa kecuali valueerror di python?

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.0

Anda 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

>>> int(float('0.1'))
0

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)
5

Membongkar 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
0

Bagaimana 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
_1

Ini 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
_2

Dengan 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

Apa fungsi Kecuali di Python?

kecuali digunakan untuk menangkap dan menangani pengecualian yang ditemui dalam klausa try . else memungkinkan Anda membuat kode bagian yang harus dijalankan hanya jika tidak ada pengecualian yang ditemukan dalam klausa try.

Apa itu kecuali blok Python?

Blok kecuali memungkinkan Anda menangani kesalahan . Blok else memungkinkan Anda mengeksekusi kode saat tidak ada kesalahan. Blok akhirnya memungkinkan Anda mengeksekusi kode, terlepas dari hasil blok coba-dan kecuali.

Apa perbedaan antara TypeError dan ValueError di Python?

Melewati argumen dengan tipe yang salah (mis. g. meneruskan daftar saat int diharapkan) akan menghasilkan TypeError , tetapi meneruskan argumen dengan nilai yang salah (e. g. angka di luar batas yang diharapkan) harus menghasilkan ValueError

Bagaimana cara memeriksa ValueError dengan Python?

Blok coba-kecuali dapat digunakan dalam program Python untuk memperbaiki ValueError. Blok try harus berisi baris kode yang dapat menampilkan ValueError, dan blok exception harus memiliki kode untuk menangkap dan menangani masalah. Blok coba-kecuali digunakan dalam kasus ini untuk memeriksa ValueError.