convert between different units

Thu Jan 19 2023 07:33:59 GMT+0000 (UTC)

Saved by @Shaghaf_2000 #python

```# Task1
def main():
#thisfunction will allow the user to choose which function to run:
# 1. print options out:
print("Options: ")
print("Temperature = convert between two different temperature units")
print("Length = convert between two different length units")
print("Mass = convert between two different mass units")
print("Area = convert between two different area units")
option = input("Select an option or control C to exit the program: ")
option=option.lower()
# to allow user repeat:
while True:
# to allow user to quit:
try:

if option == 'temperature':
temperature_convert()
elif option == 'length':
length_convert()
elif option == 'mass':
mass_convert()
elif option=='area':
area_convrt()
else:
print('Invalid Inputs')
except KeyboardInterrupt:
print("\nExiting program\n")
break

def temperature_convert():
#temperature = ['Kelvin', 'Celsius','Fahrenheit', 'Rankine', 'Delisle']
validUnit=['C', 'K', 'F', 'R','D']
temperature = {'K':'Kelvin','C':'Celsius','F':'Fahrenheit','R':'Rankine',  'D':'Delisle'}
# print(temperature)
# print(validUnit)
convertFrom = input("Enter unit to convert from (C = Celcius, K = Kelvin, F = Fahrenheit, R = Rankine, D = Delisle): ")
converTo = input("Enter unit to convert to (C = Celcius, K = Kelvin, F = Fahrenheit, R = Rankine, D = Delisle): ")
value = input("Enter temperature value to convert: ")
while True:
try:
convertFrom = str(convertFrom)
converTo = str(converTo)
value = float(value)
convertFrom = convertFrom.upper()
converTo = converTo.upper()
if convertFrom not in validUnit or converTo not in validUnit:
print("Invalid Unit! ")
else:
break
except ValueError:
print("Conversion faild")
"""
# From Kelvin:
if convertFrom == 'Kelvin' and converTo == 'Celsius':
newValue = value-273.15
print(f"Temperature converted from {temperature[0]}K to {temperature[1]}°C is {round(newValue,2)}°C")
elif convertFrom == 'Kelvin' and converTo == 'Fahrenheit':
newValue= (((value-273.15)**9)/5)+32
print(f"Temperature converted from {temperature[0]}K to {temperature[2]}°F is {round(newValue,2)}°F")
elif convertFrom == 'Kelvin' and converTo =='Rankine':
newValue = (value*9)/5
print(f"Temperature converted from {temperature[0]}K to {temperature[3]}°R is {round(newValue,2)}°R")
elif convertFrom == 'Kelvin' and converTo =='Delisle':
newValue = ((373.15 - value)*3)/2
print(f"Temperature converted from {temperature[0]}K to {temperature[4]}°D is {round(newValue,2)}°D")

# From Celsius

elif convertFrom =='Celsius' and converTo=='Kelvin':
newValue= value+273.15
print(f"Temperature converted from {temperature[1]}°C to {temperature[0]}K is {round(newValue,2)}K")
elif convertFrom == 'Celsius' and converTo == 'Fahrenheit':
newValue = (value*9/5)+3**2
print(f"Temperature converted from {temperature[1]}°C to {temperature[2]}°F is {round(newValue,2)}°F")
elif convertFrom == 'Celsius' and converTo =='Rankine':
newValue = (value*9/5)+491.67
print(f"Temperature converted from {temperature[1]}°C to {temperature[3]}°R is {round(newValue,2)}°R")
elif convertFrom == 'Celsius' and converTo == temperature[4]:
newValue = ((100-value)*3)/2
print(f"Temperature converted from {temperature[1]}°C to {temperature[4]}°D  is {round(newValue,2)}°D ")

# from Fahrenheit:
elif convertFrom == temperature [2] and converTo =='Kelvin':
newValue = (value+459.67)*5/9
print(f"Temperature converted from {temperature[1]}°F to {temperature[0]}K  is {round(newValue,2)}K")
elif convertFrom == temperature [2] and converTo =='Celsius':
newValue = (value -32)*5/9
print(f"Temperature converted from {temperature[1]}°F to {temperature[1]}°C  is {round(newValue,2)}°C ")
elif convertFrom == temperature [2] and converTo =='Rankine':
newValue = value + 459.67
print(f"Temperature converted from {temperature[1]}°F to {temperature[3]}°R  is {round(newValue,2)}°R ")
elif convertFrom == temperature [2] and converTo == 'Delisle':
newValue = (212 -value) * 5/6
print(f"Temperature converted from {temperature[1]}°F to {temperature[4]}°D  is {round(newValue,2)}°D ")

# from Rankine (°R):
elif convertFrom == 'Rankine' and converTo == 'Kelvin':
newValue = value/1.8
print(f"Temperature converted from {temperature[3]}°R to {temperature[0]}K  is {round(newValue,2)}K")
elif convertFrom == 'Rankine' and converTo =='Celsius':
newValue = (value-491.67)*5/9
print(f"Temperature converted from {temperature[3]}°R to {temperature[1]}°C  is {round(newValue,2)}°C ")
elif convertFrom == 'Rankine' and converTo =='Fahrenheit':
newValue = value-459.67
print(f"Temperature converted from {temperature[3]}°R to {temperature[2]}°F is {round(newValue,2)}°F ")
elif convertFrom == 'Rankine' and converTo == 'Delisle':
newValue = (value-491.67) * 0.83333
print(f"Temperature converted from {temperature[3]}°R to {temperature[4]}°D  is {round(newValue,2)}°D ")

# FROM D:
elif convertFrom == 'Delisle' and converTo =='Kelvin':
newValue = (373.15-value)*2/3
print(f"Temperature converted from {temperature[4]}°D to {temperature[0]}K  is {round(newValue,2)}K")
elif convertFrom == 'Delisle' and converTo == 'Celsius':
newValue = (value+100)/1.5000
print(f"Temperature converted from {temperature[4]}°D to {temperature[1]}°C  is {round(newValue,2)}°C ")
elif convertFrom == 'Delisle' and converTo =='Fahrenheit':
newValue = ((value+100)*1.2000)+32
print(f"Temperature converted from {temperature[4]}°D to {temperature[2]}°F is {round(newValue,2)}°F ")
elif convertFrom == 'Delisle' and converTo == 'Rankine':
newValue = ((value+100)*1.2000 )+491.67
print(f"Temperature converted from {temperature[4]}°D to {temperature[3]}°R  is {round(newValue,2)}°D ")
else:
print("Invalid inputs. ")
"""

# From Kelvin:
if convertFrom == 'K' and converTo == 'C':
newValue = value-273.15
print(f"Temperature converted from ({temperature[convertFrom]}) K to ({temperature[converTo]}) °C is {round(newValue,2)}°C")
elif convertFrom == 'K' and converTo == 'F':
newValue= (((value-273.15)**9)/5)+32
print(f"Temperature converted from ({temperature[convertFrom]}) K to ({temperature[converTo]}) °F is {round(newValue,2)}°F")
elif convertFrom == 'K' and converTo =='R':
newValue = (value*9)/5
print(f"Temperature converted from ({temperature[convertFrom]}) K to ({temperature[converTo]}) °R is {round(newValue,2)}°R")
elif convertFrom == 'K' and converTo =='D':
newValue = ((373.15 - value)*3)/2
print(f"Temperature converted from ({temperature[convertFrom]}) K to ({temperature[converTo]}) °D is {round(newValue,2)}°D")

# From Celsius

elif convertFrom =='C' and converTo=='K':
newValue= value+273.15
print(f"Temperature converted from ({temperature[convertFrom]}) °C to {temperature[converTo]} K is {round(newValue,2)}K")
elif convertFrom == 'C' and converTo == 'F':
newValue = (value*9/5)+3**2
print(f"Temperature converted from ({temperature[convertFrom]}) °C to ({temperature[converTo]}) °F is {round(newValue,2)}°F")
elif convertFrom == 'C' and converTo =='R':
newValue = (value*9/5)+491.67
print(f"Temperature converted from ({temperature[convertFrom]}) °C to {temperature[converTo]}°R is {round(newValue,2)}°R")
elif convertFrom == 'C' and converTo == 'D':
newValue = ((100-value)*3)/2
print(f"Temperature converted from ({temperature[convertFrom]}) °C to ({temperature[converTo]}) °D  is {round(newValue,2)}°D ")

# from Fahrenheit:
elif convertFrom == 'F'and converTo =='K':
newValue = (value+459.67)*5/9
print(f"Temperature converted from ({temperature[convertFrom]}) °F to ({temperature[converTo]}) K  is {round(newValue,2)}K")
elif convertFrom == 'F' and converTo =='C':
newValue = (value -32)*5/9
print(f"Temperature converted from ({temperature[convertFrom]}) °F to ({temperature[converTo]}) °C  is {round(newValue,2)}°C ")
elif convertFrom == 'F' and converTo =='R':
newValue = value + 459.67
print(f"Temperature converted from ({temperature[convertFrom]}) °F to ({temperature[converTo]}) °R  is {round(newValue,2)}°R ")
elif convertFrom == 'F' and converTo == 'D':
newValue = (212 -value) * 5/6
print(f"Temperature converted from {temperature[convertFrom]} °F to {temperature[converTo]} °D  is {round(newValue,2)}°D ")

# from Rankine (°R):
elif convertFrom == 'R' and converTo == 'K':
newValue = value/1.8
print(f"Temperature converted from {temperature[convertFrom]} °R to {temperature[converTo]} K  is {round(newValue,2)}K")
elif convertFrom == 'R' and converTo =='C':
newValue = (value-491.67)*5/9
print(f"Temperature converted from ({temperature[convertFrom]}) °R to ({temperature[converTo]}) °C  is {round(newValue,2)}°C ")
elif convertFrom == 'R' and converTo =='F':
newValue = value-459.67
print(f"Temperature converted from ({temperature[convertFrom]}) °R to ({temperature[converTo]}) °F is {round(newValue,2)}°F ")
elif convertFrom == 'R' and converTo == 'D':
newValue = (value-491.67) * 0.83333
print(f"Temperature converted from ({temperature[convertFrom]}) °R to ({temperature[converTo]}) °D  is {round(newValue,2)}°D ")

# From D:
elif convertFrom == 'D' and converTo =='K':
newValue = (373.15-value)*2/3
print(f"Temperature converted from ({temperature[convertFrom]}) °D to ({temperature[converTo]}) K  is {round(newValue,2)}K")
elif convertFrom == 'D' and converTo == 'C':
newValue = (value+100)/1.5000
print(f"Temperature converted from ({temperature[convertFrom]}) °D to ({temperature[converTo]}) °C  is {round(newValue,2)}°C ")
elif convertFrom == 'D' and converTo =='F':
newValue = ((value+100)*1.2000)+32
print(f"Temperature converted from ({temperature[convertFrom]}) °D to ({temperature[converTo]}) °F is {round(newValue,2)}°F ")
elif convertFrom == 'D' and converTo == 'R':
newValue = ((value+100)*1.2000 )+491.67
print(f"Temperature converted from ({temperature[convertFrom]}) °D to ({temperature[converTo]}) °R  is {round(newValue,2)}°D ")
else:
print("Invalid inputs. ")

#temperature_convert()
def length_convert():
# Take user inputs:
value = input("Enter length value: ")
convertFrom = input("Enter unit you want to convert from: ")
converTo = input("Enter unit you want to convert to: ")
# creat list that contains units:
validUnits = ['m','in','ft','yd','mi','nm']
# create a dictionary that has letters with their coressponding unit names:
unitNames = {'m':'Metre',
'in': 'Inch',
'ft':'Feet',
'yd': 'Yard',
'mi':'Mile',
'nm':'Nautical Mile'
}
converTo=converTo.lower()
convertFrom=convertFrom.lower()

# Validation:
while True:
try:
value = float(value)
if convertFrom not in validUnits or converTo not in validUnits:
print("Unit Invalid. ")
else:
break

except ValueError:
print("Conversion faild")
# Conver from meter:
if convertFrom == 'm' and converTo == 'in':
newvalue = value*39.3701
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} in. ")
elif convertFrom == 'm' and converTo == 'ft':
newvalue=value*3.28084
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} ft. ")
elif convertFrom == 'm' and converTo == 'yd':
newvalue=value*1.094
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} yd. ")
elif convertFrom == 'm' and converTo == 'mi':
newvalue=value/1609
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} mi. ")
elif convertFrom == 'm' and converTo == 'nm':
newvalue=value*0.000539957
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} nm. ")
# convert from inch:
if convertFrom == 'in' and converTo == 'm':
newvalue = value/39.37
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} m. ")
elif convertFrom == 'in' and converTo == 'ft':
newvalue=value/12
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} ft. ")
elif convertFrom == 'in' and converTo == 'yd':
newvalue=value/36
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} yd. ")
elif convertFrom == 'in' and converTo == 'mi':
newvalue=value/63360
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} mi. ")
elif convertFrom == 'in' and converTo == 'nm':
newvalue=value/72910
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} nm. ")
# convert from feet:
if convertFrom == 'ft' and converTo == 'in':
newvalue =value*12
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} in. ")
elif convertFrom == 'ft' and converTo == 'm':
newvalue=value/3.281
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} m. ")
elif convertFrom == 'ft' and converTo == 'yd':
newvalue=value/3
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} yd. ")
elif convertFrom == 'ft' and converTo == 'mi':
newvalue=value/5280
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} mi. ")
elif convertFrom == 'ft' and converTo == 'nm':
newvalue=value/6076
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} nm. ")
# convert from Yard:
if convertFrom == 'yd' and converTo == 'in':
newvalue =value*36
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} in. ")
elif convertFrom == 'yd' and converTo == 'm':
newvalue=value/1.094
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} m. ")
elif convertFrom == 'yd' and converTo == 'ft':
newvalue=value*3
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} ft. ")
elif convertFrom == 'yd' and converTo == 'mi':
newvalue=value/1760
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} mi. ")
elif convertFrom == 'yd' and converTo == 'nm':
newvalue=value/2025
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} nm. ")
# convert from Mile:
if convertFrom == 'mi' and converTo == 'in':
newvalue =value*63360
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} in. ")
elif convertFrom == 'mi' and converTo == 'm':
newvalue=value*1609
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} m. ")
elif convertFrom == 'mi' and converTo == 'ft':
newvalue=value*5280
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} ft. ")
elif convertFrom == 'mi' and converTo == 'yd':
newvalue=value*1760
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} yd. ")
elif convertFrom == 'mi' and converTo == 'nm':
newvalue=value/1.151
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} nm. ")
# convert from Nautical Mile:
if convertFrom == 'nm' and converTo == 'in':
newvalue =value*72910
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} in. ")
elif convertFrom == 'nm' and converTo == 'm':
newvalue=value*1852
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} m. ")
elif convertFrom == 'nm' and converTo == 'ft':
newvalue=value*6076
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} ft. ")
elif convertFrom == 'nm' and converTo == 'yd':
newvalue=value*2025
print(f"The length {value} converted from ({unitNames[convertFrom]}) to ({unitNames[converTo]}) is {round(newvalue,2)} yd. ")
elif convertFrom == 'nm' and converTo == 'mi':
newvalue=value*1.151
print(f"The length {value} converted from ({unitNames[convertFrom]}) to {round(newvalue,2)} mi. ")

#length_convert()
def mass_convert():
# get user inputs:
while True:
try:

value = input("Enter value of mass you want to convert: ")
convertFrom = input("Enter unit you want to convert from (Kilogram (kg), Pound (lbs),Ounce (oz), Stone (st), Tons (t)): ")
convertTo = input("Enter unit you want to convert to (Kilogram (kg), Pound (lbs),Ounce (oz), Stone (st), Tons (t)): ")
validUnits =['kg', 'lbs', 'oz', 'st','t']
unitNames = {
'kg': 'Kilogram ',
'lbs': 'Pound ',
'oz': 'Ounce',
'st': 'Stone ',
't':'Tons '
}
value = float(value)
convertFrom=convertFrom.lower()
convertTo=convertTo.lower()
if convertFrom not in validUnits or convertTo not in validUnits:
print("Invalid Units. ")
else:
break
except ValueError:
print("conversion faild")

# convert from kg:
if convertFrom == 'kg' and convertTo=='lbs':
newvalue=value*2.205
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'kg' and convertTo=='oz':
newvalue=value*35.274
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'kg' and convertTo=='st':
newvalue=value/6.35
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'kg' and convertTo=='t':
newvalue=value/1000
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
# convert from pound:
if convertFrom == 'lbs' and convertTo=='kg':
newvalue=value/2.205
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'lbs' and convertTo=='oz':
newvalue=value*16
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'lbs' and convertTo=='st':
newvalue=value/14
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'lbs' and convertTo=='t':
newvalue=value/2205
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
# convert from Ounce:
if convertFrom == 'oz' and convertTo=='kg':
newvalue=value/35.274
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'oz' and convertTo=='lbs':
newvalue=value/16
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'oz' and convertTo=='st':
newvalue=value/224
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'oz' and convertTo=='t':
newvalue=value/35270
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
# convert from Stone:
if convertFrom == 'st' and convertTo=='kg':
newvalue=value*6.35
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'st' and convertTo=='lbs':
newvalue=value*14
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'st' and convertTo=='oz':
newvalue=value*224
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 'st' and convertTo=='t':
newvalue=value/157.5
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')

# convert from Tones:
if convertFrom == 't' and convertTo=='kg':
newvalue=value*1000
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 't' and convertTo=='lbs':
newvalue=value*2205
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 't' and convertTo=='oz':
newvalue=value*35270
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
elif convertFrom == 't' and convertTo=='st':
newvalue=value*157.5
print(f'Mass {value} converted from {unitNames[convertFrom]} to {unitNames[convertTo]} is {round(newvalue,2)}')
#mass_convert()

def area_convrt():
while True:
value = input("Enter area: ")
convertFrom = input("Enter unit you want to conver area from: ")
convertTo = input("Enter unit you want to conver area from: ")
validUnits= ['km2', 'm2', 'ha', 'ac','in^2','ft2','yd2']
unitNames = {

}
try:
value = float(value)
if convertFrom not in validUnits or convertTo not in validUnits:
print("Invalid unit")
else:
break
except ValueError:
print("Conversion faild")

#area_convrt()
main()```
content_copyCOPY