Zmienne i Typy Danych w Pythonie
Podczas pracy z obliczeniami i analizą danych, zrozumienie zmiennych i typów danych w Pythonie jest kluczowe. Niezależnie od tego, czy obliczasz prędkości obiektów czy przetwarzasz dane, te podstawy będą stanowić fundament dla bardziej złożonych programów.
Czym są Zmienne w Pythonie?
Wyobraź sobie zmienne jako samoprzylepne karteczki do przechowywania zapisków. Podobnie jak różne komponenty przechowują różne rodzaje paliwa czy sprzętu, zmienne w Pythonie mogą przechowywać różne typy danych. W Pythonie tworzenie zmiennej jest tak proste, jak nadanie jej nazwy i przypisanie wartości za pomocą znaku równości (=). Jest to zatem karteczka z nazwą i wartością - ot taka metafora, dzięki której lepiej zapamiętasz czym są zmienne.
Zasady Nazywania Zmiennych
Podczas programowania musimy przestrzegać określonych protokołów. Podobnie przy nazywaniu zmiennych w Pythonie, musimy przestrzegać następujących zasad:
- Nazwy muszą zaczynać się od litery lub podkreślenia
- Mogą zawierać litery, cyfry i podkreślenia
- Rozróżniają wielkość liter (satellite_speed i Satellite_Speed to różne zmienne)
- Nie mogą używać słów zarezerwowanych Pythona
Słowa Zarezerwowane w Pythonie
Python rezerwuje pewne słowa do własnego użytku. Nie możesz używać ich jako nazw zmiennych:
# Najczęściej używane słowa zarezerwowane:
False class finally is return
None def for lambda try
True del from nonlocal while
and elif global not with
as else if or yield
break except import pass
Przykłady poprawnych nazw zmiennych:
orbital_velocity = 7.8 # kilometry na sekundę
ISS_altitude = 408 # kilometry
number_of_astronauts = 7
_mission_duration = 180 # dni
Podstawowe Typy Danych w Pythonie
Liczby
Liczby Całkowite (int)
Liczby całkowite bez miejsc po przecinku, idealne do liczenia obiektów:
number_of_planets = 8
satellite_count = 3400
Liczby Zmiennoprzecinkowe (float)
Liczby z miejscami po przecinku, niezbędne do precyzyjnych obliczeń:
earth_mass = 5.972e24 # kilogramy
spacecraft_velocity = 11.2 # km/s
Liczby Zespolone (complex)
Używane w obliczeniach matematycznych, częste w dynamice i analizie fal:
signal_data = 3 + 4j # Reprezentacja liczby zespolonej
wave_function = 2.5 + 1.8j # Używane w obliczeniach kwantowych
antenna_impedance = complex(100, 20) # Tworzenie z części rzeczywistej i urojonej
Ciągi Znaków (str)
Dane tekstowe, przydatne do przechowywania nazw i opisów:
mission_name = "Artemis"
spacecraft_status = 'Gotowy do startu'
Wartości Logiczne (bool)
Wartości True/False (Prawda/Fałsz), idealne do sprawdzania statusów:
is_in_orbit = True # Jest na orbicie
engines_active = False # Silniki nieaktywne
Złożone Typy Danych
Listy (lists)
Uporządkowane kolekcje elementów, świetne do przechowywania sekwencji danych:
planet_names = ["Mercury", "Venus", "Earth", "Mars"]
temperatures = [167, 464, 15, -63] # Średnie temperatury w stopniach Celsjusza
Krotki (Tuples)
Niezmienne sekwencje, przydatne do przechowywania stałych danych:
earth_coordinates = (0, 0, 0) # współrzędne x, y, z
mission_details = ("Apollo 11", 1969, "Lądowanie na Księżycu")
Zbiory (sets)
Nieuporządkowane kolekcje unikalnych elementów, idealne do filtrowania duplikatów:
# Śledzenie unikalnych sygnałów
signal_sources = {"Voyager1", "ISS", "Hubble", "ISS"} # Zauważ: ISS pojawia się tylko raz
print(signal_sources) # Wynik: {'Voyager1', 'ISS', 'Hubble'}
# Znajdowanie wspólnych celów obserwacji między teleskopami
telescope1_targets = {"NGC1234", "M31", "M87", "Mgławica Kraba"}
telescope2_targets = {"M87", "NGC1234", "Mgławica Oriona"}
common_targets = telescope1_targets.intersection(telescope2_targets)
Słowniki (dictionaries)
Pary klucz-wartość, idealne do przechowywania powiązanych danych:
planet_data = {
"name": "Mars",
"diameter": 6779, # kilometry
"has_moons": True, # posiada księżyce
"moons": ["Phobos", "Deimos"]
}
Konwersja Typów
Czasami musimy konwertować między różnymi typami danych. Oto kilka praktycznych przykładów:
# Konwersja danych wejściowych z czujnika na dane numeryczne
temperature_reading = "-173.5"
celsius_temp = float(temperature_reading) # Konwersja tekstu na float
kelvin_temp = celsius_temp + 273.15 # Operacja matematyczna po konwersji
# Konwersja czasu trwania misji z godzin na dni
mission_hours = "2160"
mission_days = int(mission_hours) // 24 # Dzielenie całkowite po konwersji
print(f"Czas trwania misji: {mission_days} dni")
# Konwersja danych numerycznych na tekst do wyświetlenia
altitude = 408.55
status_message = f"Wysokość ISS: {str(altitude)} km"
Sprawdzanie Typów Zmiennych
Aby sprawdzić, jakiego typu dane przechowuje zmienna:
altitude = 408.0
print(type(altitude)) # Wynik:
mission_name = "SpaceX Crew-3"
print(type(mission_name)) # Wynik:
Najlepsze Praktyki
- Używaj opisowych nazw zmiennych, które odzwierciedlają ich przeznaczenie
- Przestrzegaj przewodnika stylu PEP 8 dla spójnego nazywania
- Inicjalizuj zmienne przed ich użyciem
- Używaj odpowiednich typów danych do konkretnych potrzeb
- Komentuj kod, aby wyjaśnić złożone zmienne
Praktyczny Przykład: Dane Misji
Oto kompletny przykład łączący różne typy danych dla misji:
# Konfiguracja misji
mission_name = "Mars Explorer"
launch_date = "2025-07-20"
crew_size = 4
is_active = True
# Parametry misji
orbital_parameters = {
"altitude": 408.0, # km
"inclination": 51.6, # stopnie
"period": 92.68, # minuty
}
# Lista załogi
crew_members = [
"Sarah Connor",
"John Smith",
"Maria Garcia",
"Yu Chen"
]
# Etapy misji (niezmienne)
mission_phases = (
"Launch", # Start
"Earth Orbit", # Orbita ziemska
"Transit", # Przelot
"Mars Orbit", # Orbita Marsa
"Landing" # Lądowanie
)
Podsumowanie
Zrozumienie zmiennych i typów danych jest niezbędne dla każdego programisty Pythona. Te podstawy pozwalają efektywnie przechowywać, manipulować i przetwarzać różne rodzaje danych, od prostych obliczeń numerycznych po złożone parametry misji.
W miarę kontynuowania nauki programowania w Pythonie, odkryjesz, że te podstawowe koncepcje służą jako fundamenty dla bardziej zaawansowanych operacji, takich jak złożone obliczenia, przetwarzanie danych i analiza telemetrii.
Photo by frank mckenna on Unsplash
# Liczby całkowite
number_of_planets = 8
satellite_count = 3400
# Liczby zmiennoprzecinkowe
earth_mass = 5.972e24 # kilogramy
spacecraft_velocity = 11.2 # km/s
# Ciągi znaków
mission_name = "Artemis"
spacecraft_status = "Gotowy do startu"
# Wartości logiczne
is_in_orbit = True # Jest na orbicie
engines_active = False # Silniki nieaktywne
# Listy
planet_names = ["Mercury", "Venus", "Earth", "Mars"]
temperatures = [167, 464, 15, -63] # Średnie temperatury w stopniach Celsjusza
# Krotki
earth_coordinates = (0, 0, 0) # współrzędne x, y, z
mission_details = ("Apollo 11", 1969, "Lądowanie na Księżycu")
# Słowniki
planet_data = {
"name": "Mars",
"diameter": 6779, # kilometry
"has_moons": True, # posiada księżyce
"moons": ["Phobos", "Deimos"]
}
# Przykłady konwersji typów
# Konwersja tekstu na liczbę całkowitą
astronaut_count = int("7")
# Konwersja liczby całkowitej na zmiennoprzecinkową
gravity = float(9) # staje się 9.0
# Konwersja liczby na tekst
temperature_reading = str(-63) # staje się "-63"
# Sprawdzanie typów
altitude = 408.0
print(type(altitude)) # Wynik:
mission_name = "SpaceX Crew-3"
print(type(mission_name)) # Wynik:
# Kompletny przykład misji
# Konfiguracja misji
mission_name = "Mars Explorer"
launch_date = "2025-07-20"
crew_size = 4
is_active = True
# Parametry misji
orbital_parameters = {
"altitude": 408.0, # km
"inclination": 51.6, # stopnie
"period": 92.68, # minuty
}
# Lista załogi
crew_members = [
"Sarah Connor",
"John Smith",
"Maria Garcia",
"Yu Chen"
]
# Etapy misji (niezmienne)
mission_phases = (
"Launch", # Start
"Earth Orbit", # Orbita ziemska
"Transit", # Przelot
"Mars Orbit", # Orbita Marsa
"Landing" # Lądowanie
)