math domain error কেন হয়?
ValueError: math domain error তখন উঠে যখন আপনি একটি গাণিতিক ফাংশনে অবৈধ ইনপুট দেন — যেমন ঋণাত্মক সংখ্যার বর্গমূল (math.sqrt()) বা লগারিদম (math.log()) নেওয়া।
উদাহরণ সিনেরিও
import math number = -16 answer = math.sqrt(number) # ❌ ValueError: math domain error
সমাধান: ইনপুট ভ্যালিডেশন যোগ করুন
import math
number = float(input("Enter a number: "))
if number >= 0:
answer = math.sqrt(number)
print(f"The square root of {number} is {answer:.2f}")
else:
print("Error: Cannot calculate square root of a negative number.")
অন্যান্য সাধারণ ফাংশন যেগুলো এই এরর দেয়
| ফাংশন | বৈধ ডোমেইন | অবৈধ ইনপুট উদাহরণ |
|---|---|---|
| math.sqrt(x) | x >= 0 | math.sqrt(-1) |
| math.log(x) | x > 0 | math.log(0), math.log(-5) |
| math.log10(x) | x > 0 | math.log10(-10) |
| math.acos(x), math.asin(x) | -1 <= x <= 1 | math.acos(2) |
প্রো টিপ: try-except দিয়ে হ্যান্ডেল করুন
import math
def safe_sqrt(x):
try:
return math.sqrt(x)
except ValueError:
return None # অথবা কাস্টম এরর মেসেজ
print(safe_sqrt(25)) # 5.0
print(safe_sqrt(-4)) # None
নিষ্কর্ষ
গাণিতিক ফাংশন কল করার আগে সবসময় ইনপুট ভ্যালিডেট করুন। math.sqrt() বা math.log() এর জন্য ডোমেইন চেক করা বাধ্যতামূলক। try-except ব্যবহার করে রানটাইমে এরর হ্যান্ডেল করুন।