File size: 2,159 Bytes
a680b9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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}")