Hướng dẫn what is math domain error in python? - lỗi miền toán học trong python là gì?

Trong toán học, có các hoạt động không hoạt động trên các số âm hoặc số 0. Hãy xem xét căn bậc hai, ví dụ. Bạn không thể tìm thấy căn bậc hai của một số âm. Python nhận ra rằng không phải tất cả các hoạt động đều hoạt động với số âm hoặc bằng không.

Python sẽ gây ra lỗi khi bạn cố gắng sử dụng số âm trên một thao tác không hỗ trợ. Trong hướng dẫn này, chúng tôi sẽ nói về nguyên nhân của ValueError: math domain error. Đến cuối hướng dẫn, chúng tôi sẽ đi qua một giải pháp cho vấn đề này.

Hướng dẫn what is math domain error in python? - lỗi miền toán học trong python là gì?

Tìm Bootcamp của bạn phù hợp

  • Karma nghề nghiệp phù hợp với bạn với bootcamp công nghệ hàng đầu
  • Truy cập các học bổng và khóa học chuẩn bị độc quyền

Chọn mối quan tâm của bạn họ Tên điện thoại Email Tên của bạn
First name

Last name

Email

Phone number

Bằng cách tiếp tục, bạn đồng ý với các điều khoản dịch vụ và chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận được các ưu đãi và cơ hội từ Karma nghề nghiệp qua điện thoại, tin nhắn văn bản và email.

ValueError: lỗi miền toán học

Python ValueError: math domain error được nâng lên khi bạn sử dụng một số không được hỗ trợ bởi một hoạt động toán học. Lỗi này thường được nêu ra bằng phương pháp sqrt() và phương pháp

answer = math.sqrt(int(number))
0.

ValueError là một loại lỗi cho thấy bạn đang thực hiện một thao tác toán học trên một giá trị không hoạt động với thao tác đó. Trong trường hợp lỗi miền Math Math, chúng tôi đang sử dụng số âm hoặc số 0 mà chúng tôi không nên có.

Hãy cùng đi qua một ví dụ về vấn đề ValueError: math domain error trong hành động.

Một kịch bản ví dụ

Chúng tôi đang xây dựng một chương trình tính toán căn bậc hai của một số nhất định. Chương trình này được thiết kế để giúp sinh viên sửa đổi kiến ​​thức về gốc vuông.

Hãy để viết một chương trình tính toán căn bậc hai của một số nhất định. Chúng tôi sẽ bắt đầu bằng cách nhập thư viện toán học mà chúng tôi cần tính toán một căn bậc hai:

Tiếp theo, chúng tôi sẽ thu thập một số từ người dùng:

number = input("Try solving the problem first using pencil and paper. Then, insert the number whose square root you want to verify: ")

Chúng tôi nhắc người dùng thử tự tìm câu trả lời, vì chương trình của chúng tôi được thiết kế để giúp mọi người kiểm tra câu trả lời của họ. Tiếp theo, chúng tôi sẽ tìm thấy căn bậc hai của giá trị mà người dùng chèn:

answer = math.sqrt(int(number))

Chúng tôi chuyển đổi giá trị của số Số, lưu trữ số có căn bậc hai mà người dùng muốn tìm, thành một số nguyên. Điều này là cần thiết bởi vì phương pháp

answer = math.sqrt(int(number))
2, mà chúng tôi đã sử dụng để thu thập số đã nói ở trên, trả về một chuỗi. Chúng ta không thể tìm thấy căn bậc hai của một giá trị chuỗi.

Cuối cùng, hãy để in bản in câu trả lời cho bảng điều khiển:

print("The square root of {} is {}.".format(number, answer))

Chúng tôi sử dụng câu lệnh

answer = math.sqrt(int(number))
3 để thêm số vào chuỗi của chúng tôi. Chuỗi của chúng tôi sẽ hiển thị:

"The square root of [Number user inserted] is [The square root our program calculated]"

Hãy để thử nghiệm chương trình của chúng tôi với một số âm:

Try solving the problem first using pencil and paper. Then, insert the number whose square root you want to verify: -16
Traceback (most recent call last):
  File "test.py", line 5, in 
	answer = math.sqrt(int(number))
ValueError: math domain error

Chúng tôi đã chèn giá trị

answer = math.sqrt(int(number))
4 vào chương trình của chúng tôi. Mã của chúng tôi trả về một lỗi.

Hãy để sửa lỗi lỗi này.

Giải pháp

Để khắc phục lỗi này, chúng tôi cần nhắc người dùng rằng bạn không thể tính toán căn bậc hai của số âm trước khi chúng tôi thực thi hàm

answer = math.sqrt(int(number))
5.

Hãy để sửa đổi mã của chúng tôi để thực hiện điều này:

import math

number = input("Try solving the problem first using pencil and paper. Then, insert the number whose square root you want to verify: ")

if int(number) >= 0:
answer = math.sqrt(int(number))
print("The square root of {} is {}.".format(number, answer))
else:
	print("You cannot find the square root of a number less than 0.")

Chúng tôi sử dụng câu lệnh

answer = math.sqrt(int(number))
6 để kiểm tra xem số người dùng chèn vào chương trình có bằng hoặc lớn hơn không. Nếu số đáp ứng tiêu chí này, nội dung của câu lệnh
answer = math.sqrt(int(number))
6 chạy. Mặt khác, câu lệnh
answer = math.sqrt(int(number))
8 thực thi, trình bày cho chúng tôi một thông báo mà chúng tôi đã chèn một số không hợp lệ.

Hãy để chạy lại chương trình của chúng tôi. Chương trình của chúng tôi trả về:

Try solving the problem first using pencil and paper. Then, insert the number whose square root you want to verify: -16
You cannot find the square root of a number less than 0.

Mã của chúng tôi hoạt động thành công.

Sự kết luận

ValueError: math domain error được nâng lên khi bạn thực hiện hàm toán học trên số âm hoặc 0 không thể tính được. Để giải quyết lỗi này, hãy đảm bảo bạn đang sử dụng một số hợp lệ cho hàm toán học bạn đang sử dụng.

Nếu bạn muốn tìm hiểu thêm về mã hóa trong Python, hãy xem Cách học hướng dẫn Python của chúng tôi. Hướng dẫn này chứa một số tài nguyên học tập, khóa học và sách được thiết kế cho những người đang học ngôn ngữ lập trình Python.

Làm cách nào để khắc phục lỗi miền Math trong Python?

Làm thế nào các lỗi miền toán học có thể được sửa chữa trong Python? Các lỗi miền có thể xảy ra khi cố gắng lấy căn bậc hai của số âm hoặc lấy logarit của số âm. Chúng có thể được sửa bằng cách sử dụng hàm abs () để lấy giá trị tuyệt đối của số.using the abs() function to take the absolute value of the number.

Lỗi miền trong Python là gì?

Một lỗi miền là khi một hàm được áp dụng cho một giá trị không nằm trong miền của nó.Ví dụ, hàm gốc chỉ có thể được áp dụng cho các số dương, vì vậy cố gắng lấy căn bậc hai của một số âm sẽ dẫn đến lỗi miền.when a function is applied to a value that is not in its domain. For example, the square root function can only be applied to positive numbers, so trying to take the square root of a negative number would result in a domain error.

Lỗi miền trong toán học là gì?

Một lỗi miền xảy ra nếu một đối số đầu vào nằm ngoài miền mà hàm toán học được xác định.Đoạn 3 trạng thái.Một lỗi cực (còn được gọi là điểm kỳ dị hoặc vô hạn) xảy ra nếu hàm toán học có kết quả vô hạn chính xác vì (các) đối số đầu vào hữu hạn được tiếp cận trong giới hạn.occurs if an input argument is outside the domain over which the mathematical function is defined. Paragraph 3 states. A pole error (also known as a singularity or infinitary) occurs if the mathematical function has an exact infinite result as the finite input argument(s) are approached in the limit.

Làm thế nào để bạn giải quyết lỗi miền?

Để giải quyết vấn đề này, hãy xóa máy tính khỏi miền và sau đó kết nối máy tính với miền.Sử dụng tài khoản quản trị viên cục bộ để đăng nhập vào máy tính.Chọn Bắt đầu, nhấn và giữ máy tính (hoặc nhấp chuột phải> Thuộc tính.Chọn Thay đổi cài đặt bên cạnh tên máy tính.remove the computer from the domain, and then connect the computer to the domain. Use a local administrator account to log on to the computer. Select Start, press and hold (or right-click) Computer > Properties. Select Change settings next to the computer name.