mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 23:11:09 +00:00
fd5ab45492
* Update README.md Added Google Cirq references * Create barcode_validator.py Barcode/EAN validator * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update barcode_validator.py Included docstring and updated variables to snake_case * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update barcode_validator.py Included docset and updated bugs * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update barcode_validator.py Implemented the changes asked in review. * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update barcode_validator.py Updated with f-string format * Update barcode_validator.py * Update volume_conversions.py Simpler doctest output * Update volume_conversions.py Fixed indentation Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Christian Clauss <cclauss@me.com>
76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
"""
|
|
Conversion of volume units.
|
|
Available Units:- Cubic metre,Litre,KiloLitre,Gallon,Cubic yard,Cubic foot,cup
|
|
USAGE :
|
|
-> Import this file into their respective project.
|
|
-> Use the function length_conversion() for conversion of volume units.
|
|
-> Parameters :
|
|
-> value : The number of from units you want to convert
|
|
-> from_type : From which type you want to convert
|
|
-> to_type : To which type you want to convert
|
|
REFERENCES :
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Cubic_metre
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Litre
|
|
-> Wikipedia reference: https://en.wiktionary.org/wiki/kilolitre
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Gallon
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Cubic_yard
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Cubic_foot
|
|
-> Wikipedia reference: https://en.wikipedia.org/wiki/Cup_(unit)
|
|
"""
|
|
|
|
from collections import namedtuple
|
|
|
|
from_to = namedtuple("from_to", "from_ to")
|
|
|
|
METRIC_CONVERSION = {
|
|
"cubicmeter": from_to(1, 1),
|
|
"litre": from_to(0.001, 1000),
|
|
"kilolitre": from_to(1, 1),
|
|
"gallon": from_to(0.00454, 264.172),
|
|
"cubicyard": from_to(0.76455, 1.30795),
|
|
"cubicfoot": from_to(0.028, 35.3147),
|
|
"cup": from_to(0.000236588, 4226.75),
|
|
}
|
|
|
|
|
|
def volume_conversion(value: float, from_type: str, to_type: str) -> float:
|
|
"""
|
|
Conversion between volume units.
|
|
>>> volume_conversion(4, "cubicmeter", "litre")
|
|
4000
|
|
>>> volume_conversion(1, "litre", "gallon")
|
|
0.264172
|
|
>>> volume_conversion(1, "kilolitre", "cubicmeter")
|
|
1
|
|
>>> volume_conversion(3, "gallon", "cubicyard")
|
|
0.017814279
|
|
>>> volume_conversion(2, "cubicyard", "litre")
|
|
1529.1
|
|
>>> volume_conversion(4, "cubicfoot", "cup")
|
|
473.396
|
|
>>> volume_conversion(1, "cup", "kilolitre")
|
|
0.000236588
|
|
>>> volume_conversion(4, "wrongUnit", "litre")
|
|
Traceback (most recent call last):
|
|
...
|
|
ValueError: Invalid 'from_type' value: 'wrongUnit' Supported values are:
|
|
cubicmeter, litre, kilolitre, gallon, cubicyard, cubicfoot, cup
|
|
"""
|
|
if from_type not in METRIC_CONVERSION:
|
|
raise ValueError(
|
|
f"Invalid 'from_type' value: {from_type!r} Supported values are:\n"
|
|
+ ", ".join(METRIC_CONVERSION)
|
|
)
|
|
if to_type not in METRIC_CONVERSION:
|
|
raise ValueError(
|
|
f"Invalid 'to_type' value: {to_type!r}. Supported values are:\n"
|
|
+ ", ".join(METRIC_CONVERSION)
|
|
)
|
|
return value * METRIC_CONVERSION[from_type].from_ * METRIC_CONVERSION[to_type].to
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import doctest
|
|
|
|
doctest.testmod()
|