Hướng dẫn how do you convert a unit in python? - làm thế nào để bạn chuyển đổi một đơn vị trong python?

Tôi muốn chỉ ra một thư viện riêng để xử lý các đơn vị: Barril

https://github.com/ESSS/barril

Tài liệu tại: https://barril.readthedocs.io/en/latest/

Mặc dù nó có hỗ trợ để tạo các đơn vị "ngẫu nhiên" từ tính toán (như pint, unum, v.v.), nhưng nó được thiết kế riêng để có một cơ sở dữ liệu của các đơn vị (mà thư viện có theo mặc định - xem: https: //barril.readthedocs .io/en/mới nhất/đơn vị.html và triển khai: https://github.com/esss/barril/blob/master/src/barril/units/posc.py) và sau đó bạn có thể truy vấn và chuyển đổi dựa trên các đơn vị liên quan.

Một điều mà nó hỗ trợ thực hiện rất nhiều sự khác biệt về vấn đề đó là xử lý các chuyển đổi đơn vị sẽ là "Dimcentless" - chẳng hạn như M3/M3 (tức là ::____10) và sau đó chuyển đổi sang

>>> from barril.units import Scalar
>>> a = Scalar(3, 'm3/m3')
>>> a.GetValue('cm3/m3')
3000000.0
>>> a.category
'volume per volume'
>>> a.unit
'm3/m3'
1 và giữ kích thước.

tức là: trong pint:

>>> import pint
>>> ureg = pint.UnitRegistry()
>>> m = ureg.meter
>>> v = 1 \* (m\*3)/(m\*3)
>>> v

Và sau đó, sau đó (theo như tôi biết), không thực sự có thể thực hiện các chuyển đổi đơn vị bổ sung đúng cách khi biết rằng đó là M3/M3.

Trong Barril:

>>> from barril.units import Scalar
>>> a = Scalar(3, 'm3/m3')
>>> a.GetValue('cm3/m3')
3000000.0
>>> a.category
'volume per volume'
>>> a.unit
'm3/m3'

và một cái gì đó như

>>> from barril.units import Scalar
>>> a = Scalar(3, 'm3/m3')
>>> a.GetValue('cm3/m3')
3000000.0
>>> a.category
'volume per volume'
>>> a.unit
'm3/m3'
2 (có giá trị không hợp lệ) sẽ gây ra lỗi khi nói rằng việc chuyển đổi thực sự không hợp lệ.

Cơ sở dữ liệu đơn vị (ban đầu dựa trên các đơn vị POSC của từ điển đo lường) phù hợp hơn một chút cho trường dầu khí, nhưng cũng có thể sử dụng được bên ngoài nó.

Bạn có cần phải làm việc thường xuyên không? Điều gì về việc chuyển đổi từ một đơn vị đo lường sang một đơn vị khác? Có một gói Python có tên PINT giúp làm việc với số lượng dễ thực hiện. Pint cho phép bạn thực hiện các hoạt động số học giữa giá trị số và một đại lượng là tốt. Bạn có thể thấy nhiều loại đơn vị khác nhau được bao gồm trong dự án GitHub của họ.

Hãy bắt đầu bằng cách học cách cài đặt pint!

Cài đặt

Bạn có thể cài đặt pint bằng PIP như thế này:Pint using pip like this:

python3 -m pip install pint

Nếu bạn là người dùng Conda, thì bạn sẽ muốn sử dụng lệnh này thay thế:conda user, then you would want to use this command instead:

conda install -c conda-forge pint

Bây giờ bạn đã cài đặt pint, bạn đã sẵn sàng để tìm hiểu cách sử dụng nó!

Bắt đầu với pint

Một trong những tính năng thú vị nhất của pint là bạn có thể sử dụng nó để chuyển đổi từ loại đơn vị này sang loại đơn vị khác. Ví dụ: bạn có thể muốn chuyển đổi từ một số đơn vị Imperial sang một đơn vị số liệu.

Một trường hợp sử dụng phổ biến sẽ là chuyển đổi từ dặm sang km. Mở lại Python REP (hoặc nhàn rỗi) của bạn và thử mã sau:

>>> from pint import UnitRegistry
>>> ureg = UnitRegistry()
>>> distance = 5 * ureg.mile
>>> distance

>>> distance.to("kilometer")

Ở đây bạn tạo một đối tượng số lượng khoảng cách có tên. Bạn đặt giá trị của nó thành 5 dặm. Sau đó, để chuyển đổi nó thành km, bạn gọi phương thức khoảng cách thành () và chuyển tên số lượng mới mà bạn muốn. Kết quả là 5 dặm được chuyển đổi thành 8.04672 km.distance. You set its value to 5 miles. Then to convert it to kilometers, you call the distance's to() method and pass in the new quantity name that you want. The result is that 5 miles is converted to 8.04672 kilometers.

Bạn cũng có thể chuyển đổi số lượng thành các loại đơn vị khác nhau trong cùng một hệ thống. Ví dụ: bạn có thể chuyển đổi km thành cm, nếu bạn muốn:

>>> from pint import UnitRegistry 
>>> ureg = UnitRegistry()
>>> distance_in_km = 5 * ureg.kilometer
>>> distance_in_km

>>> distance_in_cm = distance_in_km.to("centimeter")
>>> distance_in_cm

Chuỗi phân tích cú pháp pint

Một trong những tính năng thú vị của PINT là bạn có thể chỉ định số lượng bằng chuỗi. Điều đó có nghĩa là bạn có thể làm những thứ như thế này:

>>> my_quantity = ureg.Quantity
>>> my_quantity(2.54, 'centimeter')

Hoặc bạn có thể đơn giản hóa nó, thậm chí nhiều hơn, đơn giản là:

>>> my_quantity = ureg.Quantity
>>> my_quantity('2.54in')

Bây giờ bạn đã chơi xung quanh với việc chuyển đổi giữa các loại đơn vị khác nhau, bạn đã sẵn sàng để tìm hiểu về định dạng chuỗi với pint.

Sử dụng định dạng chuỗi với pint

PINT hỗ trợ định dạng bằng Python's .format () và bằng cách sử dụng F-Strings. Dưới đây là một ví dụ từ hướng dẫn pint:.format() and by using f-strings. Here is an example from the Pint tutorial:

>>> ureg = ureg.Quantity
>>> accel = 1.3 * ureg['meter/second**2']
>>> print(f'The str is {accel}')
The str is 1.3 meter / second ** 2

Khi chuỗi F được đánh giá, đối tượng số lượng được chuyển đổi thành định dạng có thể đọc được nhiều hơn.

Pint đi xa hơn thế bằng cách mở rộng khả năng định dạng của Python. Dưới đây là một ví dụ về "in đẹp" tùy chỉnh của họ:

>>> ureg = ureg.Quantity
>>> accel = 1.3 * ureg['meter/second**2']
>>> # Pretty print
>>> 'The pretty representation is {:P}'.format(accel)
'The pretty representation is 1.3 meter/second²'

Pint cũng hỗ trợ in tùy chỉnh của latex và HTML cho máy tính xách tay Jupyter.

Gói lên

Pint là một gói Python thực sự tốt đẹp. Mặc dù hướng dẫn này không bao gồm nó, Pint cho phép bạn đặt địa phương của mình để tên đơn vị phù hợp với ngôn ngữ của bạn. Nếu bạn thường xuyên làm việc với các đại lượng cần được chuyển đổi giữa các loại đơn vị (như CM thành MM hoặc inch thành cm), đây có thể chỉ là những gì bạn cần để làm cho cuộc sống mã hóa của bạn dễ dàng hơn.

Các gói python gọn gàng hơn

Bạn muốn tìm hiểu về các gói Python bên thứ 3 gọn gàng khác? Kiểm tra các bài viết sau:

  • Mũi tên - Gói ngày / giờ mới cho Python

  • Một đoạn giới thiệu ngắn gọn về gói SH

  • Giới thiệu cho thư viện / gối hình ảnh Python

Làm thế nào để bạn chuyển đổi đơn vị?

Để chuyển đổi một đơn vị nhỏ hơn thành một đơn vị lớn hơn (ví dụ:), chia nó cho số lượng đơn vị nhỏ hơn cần thiết để tạo ra đơn vị lớn hơn. Để chuyển đổi từ một đơn vị lớn hơn sang một đơn vị nhỏ hơn, nhân. Để chuyển đổi từ một đơn vị nhỏ hơn sang một đơn vị lớn hơn, chia.divide it by the number of smaller units which are needed to make larger unit. To convert from a larger unit to a smaller one, multiply. To convert from a smaller unit to a larger one, divide.

Làm thế nào để bạn viết các đơn vị trong Python?

Để gán một đơn vị cho một số lượng, nhân với đơn vị, ví dụ:my_length = 100 * mm..multiply by the unit, e.g. my_length = 100 * mm. (In normal text you would write “100 mm”, but unfortunately Python does not have “implied multiplication”.)

Đơn vị trong Python là gì?

Các đơn vị là một hệ thống "không có chi phí" không có chi phí thời gian chạy, tất cả các triển khai số lượng Python, bao gồm các đơn vị SIMTK, có thể chính xác là chi phí thời gian chạy.a "zero overhead" system with no runtime cost, all python quantity implementations, including SimTK units, probably exact a runtime cost.

Làm thế nào để bạn chuyển đổi trong Python?

Trong Python, bạn chỉ có thể sử dụng hàm bin () để chuyển đổi từ giá trị thập phân sang giá trị nhị phân tương ứng của nó.Và tương tự, hàm int () để chuyển đổi một nhị phân thành giá trị thập phân của nó.Hàm int () lấy đối số thứ hai là cơ sở của số sẽ được chuyển đổi, đó là 2 trong trường hợp số nhị phân.use the bin() function to convert from a decimal value to its corresponding binary value. And similarly, the int() function to convert a binary to its decimal value. The int() function takes as second argument the base of the number to be converted, which is 2 in case of binary numbers.