ahmad123445's picture
Update app.py
a680b9d verified
import streamlit as st
def convert_temperature(value, from_scale, to_scale):
try:
value = float(value)
# Same unit conversion
if from_scale == to_scale:
return value
# Celsius conversions
if from_scale == "Celsius":
if to_scale == "Kelvin":
return value + 273.15
elif to_scale == "Fahrenheit":
return (value * 9 / 5) + 32
elif to_scale == "Rankine":
return (value + 273.15) * 9 / 5
# Kelvin conversions
if from_scale == "Kelvin":
if to_scale == "Celsius":
return value - 273.15
elif to_scale == "Fahrenheit":
return (value - 273.15) * 9 / 5 + 32
elif to_scale == "Rankine":
return value * 9 / 5
# Fahrenheit conversions
if from_scale == "Fahrenheit":
if to_scale == "Celsius":
return (value - 32) * 5 / 9
elif to_scale == "Kelvin":
return (value - 32) * 5 / 9 + 273.15
elif to_scale == "Rankine":
return value + 459.67
# Rankine conversions
if from_scale == "Rankine":
if to_scale == "Celsius":
return (value - 491.67) * 5 / 9
elif to_scale == "Kelvin":
return value * 5 / 9
elif to_scale == "Fahrenheit":
return value - 459.67
return "Conversion not supported!"
except ValueError:
return "Invalid input! Please enter a numeric value."
# Streamlit App GUI
st.title("Temperature Conversion App")
st.subheader("Developed by Ahmad Hassan")
st.caption("Supervised by Dr. Hidayatullah Mahar")
# Input fields
temp_value = st.text_input("Enter Temperature Value:")
from_scale = st.selectbox("Convert From", ["Celsius", "Kelvin", "Fahrenheit", "Rankine"])
to_scale = st.selectbox("Convert To", ["Celsius", "Kelvin", "Fahrenheit", "Rankine"])
# Conversion logic
if st.button("Convert"):
result = convert_temperature(temp_value, from_scale, to_scale)
st.success(f"Converted Value: {result}")