تبدیل واحدها در پایتون — به زبان ساده + کد

۱۰۳۲ بازدید
آخرین به‌روزرسانی: ۱۴ شهریور ۱۴۰۲
زمان مطالعه: ۲ دقیقه
تبدیل واحدها در پایتون — به زبان ساده + کد

در برخی کشورها، طول با واحد «متر» اندازه‌گیری‌ می‌شود، در حالی که در برخی کشورهای دیگر این اندازه‌گیری با واحد «فوت» انجام می‌یابد. اگر بخواهید این واحدها را به همدیگر تبدیل کنید، باید این کار را با دقت مضاعفی انجام دهید، چون ممکن است همه چیز به هم بریزد. اگر با زبان برنامه‌نویسی پایتون کار می‌کنید، خبر خوب این است که یک پکیج اختصاصی به این منظور توسعه یافته است که «پاینت» (Pint) نام دارد. در این مطلب با روش تبدیل واحدها در پایتون آشنا خواهیم شد.

فهرست مطالب این نوشته

همچنین اگر به تازگی شروع به یادگیری پایتون کرده‌اید و به دنبال انتخاب بهترین مسیر برای بدل شدن به یک برنامه‌نویس پایتون عالی هستید، توصیه می‌کنیم بعد از این نوشتار، سری نیز به مطلب یادگیری پایتون بزنید که در مجله فرادرس و به همین منظور تهیه شده است.

تبدیل واحدها در پایتون

پاینت چیست؟

پاینت یک پکیج پایتون است که برای کار کردن و دستکاری کردن کمیت‌های فیزیکی ساخته شده است. می‌دانیم که کمیت‌‌های فیزیکی حاصل ضرب یک مقدار عددی در یک واحد اندازه‌گیری هستند. با استفاده از پاینت می‌توانید بین این واحد‌های مختلف تبدیل کنید و یا مستقیماً عملیات ریاضی را روی کمیت‌های متفاوت انجام دهید.

آموزش برنامه نویسی پایتون Python – مقدماتی

پاینت به همراه فهرستی جامعی از واحدهای فیزیکی، پیشوندها و ثوابت توزیع یافته است. با این حال به دلیل ماهیت ماژولارش می‌توانید این فهرست را بدون نیاز به دست بردن در سورس کد، بسط داده و یا حتی بازنویسی کنید. پاینت از بسیاری از عملیات ریاضی «نامپای» (Numpy) نیز پشتیبانی می‌کند.

نصب پاینت

برای نصب پاینت از دستور زیر استفاده کنید:

1pip install pint

پس از نصب می‌توانید از رجیستری واحد درون این پکیج بهره بگیرید.

1import pint
2ureg = pint.UnitRegistry()

این «رجیستری واحد» شیء اصلی است که با آن تعامل پیدا می‌کنیم. با استفاده از آن می‌توانیم کمیت‌هایی را تعریف کنیم که بزرگی دارند و واحدی نیز به آن‌ها الصاق شده است. برای نمونه می‌توانید با چند عمل حسابی ساده واحدهای متر و سانتی‌متر را با هم جمع بزنید.

13 * ureg.meter + 4 * ureg.cm
2# 3.04 meter

نتیجه کد فوق، یک شیء است که می‌تواند برای تبدیل کمیت به واحد دیگری استفاده شود.

1(3 * ureg.meter + 4 * ureg.cm).to(ureg.feet)
2# 9.9737 foot

پکیج پاینت امکان ایجاد واحدها را به طور پویا نیز فراهم ساخته است. برای نمونه سرعت بر حسب مسافت تقسیم بر زمان تعریف می‌شود.

160 * ureg.miles / ureg.hour
2# 60.0 mile/hour

شما می‌توانید این کمیت را به واحد متر بر دقیقه تبدیل کنید.

1(60 * ureg.miles / ureg.hour).to(ureg.meters/ureg.minute)
2# 1609.344 meter/minute

همچنین می‌توانید از رشته‌ها برای تعریف واحد استفاده کنید. شاید گاهی اوقات انجام این کار آسان‌تر باشد.

1ureg("meter/second**2") * 10 * ureg("seconds")
2# 10.0 meter/second

نکته دیگری که در زمان استفاده از پکیج پاینت بهتر است به آن توجه کنیم، این است که امکان تعریف واحد‌های جدید نیز وجود دارد.

1ureg.define("dog_year = 52 * day = dy")
2(5 * ureg("years").to(ureg("dog_year")))
3# 35.1201 dog_year

این کتابخانه، واحدهای زیادی دارد و با کمی کاوش در آن شگفت‌زده خواهید شد. همچنین می‌توانید خصوصیات یک واحد را به شیوه زیر به دست آورید.

1(60 * ureg.miles / ureg.hour).magnitude
2# 60.0
3(60 * ureg.miles / ureg.hour).units
4# mile/hour
5(60 * ureg.miles / ureg.hour).dimensionality
6# <UnitsContainer({'[length]': 1, '[time]': -1})>

سخن پایانی

اگر در زمینه علوم داده فعال هستید و یا هر استفاده علمی از زبان برنامه‌نویسی پایتون می‌کنید، با نصب و به‌کارگیری کتابخانه پاینت می‌توانید از بسیاری از مشکلاتی که ممکن است تبدیل واحدها برای شما پیش بیاورد، اجتناب نمایید. کار با پاینت آسان است و موجب بهبود چشمگیری در زمان و تلاش مورد نیاز برای کدنویسی محاسبات علمی می‌شود.

بر اساس رای ۱۱ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
calmcode
۲ دیدگاه برای «تبدیل واحدها در پایتون — به زبان ساده + کد»

عالی بود. بد جور کارمو راه انداخت. دمت گرم

ممنون از این مطلب مفید . اتفاقا دنبال همچین چیزی بودم که از شانس اینجا رو پیدا کردم

نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *