Konwertowanie temperatur w Pythonie
Temperatury gwiazd podaje się w jednostkach zwanych Kelwinami. Skala Kelvina jest wyjątkowa, ponieważ odnosi się do zera absolutnego, czyli temperatury, w której, według fizyki klasycznej, cząstki materii przestają drgać. Skala ta odzwierciedla związek między temperaturą a energią kinetyczną cząsteczek, co jest niezwykle istotne w obliczeniach termodynamicznych.
Skalę Kelvina przedstawia się również w formie spektrum koloru: od czerwieni, przez pomarańczowy, żółty, biały, aż po niebieski. Na pierwszy rzut oka może to wydawać się nieintuicyjne, ale temperatury bliżej czerwonego są chłodniejsze, a te bliżej niebieskiego - gorętsze. W codziennym życiu spotykamy się z tą skalą przy zakupie żarówek czy ustawieniach balansu bieli w fotografii.
Studenci Gdyńskiej Akademii Kosmicznej powinni znać metody przeliczania temperatur z jednostek mniej użytecznych w badaniu kosmosu, jak Celsiusz czy Fahrenheit. W tym artykule pokażemy, jak dokonać takich przeliczeń w prosty sposób za pomocą języka Python.
Aby móc dokonać konwersji musimy poznać wzory na przeliczenie stopni Celsiusza na Kelwina oraz stopni Fahrenheita na Kelwina.
Przeliczanie stopni Celsjusza na Kelwina
Przeliczenie stopni Celsjusza na Kelwina jest stosunkowo łatwe. Wystarczy dodać do temperatury w stopniach Celsjusza 273,15, aby otrzymać temperaturę w kelwinach. Skale te różnią się tylko umiejscowieniem punktu zerowego.
Wzór przeliczenia temperatury w stopniach Celsiusza na tę w Kelwinach wygląda następująco:
T(K) = T(°C) + 273,15
Przeliczanie stopni Fahrenheita na Kelwina
Stopnie Fahrenheita są skalibrowane według temperatur zamarzania solanki, wody, temperatury ludzkiego ciała i wrzenia wody. Dzięki temu jest to miara bardziej intuicyjna dla ludzi, choć powszechnie używana głównie w USA i kilku innych krajach.
Wzór przeliczenia temperatury w stopniach Fahrenheita na tę w Kelwinach wygląda następująco:
T(K) = (T(F) − 32) × 5 ⁄ 9 + 273,15
Jak dokonać tych przeliczeń w języku Python?
Zanim przejdziemy do pisania kodu, musimy określić, jakie informacje będziemy potrzebować od użytkownika programu:
- Jaką temperaturę chce przeliczyć Celsjusza czy Fahrenheita na Kelwiny.
- Jaka jest wartość tej temperatury?
Są to dość proste wymagania, więc każdy początkujący programista pythona powinien sobie z nimi poradzić.
Funkcje przeliczające temperatury
Zdefiniujmy 2 funkcje niezbędne przy wykonywaniu naszych obliczeń. Będą to funkcje celsius_to_kelvin oraz fahrenheit_to_kelvin . W jezyku Python części dziesiętne oddzielamy kropką zamiast jak w polskiej notacji przecinkiem.
def celsius_to_kelvin(celsius):
return celsius + 273.15
def fahrenheit_to_kelvin(fahrenheit):
return (fahrenheit - 32) * 5/9 + 273.15
Wyświetlenie menu wyboru funkcji
Wyświetlamy zatem menu wyboru przy pomocy funkcji print()
print("Wybierz typ przeliczenia:")
print("1. Tempera w stopniach Celsjusza na temperaturę w stopniach Kelwina.")
print("2. Tempera w stopniach Fahrenheita na temperaturę w stopniach Kelwina.")
Pobranie wartości
Ten kod niestety jest mało interaktywny i nie spowoduje żadnego rodzaju pobrania wartości ani tym bardziej przeliczenia. Dlatego przy pomocy funkcji input() możemy pobrać wybór menu i wyświetlić kolejne polecenie.
choice = int(input("Wpisz 1 lub 2 i wciśnij enter: "))
Wybór wpisany przez użytkownika przypisujemy do zmiennej choice jako wartość liczbowa int.
Dokonanie obliczeń
Mając zapisany wybór w zmiennej choice możemy wywołać odpowiednią funkcję i pobrać wartość do obliczeń, lub poinformować użytkownika, że wpisał błędną wartość.
if choice == 1:
celsius = float(input("Wpisz temperaturę w stopniach Celsjusza: "))
kelvin = celsius_to_kelvin(celsius)
print(f"Temperatura w stopniach Kelwina to: {kelvin:.2f} K")
elif choice == 2:
fahrenheit = float(input("Wpisz temperaturę w stopniach Fahrenheita: "))
kelvin = fahrenheit_to_kelvin(fahrenheit)
print(f"Temperatura w stopniach Kelwina to: {kelvin:.2f} K")
else:
print("Błędny wybór. Wpisz 1 lub 2.")
Kod zawiera pełne menu wyboru i funkcje do przeliczania temperatur. W zakładce kod możesz pobrać pełną wersję skryptu. Jako dodatkowe ćwiczenie możesz dopisać funkcje przeliczające temperatury z kelwinów na stopnie Fahrenheita i Celsjusza oraz zmodyfikować menu, aby dodać te opcje. Powodzenia!
Zdjęcie Greg Rakozy na Unsplash
def celsius_to_kelvin(celsius):
return celsius + 273.15
def fahrenheit_to_kelvin(fahrenheit):
return (fahrenheit - 32) * 5/9 + 273.15
print("Wybierz typ przeliczenia:")
print("1. Tempera w stopniach Celsjusza na temperaturę w stopniach Kelwina.")
print("2. Tempera w stopniach Fahrenheita na temperaturę w stopniach Kelwina.")
choice = int(input("Wpisz 1 lub 2 i wciśnij enter: "))
if choice == 1:
celsius = float(input("Wpisz temperaturę w stopniach Celsjusza: "))
kelvin = celsius_to_kelvin(celsius)
print(f"Temperatura w stopniach Kelwina to: {kelvin:.2f} K")
elif choice == 2:
fahrenheit = float(input("Wpisz temperaturę w stopniach Fahrenheita: "))
kelvin = fahrenheit_to_kelvin(fahrenheit)
print(f"Temperatura w stopniach Kelwina to: {kelvin:.2f} K")
else:
print("Błędny wybór. Wpisz 1 lub 2.")