Cara mengembalikan kesalahan nilai dengan python

Salah satu bagian tersulit dalam mendesain dan menulis kode adalah penanganan pengecualian. Penanganan pengecualian yang buruk menyebabkan sejumlah masalah, termasuk

  • Kode yang dirancang dengan buruk yang menantang untuk diuji, dipahami, dan diperbaiki
  • Sulit untuk mengidentifikasi penyebab utama kesalahan
  • Pencatatan yang tidak memadai
  • Pemantauan dan pemahaman yang buruk

Masalah ini tidak hanya mempersulit restrukturisasi dan penambahan fitur baru ke kode, tetapi juga mempersulit pengelolaan aplikasi dalam pengaturan dunia nyata. Salah satu pengecualian tersebut adalah ValueError dan kami akan membahas di artikel ini apa itu ValueError dan bagaimana cara memperbaikinya. Mari kita membahas segala sesuatu tentang ValueError dengan Python

Apa itu ValueError di Python?

Pengecualian disebut terjadi selama eksekusi skrip apa pun. Dalam Python, penanganan eksepsi dilakukan dengan blok try-exception. Python memiliki sejumlah besar pengecualian bawaan untuk menangani masalah tipikal, seperti IndexError, KeyError, NameError, TypeError, ValueError, dll. ValueError Python terjadi ketika suatu fungsi dipanggil dengan tipe argumen yang tepat tetapi dengan nilai yang salah. Jenis kesalahan ini sering terjadi selama perhitungan matematis, ketika Python ValueError muncul. Kami akan membahas proses untuk menanganinya dengan Python

Saat pengguna memanggil fungsi dengan nilai tidak valid tetapi argumen valid, Python memunculkan ValueError. Meskipun nilainya adalah argumen yang benar, biasanya terjadi dalam proses matematika yang memerlukan jenis nilai tertentu. Ketika sebuah objek diberi nilai yang salah, Python ValueError dimunculkan. Ini dapat terjadi jika nilainya salah untuk operasi yang dimaksud atau jika nilainya hilang sama sekali. ValueError dimunculkan, misalnya, jika bilangan bulat negatif diberikan ke operasi akar kuadrat

Contoh ValueError 1

Kode

a=10 
b=int('valueerror') 
print(b) 

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Penjelasan

Output yang ditampilkan setelah menjalankan skrip tersebut adalah sebagai berikut. Output menunjukkan bahwa ValueError terjadi pada baris 2, di mana string "valueerror" dikonversi menggunakan fungsi int()

Contoh ValueError 2

Berikut adalah ilustrasi dari Python ValueError yang terjadi saat mencoba mengkuadratkan akar bilangan negatif

Kode

import math 
a=-10 
print(math.sqrt(a)) 
_

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Penjelasan

Matematika. fungsi sqrt() diberikan bilangan bulat negatif pada contoh di atas. Menjalankan kode yang disebutkan di atas menghasilkan ValueError karena fungsi mengharapkan angka positif

Sebelum beralih ke topik cara memperbaikinya, mari kita lihat satu topik menarik di ValueError

ValueError - Membongkar

Mengambil nilai dari daftar dan menugaskannya ke daftar variabel disebut sebagai membongkar. Ketika jumlah variabel dan nilai tidak cocok, kesalahan ini terjadi. Ketidaksetaraan mencegah Python mengetahui nilai mana yang harus ditetapkan ke variabel mana. Ini menghasilkan ValueError. terlalu banyak nilai untuk membongkar masalah

Sekarang mari kita bahas dua masalah pengecualian yang disebutkan di atas dan bagaimana menyelesaikannya

Masalah pertama. Terjadi saat membongkar daftar

Bayangkan Anda memiliki daftar buah-buahan dan Anda ingin memberikan beberapa variabel nilai dari daftar tersebut

Prosedur ini dapat ditiru di bawah ini

>>fruits = ['Apple', 'Mango', 'orange'] 
>>fruits_1, fruits_2 = fruits 

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Karena ada tiga nilai dalam daftar tetapi kami hanya menetapkannya ke dua variabel, kami menerima traceback ini

Oleh karena itu Python tidak dapat menentukan buah mana yang kita sukai - Apel, Mangga, atau Jeruk. Kami dapat menyelesaikan ini dengan cepat

>>fruits = ['Apple', 'Mango', 'Orange'] 
>>fruits_1, fruits_2,fruits_3 = fruits

fruit_3 membuat bagian kode ini berfungsi dengan baik karena kita sekarang memiliki jumlah variabel dan nilai daftar yang sama

Apel, Mangga, dan Oranye sekarang masing-masing ditetapkan ke buah_1, buah_2, dan buah_3, melalui komunikasi perubahan ini ke Python

Masalah Kedua. Membongkar saat pernyataan pengembalian digunakan dalam suatu fungsi. Pertimbangkan bahwa kami ingin membuat fungsi yang menghitung nilai variabel - variabel 1 dan variabel 2, lalu mengembalikan hasilnya untuk digunakan di tempat lain dalam program kami

Berikut adalah fungsi yang secara khusus memberi kita jumlah, dan selisih dua variabel

Kode

def computes(x, y): 
     sum = x + y 
     diff= x - y 
     mul=x*y 
     return sum, diff, mul 

result_1, result_2,result_3 = computes(7, 5) 
_

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Fungsi mengembalikan tiga variabel, tetapi kami hanya meminta dua, maka kesalahan ini terjadi

Python tidak tahu dua variabel mana yang kita cari, oleh karena itu kesalahan nilai memberi tahu kita bahwa kita telah membuat kesalahan daripada menganggap dan memberi kita hanya dua nilai (yang dapat merusak program kita nanti jika itu adalah nilai yang salah

Anda memiliki beberapa pilihan tentang cara menangkap keluaran fungsi secara efektif. Perbaikan di bawah ini mencakup metode untuk menghindari masalah ini

def computes(x, y): 
     sum = x + y 
     diff= x - y 
     mul=x*y 
     return sum, diff,mul 
result_1, result_2,result_3 = computes(7, 5) 
print(f"Option 1: sum={result_1}, diff={result_2}, mul={result_3}")

Program sekarang dapat berjalan tanpa kesalahan karena Python sekarang dapat secara langsung menautkan pengembalian jumlah, produk, dan perbedaan masing-masing ke hasil 1, hasil 2, dan hasil 3

Opsi lain untuk peningkatan program di atas juga dapat menyertakan hanya garis bawah alih-alih result_3 dan mengembalikan output dengan variabel apa pun yang ditetapkan

Dalam output, saat mencetak Anda juga dapat menggunakan hasil saja alih-alih mendeklarasikan result_1, result_2, dan result_3 secara terpisah dan mengekstrak hasilnya seperti Anda akan mendapatkan elemen dalam array

Penggunaan pengecualian ValueError yang paling umum

Contoh 1. Tangani ValueError untuk data yang salah

Skrip di bawah harus ditempatkan dalam file Python untuk mengumpulkan nilai usia pengguna. Blok coba akan membuang pengecualian ValueError dan menampilkan pesan kesalahan khusus jika pengguna memasukkan nilai non-numerik untuk bidang usia. Jika usia pengguna yang sebenarnya diperoleh, pesan akan dicetak menggunakan nilai usia tersebut

Kode

try:
     age = int(input("Enter your age: ")) 

     if age >= 18 : 
         print("You are eligible to vote.") 
    else: 
        print("You are not eligible to vote.") 

except ValueError: 
            print("Only alphabetics are acceptable. Please type your number as numeric characters") 
_

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Karena masalah di atas adalah program dasar bagi pengguna untuk memeriksa apakah dia memenuhi syarat untuk memilih atau tidak. Jadi ada kemungkinan bagi pengguna untuk mengetikkan nilai non-numerik seperti yang Anda lihat pada tangkapan layar di atas

Contoh-2. Penggunaan ValueError Python di dalam dan di luar fungsi

Program Python berikut akan mendemonstrasikan bagaimana ValueError digunakan baik di dalam maupun di luar fungsi. Di sini, telah didefinisikan untuk menggunakan fungsi sign() untuk menentukan apakah bilangan bulat positif atau negatif. Ketika nilai argumen yang tidak valid diberikan ke proses, fungsi akan menampilkan ValueError. ValueError yang disediakan oleh fungsi akan ditangkap oleh blok try-exception, yang kemudian akan memberikan pesan kesalahan

Kode

def sign(n): 
  try:
        value = int(n) 
#Checking the number is positive or negative 
if value> 0: 
     print("The number is positive") 
else: 
     print("The number is negative") 
except ValueError: 

      print("Error occurred inside the function: ", "Please Correct") raise 
try: 
      #Take the input from the user 
      number = input("Enter a number a value: ") 
      #Calling the function 
      sign(number) 
except ValueError: 
     print("Error occurred outside the function: ", "Please correct") 

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Soal di atas menjelaskan apakah nilai yang dimasukkan oleh pengguna adalah bilangan positif atau negatif. Jika ada input selain angka, itu akan menampilkan pengecualian di dalam dan di luar fungsi

Kegunaan lain dari ValueError

Contoh 1. File membaca IO

Skrip Python berikut akan membuka file untuk membaca dan mencetak konten file. Buat file Python. IOError akan ditampilkan jika nama file yang digunakan dalam skrip tidak dapat dijangkau, dan ValueError akan dihasilkan jika file menyertakan karakter alfabet apa pun

Contoh 2. Argumen baris perintah

Skrip Python berikut akan mengambil angka dari nilai argumen baris perintah. Jika nilai numerik diberikan dalam argumen baris perintah, pesan khusus akan ditulis;

Bagaimana ValueError Python diperbaiki

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

Kode

import math 

try: 
     math.sqrt(-10) 
except ValueError: 
      print('Positive number is required for square root operation. So please change the number') 
_

Keluaran

Cara mengembalikan kesalahan nilai dengan python

Blok coba-kecuali digunakan dalam kasus ini untuk memeriksa ValueError. Blok exception dalam kode di atas mendeteksi ValueError dan menanganinya, menghasilkan keluaran yang ditunjukkan di atas

Kesimpulan

Pengembang perangkat lunak selalu menangani pengecualian apa pun yang terjadi dalam suatu program. Untuk menjadi pengembang yang sukses, selalu penting untuk menjadi penguji, debugger, dan kompiler yang baik. Jadi kita telah melihat apa itu ValueError di Python dan bagaimana cara memperbaikinya menggunakan try dan exception

Nilai dalam Python adalah data yang disimpan di dalam item tertentu. ValueError dalam Python menunjukkan bahwa ada masalah dengan program yang Anda coba tetapkan insentifnya. Ini jangan disamakan dengan tipe Python. Oleh karena itu, ketika argumen yang tepat dan valid diterima, Python ValueError terjadi; . Selain itu, situasinya tidak boleh dijelaskan dengan pengecualian yang lebih tepat, seperti IndexError

Bagaimana Anda mengembalikan pengecualian kesalahan nilai dengan Python?

Untuk mengatasi ValueError dalam kode Python, blok coba-kecuali dapat digunakan . Baris kode yang dapat membuang ValueError harus ditempatkan di blok try, dan blok exception dapat menangkap dan menangani kesalahan.

Bagaimana Anda menunjukkan kesalahan nilai dengan Python?

Berikut adalah contoh sederhana untuk menangani pengecualian ValueError menggunakan blok coba-kecuali . import matematika x = int(input('Masukkan angka positif. \n')) coba. print(Akar Kuadrat dari {x} adalah {math. sqrt(x)}') kecuali ValueError sebagai ve. print(f'Anda memasukkan {x}, yang bukan bilangan positif.