কম্পিউটার টিউটোরিয়াল

পাইথন ValueError: math domain error — কারণ ও সমাধান

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 >= 0math.sqrt(-1)
math.log(x)x > 0math.log(0), math.log(-5)
math.log10(x)x > 0math.log10(-10)
math.acos(x), math.asin(x)-1 <= x <= 1math.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 ব্যবহার করে রানটাইমে এরর হ্যান্ডেল করুন।

  1. পাইথনে গাণিতিক ফাংশন - বিশেষ ফাংশন এবং কনস্ট্যান্ট

  2. পাইথনে স্কয়ার রুট বের করা (math.sqrt)

  3. পাইথনে একটি সংখ্যার ঘাত (Power) বের করা

  4. পাইথনে ন্যাচারাল লগ (Natural Log) বের করা