← Back to Community
##### Python unit conversions (pint module)
Profile icon
userSM

I posted this as the current weekly challenge is related to unit conversions, and there's one day left to enter, this might help some last minute submissions.

#### STEP 1 (Initialization)

First of all, we need to use the `import` statement to import the python `pint` module:
`import pint`

Then we need to use the following statement, to "allow" our program to access the pint database.
To do this, we type up the following:
`ureg=pint.UnitRegistry()`

#### STEP 2 (Assigning a variable to a unit value)

Let's create a variable called `mylen`.
For example, to assign a distance such as 8 km variable to `mylen`, we type up the following statement:

`mylen=8*ureg.km`

In this case, we are assigning `mylen` to `8*ureg.km`. `8` is the "amount" or "quantity" of our length. `.km` indicates to python that we are trying assign the number `8` to the unit `km`. You can research all the valid units available in the pint unit registry

#### STEP 3 (Conversion)

Ok, so now we have assigned `mylen` to "8 km" (refer above).
We need to convert this to another unit in the length category, say "cm". To do this, we use the `.to()` function. This takes a variable, and converts it to the unit parameter entered. For example, to convert `mylen` to "cm", we would have to assign the converted value to a variable as well. In this case, we will call ours `dest`. To convert `mylen` to "cm" and assign the result to `dest`, we would type up the following:
`dest=mylen.to(ureg.cm)`.

This is assigning the variable `dest` to the result of `mylen` when converted. the `.to()` function is taking the `ureg.cm` parameter. Because we wished to convert `mylen` to "cm", we typed `ureg.cm` as the parameter. If we wanted to assign `dest` to the value when `mylen` is converted to metres, we would type `dest=mylen.to(ureg.m)`

You can see that the parameter to the `.to()` function has changed from `ureg.cm` to `ureg.m` because we are changing the unit of the end result. You can change this parameter to any length unit required.
To output `dest`, type in, you guessed it, `print(dest)`.

#### THE END

Hope this helped at least a few people. To see this code in action, you can click here to see my unit converter, that uses the pint module and the statements shown in this tutorial.