ماژول math در پایتون
ماژول math در پایتون
ماژول استاندارد math در پایتون
در ادامه مسیر یادگیری پایتون، پس از آشنایی با انواع دادهها، ساختارها و توابع، زمان آن رسیده است که یاد بگیریم چگونه از ابزارهای آماده و استاندارد پایتون برای انجام محاسبات پیشرفتهتر ریاضی استفاده کنیم.
۱. کتابخانه یا ماژول؟
یک سوال بسیار رایج در میان دانشجویان این است: آیا math یک ماژول است یا یک کتابخانه؟
- ماژول (Module): یک فایل تکمنظوره با پسوند
.py(یا یک فایل باینری کامپایلشده در دل پایتون) است که مجموعهای از توابع، متغیرها و ثوابت ریاضی را در خود جای داده است. - کتابخانه (Library): مجموعهای بزرگتر از چندین پکیج و ماژول است که برای حل یک حوزه کامل از مسائل طراحی میشود (مانند کتابخانههای بزرگ تحلیل داده یا یادگیری ماشین).
پاسخ دقیق: math در واقع یک ماژول (Module) از کتابخانه استاندارد پایتون (Python Standard Library) است.
به این ماژولها Built-in / Standard میگویند؛ یعنی نیازی به نصب با دستور pip install ندارند و از همان لحظه نصب پایتون، آماده استفاده هستند. برای دسترسی به امکانات آن، تنها کافی است آن را در ابتدای برنامه ایمپورت (Import) کنیم:
import math
توابع (متدها) در ماژول math
وقتی ماژولی مثل math را وارد میکنیم، به دو دسته ابزار دسترسی پیدا میکنیم:

- ثابتهای ریاضی (Constants): مقادیر ثابتی که از پیش در ماژول تعریف شدهاند و نیازی به پرانتز ندارند:
math.pi: عدد پی ()math.e: عدد نپر یا پایه لگاریتم طبیعی ()
- توابع ماژول (Module Functions / Methods): دستوراتی که یک یا چند ورودی دریافت میکنند و حاصل محاسبات را برمیگردانند؛ دسترسی به آنها با ساختار
math.function_name()انجام میشود. مهمترین توابع مقدماتی عبارتند از:math.sqrt(x): محاسبه جذر (رادیکال) عدد x.math.pow(x, y): رساندن عدد به توان (مشابه ).math.ceil(x): گرد کردن عدد اعشاری رو به بالا (سقف).math.floor(x): گرد کردن عدد اعشاری رو به پایین (کف).math.fabs(x): محاسبه قدر مطلق اعشاری.math.factorial(n): محاسبه فاکتوریل عدد صحیح و مثبت n.
مثال کاربردی
مثال اول: گرد کردن سقف و کف برای ظرفیت بستهبندی دادهها
- صورت مسئله: فرض کنید میخواهیم تعداد 47 بسته داده سیگنال را درون کارتنهایی قرار دهیم که در هر کدام حداکثر 5 بسته جا میشود. میخواهیم بدانیم به چند کارتن کامل نیاز داریم (گرد به بالا با
ceil) و اگر فقط کارتنهای کاملاً پر را بشماریم، چند کارتن پر داریم (گرد به پایین باfloor).
import math
total_packets = 47
box_capacity = 5
# محاسبه تعداد اعشاری کارتنها
exact_boxes = total_packets / box_capacity # برابر با 9.4
# برای جا دادن همه بستهها نیاز به گرد کردن رو به بالا داریم
boxes_needed = math.ceil(exact_boxes)
# برای شمارش کارتنهای کاملاً پر، گرد کردن رو به پایین انجام میشود
full_boxes = math.floor(exact_boxes)
print(f"تعداد کل بستهها: {total_packets}")
print(f"تعداد کارتنهای مورد نیاز (سقف): {boxes_needed}") # خروجی: 10
print(f"تعداد کارتنهای کاملاً پر (کف): {full_boxes}") # خروجی: 9
مثال دوم: محاسبه محیط و مساحت دایره
- صورت مسئله: میخواهیم محیط و مساحت دایرهای با شعاع مشخص را با فرمولهای ریاضی محاسبه کنیم.
- فرمول مساحت:
- فرمول محیط: Perimeter=2×π×r
import math
radius = 4.5
# محاسبه مساحت با استفاده از math.pi و math.pow
area = math.pi * math.pow(radius, 2)
# محاسبه محیط
perimeter = 2 * math.pi * radius
print(f"شعاع: {radius}")
print(f"مساحت دایره: {round(area, 2)}") # خروجی: 63.62
print(f"محیط دایره: {round(perimeter, 2)}") # خروجی: 28.27
مثال سوم: محاسبه فاصله اقلیدسی
- صورت مسئله: فاصله بین مبدأ مختصات تا نقطه را با رابطه فیثاغورس محاسبه کنید:
import math
x = 6
y = 8
# محاسبه مجموع مجذورات و گرفتن جذر
sum_of_squares = (x ** 2) + (y ** 2)
distance = math.sqrt(sum_of_squares)
print(f"فاصله نقطه ({x}, {y}) از مبدأ: {distance}") # خروجی: 10.0
نتیجهگیری
ماژول math یکی از سریعترین و پایدارترین ابزارهای استاندارد پایتون برای محاسبات عددی و مهندسی پایه است. استفاده از ثابتهایی مثل math.pi و توابعی مانند sqrt، pow، ceil و floor باعث میشود فرمولهای ریاضی را بدون نیاز به پیادهسازی دستی و با دقت بالا در برنامهها پیادهسازی کنیم.
