27
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Tôi phải sử dụng hàm Python math.log[x]
với các giá trị của x từ [0, ..., 1]. Đôi khi X có thể quá gần bằng không và Python cho tôi một lỗi:x from [0, ..., 1]. Sometimes x may be too close to zero, and Python gives me an error:
ValueError: lỗi miền toán học
Làm thế nào tôi có thể biết, miền định nghĩa của hàm
>>> math.log[sys.float_info.min * sys.float_info.epsilon]
-744.4400719213812
0 là gì?Hỏi ngày 30 tháng 9 năm 2013 lúc 13:41Sep 30, 2013 at 13:41
1
Miễn là đầu vào của bạn nằm trong khoảng thời gian nửa mở [0, 1] [không bao gồm 0], bạn vẫn ổn. Bạn không thể quá gần với số 0:
>>> math.log[sys.float_info.min]
-708.3964185322641
Vì vậy, chỉ cần kiểm tra chính xác bằng không [có thể là kết quả của một dòng chảy] là đủ, hoặc thay vào đó, hãy nắm bắt ngoại lệ và xử lý nó.
Chỉnh sửa: Điều này cũng giữ cho số điểm nổi tối thiểu không bình thường:: This also holds for the denormal minimum floating point number:
>>> math.log[sys.float_info.min * sys.float_info.epsilon]
-744.4400719213812
Đã trả lời ngày 30 tháng 9 năm 2013 lúc 13:51Sep 30, 2013 at 13:51
Sven Marnachsven MarnachSven Marnach
545K114 Huy hiệu vàng915 Huy hiệu bạc817 Huy hiệu đồng114 gold badges915 silver badges817 bronze badges
3
Bạn đang đi qua độ chính xác được hỗ trợ, sử dụng lớp thập phân thay thế.
>>> from math import log
>>> from decimal import Decimal
>>> d = Decimal['1E-1024']
>>> log[d]
Traceback [most recent call last]:
File "", line 1, in
ValueError: math domain error
>>> d.ln[]
Decimal['-2357.847135225902780434423250']
Đã trả lời ngày 30 tháng 9 năm 2013 lúc 13:50Sep 30, 2013 at 13:50
ismailismailismail
44,4K8 Huy hiệu vàng84 Huy hiệu bạc95 Huy hiệu Đồng8 gold badges84 silver badges95 bronze badges
Miền của hàm là tập hợp tất cả các giá trị đầu vào có thể. Nếu Python ném ValueError: Lỗi miền toán học, bạn đã chuyển một đầu vào không xác định vào hàm toán học. Trong trường hợp của chúng tôi, không tính toán nhật ký của số âm hoặc bằng không và nó sẽ giải quyết lỗi.ValueError: math domain error. Python raises this error when you try to do something that is not mathematically possible or mathematically defined.
Làm thế nào để bạn giải quyết lỗi miền?The math domain error occurs when you’ve passed an undefined input into the math function. For example, you are doing a log of a number less than or equal to zero. That’s mathematically undefined, so Python’s log function raises an exception.
from math import log print[log[-1]]
Đầu ra
Traceback [most recent call last]: File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in print[log[-1]] ValueError: math domain error
Căn bậc hai của một số âm không thể toán học. Đó là lý do tại sao nó ném một lỗi.ValueError: math domain error.
Python POW: Lỗi miền Math
Lỗi miền toán học cho hàm Math.pow [a, b] để tính toán a ** b phát sinh nếu bạn truyền giá trị cơ sở âm vào nó và cố gắng tính toán sức mạnh âm.
Và chúng tôi nhận được giá trịerror.
Miền của hàm là tập hợp tất cả các giá trị đầu vào có thể. Nếu Python ném ra giá trị horror: Lỗi miền toán học, bạn đã chuyển một đầu vào không xác định vào hàm toán học.
Trong trường hợp của chúng tôi, don lồng tính nhật ký của một số âm hoặc bằng không và nó sẽ giải quyết lỗi.
Có nhiều kịch bản khác nhau trong đó lỗi này có thể xảy ra. Hãy cùng xem một số trong số họ từng người một.
Python Sqrt: Lỗi miền toán học
Để tính toán căn bậc hai của một số trong python, hãy sử dụng phương thức math.sqrt [].
Lỗi miền toán học xuất hiện nếu bạn chuyển một đối số âm vào hàm math.sqrt [].
Về mặt toán học, không thể tính toán căn bậc hai của số âm mà không sử dụng các số phức.
from math import sqrt print[sqrt[-1]]
Đầu ra
Traceback [most recent call last]: File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in print[sqrt[-1]] ValueError: math domain error
Căn bậc hai của một số âm không thể toán học. Đó là lý do tại sao nó ném một lỗi.
Python POW: Lỗi miền Math
Lỗi miền toán học cho hàm Math.pow [a, b] để tính toán a ** b phát sinh nếu bạn truyền giá trị cơ sở âm vào nó và cố gắng tính toán sức mạnh âm.
from math import pow print[pow[-1, 0.5]]
Đầu ra
Traceback [most recent call last]: File "/Users/krunal/Desktop/code/pyt/database/app.py", line 3, in print[pow[-1, 0.5]] ValueError: math domain error
Và chúng tôi nhận được giá trịerror.
Đó là nó cho hướng dẫn này.
Xem thêm
Chỉ số chuỗi phải là số nguyên trong Python
Python mong đợi một lỗi khối thụt
Python không thể nhập tên
Trả lại chức năng bên ngoài Python
Python valueError