Hướng dẫn what is a domain error in python? - lỗi miền trong python là gì?
Tôi chỉ đang thử nghiệm một ví dụ từ các phương pháp số trong kỹ thuật với Python. Show
Khi tôi chạy nó, nó hiển thị lỗi sau:
Tôi đã thu hẹp nó xuống nhật ký như khi tôi xóa nhật ký và thêm một chức năng khác, nó hoạt động. Tôi cho rằng đó là do một số loại can thiệp vào cơ sở, tôi không thể tìm ra cách. Bất cứ ai có thể đề xuất một giải pháp? Bạn có thể gặp phải một ValueError: math domain error0 đặc biệt khi làm việc với mô -đun Python từ ValueError: math domain error1. ValueError: math domain error Python nêu ra lỗi này khi bạn cố gắng làm điều gì đó không thể toán học hoặc được định nghĩa về mặt toán học. Để hiểu lỗi này, hãy xem định nghĩa của miền:domain: Phần mềm của một hàm là tập hợp các giá trị có thể có của biến độc lập. Nói một cách đại khái, miền là tập hợp tất cả các giá trị x (đầu vào) có thể dẫn đến giá trị y hợp lệ (đầu ra). (nguồn)domain of a function is the complete set of possible values of the independent variable. Roughly speaking, the domain is the set of all possible (input) x-values which result in a valid (output) y-value.” (source) 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: math domain error2, bạn đã chuyển một đầu vào không xác định vào hàm ValueError: math domain error1. Khắc phục lỗi bằng cách chuyển một đầu vào hợp lệ mà hàm có thể tính toán đầu ra số. Đây là vài ví dụ: Lỗi miền toán học xuất hiện nếu bạn chuyển một đối số tiêu cực vào hàm ValueError: math domain error4. 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. Python không nhận được điều đó và ném một ValueError: math domain error2. Ở đây, một ví dụ tối thiểu: from math import sqrt print(sqrt(-1)) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 2, in Bạn có thể sửa lỗi miền Math bằng cách sử dụng gói ValueError: math domain error6 cho phép tạo các số phức: from cmath import sqrt print(sqrt(-1)) # 1j Nhật ký lỗi miền toán học PythonValueError: math domain error7 cho hàm ValueError: math domain error8 xuất hiện nếu bạn chuyển giá trị bằng không vào nó, logarit không được xác định cho giá trị 0. Ở đây, mã trên giá trị đầu vào bên ngoài miền của hàm logarit: from math import log print(log(0)) Đầu ra là lỗi miền toán học: Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 3, in Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm ValueError: math domain error8: from math import log print(log(0.000001)) # -13.815510557964274 Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun from math import sqrt print(sqrt(-1)) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 2, in0 với độ chính xác cao hơn hoặc chuyển một đối số đầu vào rất nhỏ, chẳng hạn như: math.log(sys.float_info.min) ACOS Lỗi miền Math PythonValueError: math domain error7 cho hàm from math import sqrt print(sqrt(-1)) ''' Traceback (most recent call last): File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 2, in2 xuất hiện nếu bạn chuyển một giá trị vào nó mà nó không được xác định là các arccos chỉ được xác định cho các giá trị giữa -1 và 1. Đây là mã sai: import math print(math.acos(2)) Đầu ra là lỗi miền toán học: 0Bạn có thể sửa lỗi này bằng cách chuyển giá trị đầu vào hợp lệ vào hàm ValueError: math domain error8: 1Lỗi này đôi khi có thể xuất hiện nếu bạn chuyển một số rất nhỏ vào nó, kiểu nổi của Py Python không thể diễn đạt tất cả các số. Để vượt qua một giá trị gần với 0, hãy sử dụng mô -đun from math import sqrt
print(sqrt(-1))
'''
Traceback (most recent call last):
File "C:\Users\xcent\Desktop\Finxter\Blog\code.py", line 2, in |