Hướng dẫn what is value error in python? - lỗi giá trị trong python là gì?

Tổng quan

ValueError Trong Python được nâng lên khi người dùng đưa ra giá trị không hợp lệ cho một hàm nhưng là một đối số hợp lệ. Nó thường xảy ra trong các hoạt động toán học sẽ yêu cầu một loại giá trị nhất định, ngay cả khi giá trị là đối số chính xác. in Python is raised when a user gives an invalid value to a function but is of a valid argument. It usually occurs in mathematical operations that will require a certain kind of value, even when the value is the correct argument.

Hãy tưởng tượng nói với Python để lấy căn bậc hai của một số nguyên âm. Bây giờ, mặc dù số nguyên âm là một đối số số, giá trị chỉ không hợp lệ và Python sẽ trả về thông báo lỗi giá trị.

Cách xác định ValueError: math domain error 0

Hãy để viết một mã đơn giản sẽ trả về

ValueError: math domain error
0.

Mã số

import math
print(math.sqrt(-1)

Đầu ra

ValueError: math domain error

Như đã thấy từ đầu ra của mã của chúng tôi ở trên, có một ValueError phát sinh từ một đầu vào không hợp lệ trong mã. Điều này là như vậy bởi vì, về mặt toán học, không có gì giống như căn bậc hai của một số nguyên âm (-0).

Cách xử lý ValueError

Chúng tôi sử dụng khối

ValueError: math domain error
4 và
ValueError: math domain error
5 để xử lý hoặc kiểm tra các lỗi phát sinh từ đầu ra không hợp lệ.

Mã số

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')

Đầu ra

You can not get take the square root of a negative number

Như đã thấy từ đầu ra của mã của chúng tôi ở trên, có một ValueError phát sinh từ một đầu vào không hợp lệ trong mã. Điều này là như vậy bởi vì, về mặt toán học, không có gì giống như căn bậc hai của một số nguyên âm (-0).

Cách xử lý ValueError

Chúng tôi sử dụng khối

ValueError: math domain error
4 và
ValueError: math domain error
5 để xử lý hoặc kiểm tra các lỗi phát sinh từ đầu ra không hợp lệ.

Người đóng góp

Hướng dẫn what is value error in python? - lỗi giá trị trong python là gì?
Onyejiaku Theophilus Chidalu

1. Python valueError là gì?

Python valueError được nêu ra khi một hàm nhận được một đối số thuộc loại chính xác nhưng giá trị không phù hợp. Ngoài ra, tình hình không nên được mô tả bởi một ngoại lệ chính xác hơn như IndexError.

2. ValueError Ví dụ

Bạn sẽ nhận được valueError với các hoạt động toán học, chẳng hạn như căn bậc hai của một số âm.

>>> import math
>>> 
>>> math.sqrt(-10)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: math domain error
>>> 

3. Xử lý ngoại lệ giá trị

Dưới đây là một ví dụ đơn giản để xử lý ngoại lệ giá trị sử dụng khối Try-Except.

import math

x = int(input('Please enter a positive number:\n'))

try:
    print(f'Square Root of {x} is {math.sqrt(x)}')
except ValueError as ve:
    print(f'You entered {x}, which is not a positive number.')

Dưới đây là đầu ra của chương trình với các loại đầu vào khác nhau.

Please enter a positive number:
16
Square Root of 16 is 4.0

Please enter a positive number:
-10
You entered -10, which is not a positive number.

Please enter a positive number:
abc
Traceback (most recent call last):
  File "/Users/pankaj/Documents/PycharmProjects/hello-world/journaldev/errors/valueerror_examples.py", line 11, in <module>
    x = int(input('Please enter a positive number:\n'))
ValueError: invalid literal for int() with base 10: 'abc'

Chương trình của chúng tôi có thể tăng giá trịerror trong các hàm int () và math.sqrt (). Vì vậy, chúng ta có thể tạo một khối Except thử lồng nhau để xử lý cả hai. Dưới đây là đoạn trích cập nhật để chăm sóc tất cả các kịch bản giá trị.

import math

try:
    x = int(input('Please enter a positive number:\n'))
    try:
        print(f'Square Root of {x} is {math.sqrt(x)}')
    except ValueError as ve:
        print(f'You entered {x}, which is not a positive number.')
except ValueError as ve:
    print('You are supposed to enter positive number.')

4. Nâng cao giá trịerror trong một hàm

Dưới đây là một ví dụ đơn giản trong đó chúng tôi đang nâng cao giá trị cho đối số đầu vào của loại chính xác nhưng giá trị không phù hợp.

import math


def num_stats(x):
    if x is not int:
        raise TypeError('Work with Numbers Only')
    if x < 0:
        raise ValueError('Work with Positive Numbers Only')

    print(f'{x} square is {x * x}')
    print(f'{x} square root is {math.sqrt(x)}')

5. Tài liệu tham khảo

  • Xử lý ngoại lệ Python
  • ValueError Python Docs

ValueErrors trong Python

Trong Python, một giá trị là thông tin được lưu trữ trong một đối tượng nhất định. Để gặp phải một giá trịerror trong Python có nghĩa là đó là một vấn đề với nội dung của đối tượng bạn đã cố gắng gán giá trị cho.

Điều này không bị nhầm lẫn với các loại trong Python. Chẳng hạn, hãy tưởng tượng bạn có một con chó và bạn cố gắng đặt nó vào bể cá. Đây sẽ là một ví dụ về một loại lỗi loại, bởi vì động vật thuộc loại ‘chó chắc chắn không giống như động vật thuộc loại‘ cá.

Mặt khác, hãy tưởng tượng chúng tôi đã cố gắng đặt một chiếc Dane tuyệt vời vào một chiếc cũi Chihuahua. Đây sẽ là một vấn đề với giá trị của con chó, bởi vì mặc dù cả hai đều thuộc loại ‘con chó, nhưng một chiếc cũi Chihuahua, sẽ không thể chấp nhận một con chó có kích thước của một chiếc Dane lớn.

Để xem điều này rõ ràng hơn trong Python, lưu ý các ví dụ sau:

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
2 Hình 1: Chuyển đổi INT hợp lệ

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
3 5.6754 là dữ liệu số, Python có thể chuyển đổi nó thành một số nguyên. Tuy nhiên, những điều sau đây sẽ không hoạt động tốt như vậy:

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
4 Hình 2: Chuyển đổi INT không hợp lệ

Trong Pylearn, chúng ta sẽ thấy thông báo sau:

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
5 Hình 3: cùng một thông điệp, kiểu Pylearn

Bất cứ khi nào bạn muốn chuyển đổi loại đối tượng, bạn cần đảm bảo rằng giá trị được liên kết với đối tượng đó là một giá trị hợp lệ.

Các giá trị khác trong Python

Bạn cũng có thể kích hoạt một giá trịerRor trong Python khi bạn cố gắng thực hiện một thao tác trên một giá trị không tồn tại. Ví dụ, hãy tưởng tượng ví dụ sau:

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
6

Trong ví dụ này, chúng tôi xác định một biến ‘myvar, để có giá trị 5. Sau đó, chúng tôi cố gắng xóa giá trị này khỏi danh sách không chứa giá trị đó. Vì 5 không có trong danh sách, chúng tôi không thể xóa nó và Python trả về lỗi giá trị.

Ngoài ra, bạn cũng có thể tăng giá trịerRor trong Python nếu bạn cố gắng giải nén nhiều giá trị hơn bạn có. Ví dụ:

import math
try:
    print(math.sqrt(-1))
except ValueError:
    print('You can not get take the square root of a negative number ')
7

Điều này trả về một lỗi giá trị, bởi vì có quá ít giá trị ở phía bên phải để Python 'giải nén.' Khi Python cố gắng gán 'd' cho một giá trị ở phía bên phải, nó không thể tìm thấy bất kỳ sự phù hợp nào Giá trị thành 'Giải nén', và do đó ném một giá trịerror.

Lỗi giá trị trong lập trình là gì?

ValueError trong Python được nâng lên khi người dùng đưa ra một giá trị không hợp lệ cho một hàm nhưng là một đối số hợp lệ. Nó thường xảy ra trong các hoạt động toán học sẽ yêu cầu một loại giá trị nhất định, ngay cả khi giá trị là đối số chính xác. Hãy tưởng tượng nói với Python để lấy căn bậc hai của một số nguyên âm.raised when a user gives an invalid value to a function but is of a valid argument. It usually occurs in mathematical operations that will require a certain kind of value, even when the value is the correct argument. Imagine telling Python to take the square root of a negative integer.

3 lỗi trong Python là gì?

Trong Python có ba loại lỗi; Lỗi cú pháp, lỗi logic và ngoại lệ.syntax errors, logic errors and exceptions.

Lỗi giá trị trong gấu trúc là gì?

Một trong những lỗi được báo cáo phổ biến nhất trong gấu trúc là valueError: giá trị sự thật của một loạt là mơ hồ.Sử dụng a.empty, a.bool (), a.Item (), a.any () hoặc a.all () và đôi khi có thể khá khó khăn để đối phó, đặc biệt là nếu bạn mới sử dụng thư viện Pandas (hoặc thậm chíPython).The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all() and it may sometimes be quite tricky to deal with, especially if you are new to pandas library (or even Python).

Sự khác biệt giữa loại và lỗi giá trị là gì?

Truyền các đối số của loại sai (ví dụ: vượt qua danh sách khi INT được mong đợi) sẽ dẫn đến một kiểu mẫu, nhưng việc truyền đối số có giá trị sai (ví dụ: một số bên ngoài ranh giới dự kiến) sẽ dẫn đến một giá trị.