Używamy cookies, żeby zwiększyć Twoje doświadczenia na stronie
CodeWorlds

Zmienne - Ścieżki w Dżungli

Witaj ponownie, @name! Darwin tutaj. W pierwszej lekcji nauczyłeś/aś się podstaw Pythona. Teraz czas na kolejny krok - zmienne.

Czym są zmienne?

Wyobraź sobie, że podczas ekspedycji znajdujesz różne przedmioty:

  • Kompas wskazujący kierunek
  • Mapa z zaznaczoną lokalizacją
  • Notatnik z liczbą odkrytych gatunków

Każdy z tych przedmiotów ma nazwę i przechowuje wartość. W Pythonie nazywamy to zmiennymi.

1# Kompas wskazuje na północ
2direction = "North"
3
4# Mapa pokazuje współrzędne
5latitude = -3.4653
6longitude = 29.3608
7
8# Liczymy odkryte gatunki
9species_count = 47
10
11# Czy znaleźliśmy rzadki gatunek?
12rare_species_found = True

Tworzenie zmiennych

W Pythonie tworzenie zmiennej jest proste:

1# Składnia: nazwa_zmiennej = wartość
2
3# Teksty (stringi)
4explorer_name = "Darwin"
5jungle_type = "tropikalna"
6
7# Liczby całkowite (integers)
8team_size = 5
9days_in_jungle = 14
10
11# Liczby zmiennoprzecinkowe (floats)
12temperature = 32.5
13humidity = 78.3
14
15# Wartości logiczne (booleans)
16is_safe = True
17found_water = False

Ważne: Python automatycznie rozpoznaje typ zmiennej! Nie musisz go deklarować.

Nazewnictwo zmiennych - Zasady dżungli

✅ Dozwolone:

1# Snake case (zalecane w Pythonie)
2jungle_temperature = 30
3discovered_species = ["Pyton", "Papuga", "Tygrys"]
4
5# Może zawierać litery, cyfry, podkreślniki
6species_1 = "Python regius"
7species_2 = "Panthera tigris"
8rare_species_2024 = "Nowy gatunek"
9
10# Może zaczynać się od podkreślnika
11_private_notes = "Tajne informacje"
12__hidden_treasure = "Skarb"

❌ Niedozwolone:

1# Nie może zaczynać się od cyfry
2# 1st_species = "Błąd!"  # SyntaxError
3
4# Nie może zawierać spacji
5# jungle temperature = 30  # SyntaxError
6
7# Nie może używać znaków specjalnych
8# species! = "Błąd"  # SyntaxError
9# species@ = "Błąd"  # SyntaxError
10
11# Nie może być słowem kluczowym Pythona
12# if = 5  # SyntaxError
13# for = 10  # SyntaxError
14# def = "tekst"  # SyntaxError

Słowa kluczowe Pythona (zarezerwowane):

1# Tych nazw NIE MOŻESZ używać jako zmiennych:
2False      class      finally    is         return
3None       continue   for        lambda     try
4True       def        from       nonlocal   while
5and        del        global     not        with
6as         elif       if         or         yield
7assert     else       import     pass
8break      except     in         raise

Dobre praktyki nazewnictwa

1# ✅ Opisowe nazwy - od razu wiadomo, co przechowują
2daily_temperature = 32
3discovered_species_count = 15
4expedition_start_date = "2024-11-24"
5
6# ❌ Złe nazwy - niejasne, krótkie
7t = 32  # Co to jest t?
8x = 15  # Co oznacza x?
9d = "2024-11-24"  # Data czego?
10
11# ✅ Snake case (Python style)
12jungle_humidity_level = 80
13
14# ❌ CamelCase (używane w innych językach, ale w Pythonie dla klas)
15jungleHumidityLevel = 80  # Nie dla zmiennych!
16
17# ✅ Długie nazwy są OK, jeśli są opisowe
18number_of_rare_species_discovered_in_2024 = 3  # Jasne!

Wyświetlanie zmiennych

1explorer_name = "Darwin"
2expedition_day = 5
3
4# Zwykły print
5print(explorer_name)  # Darwin
6print(expedition_day)  # 5
7
8# Print z tekstem
9print("Badacz:", explorer_name)  # Badacz: Darwin
10
11# F-string (najlepszy sposób!) - Python 3.6+
12print(f"Witaj, {explorer_name}!")
13# Witaj, Darwin!
14
15print(f"Dzień ekspedycji: {expedition_day}")
16# Dzień ekspedycji: 5
17
18# Złożone f-stringi
19species_found = 12
20days = 3
21print(f"Odkryliśmy {species_found} gatunków w {days} dni!")
22# Odkryliśmy 12 gatunków w 3 dni!

Zmiana wartości zmiennej

Zmienne mogą zmieniać wartość (dlatego się nazywają "zmiennymi"!):

1# Dzień 1 ekspedycji
2species_count = 5
3print(f"Dzień 1: {species_count} gatunków")  # 5
4
5# Dzień 2 - znaleźliśmy więcej
6species_count = 12
7print(f"Dzień 2: {species_count} gatunków")  # 12
8
9# Dzień 3 - dodajemy nowe odkrycia
10species_count = species_count + 7  # 12 + 7 = 19
11print(f"Dzień 3: {species_count} gatunków")  # 19

Wiele zmiennych jednocześnie

Python pozwala na sprytne przypisania:

1# Przypisanie wielu zmiennych w jednej linii
2x, y, z = 10, 20, 30
3print(f"x={x}, y={y}, z={z}")  # x=10, y=20, z=30
4
5# Ta sama wartość dla wielu zmiennych
6a = b = c = 0
7print(f"a={a}, b={b}, c={c}")  # a=0, b=0, c=0
8
9# Zamiana wartości (swap)
10first = "A"
11second = "B"
12print(f"Przed: first={first}, second={second}")  # A, B
13
14first, second = second, first  # Magiczna zamiana!
15print(f"Po: first={first}, second={second}")  # B, A

Input - Zbieranie danych od użytkownika

Czasem potrzebujemy danych od użytkownika:

1# Proste pytanie
2name = input("Jak masz na imię? ")
3print(f"Witaj, {name}!")
4
5# Input ZAWSZE zwraca string (tekst)!
6age_text = input("Ile masz lat? ")
7print(type(age_text))  # <class 'str'>
8
9# Konwersja na liczbę
10age = int(age_text)  # Zmiana string → int
11print(f"Za rok będziesz mieć {age + 1} lat")

WAŻNE: `input()` zawsze zwraca string! Jeśli potrzebujesz liczby, musisz ją przekonwertować.

Praktyczny przykład - Dziennik ekspedycji

1# Program: Dziennik badacza
2print("=== Dziennik Ekspedycji ===")
3
4# Zbieramy dane
5explorer_name = input("Imię badacza: ")
6location = input("Lokalizacja: ")
7species_found = int(input("Ile gatunków odkryłeś/aś dzisiaj? "))
8temperature = float(input("Temperatura (°C): "))
9notes = input("Notatki z dnia: ")
10
11# Wyświetlamy raport
12print("\n--- RAPORT DZIENNY ---")
13print(f"Badacz: {explorer_name}")
14print(f"Lokalizacja: {location}")
15print(f"Odkryte gatunki: {species_found}")
16print(f"Temperatura: {temperature}°C")
17print(f"Notatki: {notes}")
18print("--- KONIEC RAPORTU ---")

Zadanie praktyczne

Spróbuj samodzielnie stworzyć program, który:

  1. Pyta o Twoje imię
  2. Pyta o ulubione zwierzę
  3. Pyta o ulubioną liczbę
  4. Wyświetla: "Cześć {imię}! Twoje ulubione zwierzę to {zwierzę} i ulubiona liczba to {liczba}!"

Podsumowanie

W tej lekcji nauczyłeś/aś się:

  • ✅ Czym są zmienne i jak je tworzyć
  • ✅ Zasad nazewnictwa zmiennych
  • ✅ Wyświetlania zmiennych z `print()` i f-stringami
  • ✅ Zmiany wartości zmiennych
  • ✅ Pobierania danych od użytkownika z `input()`

Checkpoint

Przed przejściem dalej, upewnij się, że:

  • [ ] Potrafisz stworzyć zmienną
  • [ ] Rozumiesz zasady nazewnictwa
  • [ ] Znasz różnicę między `input()` (string) a `int()`, `float()`
  • [ ] Potrafisz użyć f-stringów

W następnej lekcji Darwin pokaże Ci typy danych - jak klasyfikować odkrycia w dżungli! 🌴🐍

Przejdź do CodeWorlds