Witaj ponownie w obozie, @name! Darwin tutaj z kolejną lekcją z naszej ekspedycji.
Każdy dobry badacz musi umieć klasyfikować swoje odkrycia. W Pythonie dane również mają różne "gatunki" - nazywamy je typami danych.
W dżungli spotykamy różne formy życia - zwierzęta, rośliny, owady. Podobnie w Pythonie mamy różne typy danych:
1# Liczby całkowite - jak liczba odkrytych gatunków
2species_count = 42
3expedition_day = 7
4team_members = 5
5
6# Mogą być ujemne
7temperature_drop = -5
8depth_below_sea = -100
9
10# Python 3 obsługuje bardzo duże liczby!
11huge_number = 9999999999999999999991# Liczby z częścią dziesiętną
2temperature = 32.5
3humidity = 78.3
4distance_km = 15.7
5
6# Notacja naukowa
7speed_of_light = 3e8 # 3 * 10^8 = 300000000
8tiny_number = 1.5e-10 # 0.000000000151# Tekst w cudzysłowach pojedynczych lub podwójnych
2explorer_name = "Darwin"
3location = 'Amazonia'
4
5# Multi-line stringi (potrójne cudzysłowy)
6description = """
7To jest dłuższy opis
8obejmujący wiele linii
9tekstu.
10"""
11
12# Escape characters
13message = "Darwin powiedział: "Eksplorujmy!""
14path = "C:\\Users\\Darwin\\jungle" # Windows path
15
16# Raw string (ignoruje escape)
17path_raw = r"C:\Users\Darwin\jungle"1# Tylko dwie wartości: True lub False
2is_dangerous = True
3found_water = False
4is_raining = True
5
6# Wynik porównania to bool
7temperature = 35
8is_hot = temperature > 30 # True
9
10age = 15
11is_adult = age >= 18 # False1# Funkcja type() pokazuje typ zmiennej
2species_count = 42
3print(type(species_count)) # <class 'int'>
4
5temperature = 32.5
6print(type(temperature)) # <class 'float'>
7
8name = "Darwin"
9print(type(name)) # <class 'str'>
10
11is_safe = True
12print(type(is_safe)) # <class 'bool'>
13
14# Praktyczne użycie
15data = 42
16if type(data) == int:
17 print("To jest liczba całkowita!")Czasem musimy zmienić typ danych - jak tłumaczenie między językami:
1# String → Int
2age_text = "25"
3age = int(age_text)
4print(age + 5) # 30
5
6# String → Float
7temperature_text = "32.5"
8temperature = float(temperature_text)
9print(temperature + 2.5) # 35.0
10
11# UWAGA! Błąd jeśli string nie jest liczbą
12# bad_conversion = int("abc") # ValueError!1# Int → String
2species_count = 42
3count_text = str(species_count)
4print("Odkryto " + count_text + " gatunki") # Konkatenacja stringów
5
6# Float → String
7temperature = 32.5
8temp_text = str(temperature)
9message = f"Temperatura: {temp_text}°C"1# Int → Float
2whole_number = 10
3decimal_number = float(whole_number) # 10.0
4
5# Float → Int (obcina część dziesiętną!)
6decimal = 15.7
7whole = int(decimal) # 15 (NIE 16!)
8
9decimal2 = 15.2
10whole2 = int(decimal2) # 151# Liczby → Bool
2# 0 = False, wszystkie inne = True
3print(bool(0)) # False
4print(bool(1)) # True
5print(bool(-5)) # True
6print(bool(100)) # True
7
8# String → Bool
9# Pusty string = False, niepusty = True
10print(bool("")) # False
11print(bool("Darwin")) # True
12print(bool(" ")) # True (spacja to znak!)
13
14# Bool → Int
15print(int(True)) # 1
16print(int(False)) # 01# Podstawowe operacje
2a = 10
3b = 3
4
5print(a + b) # 13 (dodawanie)
6print(a - b) # 7 (odejmowanie)
7print(a * b) # 30 (mnożenie)
8print(a / b) # 3.333... (dzielenie - ZAWSZE float!)
9print(a // b) # 3 (dzielenie całkowite)
10print(a % b) # 1 (reszta z dzielenia - modulo)
11print(a ** b) # 1000 (potęgowanie: 10^3)
12
13# Operacje na floatach
14x = 5.5
15y = 2.5
16print(x + y) # 8.0
17print(x * y) # 13.75
18
19# Mieszanie int i float → wynik to float
20mixed = 10 + 5.5 # 15.5 (float)1# Konkatenacja (łączenie)
2first_name = "Charles"
3last_name = "Darwin"
4full_name = first_name + " " + last_name
5print(full_name) # Charles Darwin
6
7# Powtarzanie
8jungle_cry = "Help! " * 3
9print(jungle_cry) # Help! Help! Help!
10
11# Długość stringu
12name = "Darwin"
13print(len(name)) # 6
14
15# Indeksowanie (od 0!)
16text = "Python"
17print(text[0]) # P
18print(text[1]) # y
19print(text[-1]) # n (ostatni znak)
20
21# Slicing (wycinanie)
22word = "Expedition"
23print(word[0:4]) # Expe
24print(word[4:]) # dition
25print(word[:4]) # Expe
26print(word[::2]) # Eeiio (co drugi znak)`None` to specjalna wartość oznaczająca "brak wartości":
1# None - jak puste pudełko
2treasure = None
3print(treasure) # None
4print(type(treasure)) # <class 'NoneType'>
5
6# Użycie w praktyce
7def find_species(name):
8 if name == "Python regius":
9 return "Znaleziono!"
10 return None # Nie znaleziono
11
12result = find_species("Unknown")
13if result is None:
14 print("Gatunek nieznany")1print("=== Kalkulator Ekspedycji ===\n")
2
3# Zbieramy dane
4distance_text = input("Dystans (km): ")
5time_text = input("Czas (godziny): ")
6team_size_text = input("Rozmiar zespołu: ")
7
8# Konwertujemy na odpowiednie typy
9distance = float(distance_text)
10time = float(time_text)
11team_size = int(team_size_text)
12
13# Obliczenia
14avg_speed = distance / time
15distance_per_person = distance / team_size
16
17# Wyświetlamy wyniki
18print("\n--- WYNIKI ---")
19print(f"Średnia prędkość: {avg_speed:.2f} km/h")
20print(f"Dystans na osobę: {distance_per_person:.2f} km")
21print(f"Typ distance: {type(distance)}")
22print(f"Typ team_size: {type(team_size)}")Stwórz program, który:
W tej lekcji nauczyłeś/aś się:
Przed przejściem dalej:
W następnej lekcji Darwin pokaże Ci operatory - narzędzia matematyczne i logiczne badacza! 🔧🌴