Szybki quiz – przypomnienie poprzedniej lekcji
1. Co zostanie wyświetlone?
print("2024", "01", "15", sep="/")
Odpowiedź
2024/01/15. Parametr sep zmienia separator wstawiany między wartościami (domyślnie jest to spacja).
2. Co zostanie wyświetlone?
print("Loading", end="...")
print("Done!")
Odpowiedź
Odpowiedź: Loading...Done! w jednej linii. Parametr end zastępuje domyślny znak nowej linii (\n).
3. Znajdź błąd w kodzie.
print("Witaj')
Odpowiedź
Odpowiedź: Napis zaczyna się od ", a kończy na '. Cudzysłów otwierający i zamykający muszą być takie same, np. print("Witaj") albo print('Witaj').
4. Co zostanie wyświetlone?
# print("A")
"""
print("X")
"""
print("Y") # print("Z")
Odpowiedź
Odpowiedź: Y. Linia z # jest komentarzem. Tekst w potrójnych cudzysłowach, który nie jest przypisany do zmiennej, Python ignoruje. Fragment po # na końcu ostatniej linii też jest pomijany.
5. Jak według PEP 8 zapiszesz nazwy: a) zmiennej przechowującej imię użytkownika, b) stałej z maksymalną liczbą prób, c) klasy konta użytkownika?
Odpowiedź
Odpowiedź: a) user_name (snake_case), b) MAX_ATTEMPTS (UPPER_CASE), c) UserAccount (PascalCase).
6. Co oznacza znak >>> w interaktywnej konsoli Pythona (REPL) i jak z niej wyjść?
Odpowiedź
Odpowiedź: >>> to prompt, czyli Python czeka na polecenie. Wyjście: exit() lub quit().
JAK DEFINIUJEMY ZMIENNE
Zmienna, to nic innego jak kontener przechowujący w sobie pewną wartość, którą można „podmieniać” w trakcie realizacji skryptu.
Taka wartość zajmuje w pamięci komputera pewne miejsce, a podając nazwę zmiennej dostajemy się do konkretnego obszaru, który ona zajmuje.
Zmienna zmiennej nie jest równa. Inną przestrzeń zajmie liczba, a inną tekst, nie zapominajmy też o tym, że mamy różne rodzaje liczb: całkowite, zmiennoprzecinkowe itd. Więcej o tym w temacie związanym z typami danych.
W celu zdefiniowania zmiennej w Python, należy podać jej nazwę i przypisać jej wartość za pomocą operatora „=”:
name = "Ala"
liczba = 10
gdzie name i liczba to nazwy zmiennych.
Podczas tworzenia nazw zmiennych powinniśmy przestrzegać pewnych zasad:
- nazwa zmiennej nie może rozpoczynać się od cyfry
- nie powinna zawierać polskich znaków
- w nazwie nie umieszczamy spacji
- używamy tylko liter, cyfr i znaków podkreślnika
- rozróżniana jest wielkość liter
Przykład praktyczny
Stwórzmy plik variables.py i przećwiczmy podstawy:
#deklarujemy zmienną
zmienna = "zmienna"
print(zmienna)
#nadpisujemy zmienną
zmienna = 100
print(zmienna)
#wielkość liter jest ważna
Zmienna = "Zmienna"
print("zmienna = ",zmienna)
print("Zmienna = ",Zmienna)
#jak możemy zauważyć wyświetlają się 2 różne wartości
#deklaracja wielu zmiennych na raz
x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
x = y = z = "Orange"
print(x)
print(y)
print(z)
Jak zapewne zauważyliście, w kodzie wykorzystałam operator łączenia „przecinek”. Za jego pomocą do wyświetlanej treści możemy „doklejać” kolejne elementy bez konieczności konwersji typów. Kolejnym sposobem „doklejania” kolejnych elementów jest stosowanie „+”. Taki operator nazywa się operatorek KONKATENACJI
Formatujemy wyświetlanie zmiennych
user = "Kama"
msg = "Witaj USER na mojej stronie"
#chcemy zamiast słowa USER umieścić zawartość zmiennej "user"
"""
Jedną z najbardziej intuicyjnych metod formatowania wyświetlanych danych jest użycie f""
przed napisem umieszczamy literkę "f", a wewnątrz tekstu w {} umieszczamy nazwę zmienej do wyświetlenia
"""
msg = f"Witaj {user} na mojej stronie"
print(msg)
#korzystamy z funkcji .format()
#wewnątrz napisu do wyświetlenia umieszczamy {}, a poza nim używamy funkcji format i podajemy w nawiasie zmienną, która ma sie wyświetlić
msg = "Witaj {} na mojej stronie".format(user)
print(msg)
#korzystamy z %
#wewnątrz napisu do wyświetlenia umieszczamy %, a poza nim wstawiamy % i podajemy nazwę zmiennej, która ma sie wyświetlić
msg = "Witaj %s na mojej stronie" % user
print(msg)
Ćwiczenia praktyczne
1. Korzystając z funkcji print() wydrukuj do konsoli tekst: Ucz się Pythona!
2. Przypisz do zmiennej age wartość 20. Korzystając ze zmiennej age oraz funkcji print() wydrukuj do konsoli tekst: Mam 20 lat.
3. Przypisz dwie zmienne. Pierwsza ma przechowywać nazwę języka Python, druga wersję języka 3.8. Wydrukuj: Uczę się języka Python w wersji 3.8
4. Przypisz do zmiennej price wartość 19.99. Wydrukuj: Towar kosztuje 19.99
5. Odbierz od użytkownika jego imię i wyświetl powitanie: Witaj <imię>! (informacje o tym, jak pobieramy dane od użytkownika znajdziesz w temacie 6.)
6. Przypisz dwie zmienne przechowujące cenę produktu 34.99 PLN (float) oraz wagę produktu 10 kg (int). Wydrukuj: Cena: 34.99 PLN. Waga: 10 kg
7. Zadeklaruj stałą pi = 3.1415926535, używając f-string wydrukuj przybliżenie liczby pi do drugiego miejsca po przecinku: Przybliżenie liczby pi: 3.14
8. Używając trzech funkcji print() wydrukuj:
----------------------------------------
WERSJA: 1.0.1
----------------------------------------
9. Używając czterech funkcji print() wydrukuj:
========================================
autor: jannowak@poczta.com
data: 01-01-2021
========================================
10. Używając funkcji print() oraz argumentu sep ustawionego na znak # wydrukuj: summer#time#holiday
11. Zadeklaruj 2 zmienne. Wyświetl je w konsoli, a następnie zmień ich wartości i wyświetl ponownie.
PODSUMOWANIE
- Zmienna to nazwa wskazująca wartość zapisaną w pamięci. Tworzymy ją przez przypisanie:
nazwa = wartość. Znak=oznacza „przypisz”, a nie „jest równe”. - Ponowne przypisanie nadpisuje poprzednią wartość. W przykładzie z lekcji
zmiennanajpierw przechowuje tekst, a pozmienna = 100liczbę. - Zasady nazw: nie zaczynamy od cyfry, nie używamy spacji ani polskich znaków, stosujemy tylko litery, cyfry i
_. - Wielkość liter ma znaczenie:
zmiennaiZmiennato dwie różne zmienne. - Kilka zmiennych naraz:
x, y, z = "Orange", "Banana", "Cherry"– każda zmienna dostaje inną wartość,x = y = z = "Orange"– wszystkie dostają tę samą wartość.
- Zmienną wstawiamy do wyświetlanego tekstu na kilka sposobów:
- przecinek w
print()– wartości są rozdzielane spacją, bez konwersji typów, +– konkatenacja, czyli łączenie napisów,- f-string –
f"... {zmienna} ...", - metoda
.format()–"... {} ...".format(zmienna), - operator
%–"... %s ..." % zmienna.
- przecinek w
- Zmienna w cudzysłowie to zwykły tekst. Dopiero zapis bez cudzysłowu odwołuje się do wartości zmiennej.
- Nazwy zmiennych piszemy w stylu snake_case (PEP 8, lekcja 2).
Minimum, które powinno wejść w pamięć
Jeżeli masz zapamiętać tylko kilka rzeczy z tej lekcji, zapamiętaj te:
nazwa = wartośćtworzy zmienną, a kolejne przypisanie nadpisuje starą wartość.- Nazwa nie może zaczynać się od cyfry, nie ma spacji, składa się z liter, cyfr i
_. zmienna≠Zmienna, bo wielkość liter ma znaczenie.x, y = 1, 2daje różne wartości, ax = y = 1daje tę samą wartość wszystkim zmiennym.print("x")wyświetla tekstx, aprint(x)wyświetla wartość zmiennejx.- Najwygodniejszy sposób wstawiania zmiennych do tekstu to f-string. Pamiętaj o literze
fprzed cudzysłowem i nawiasach{}wokół nazwy. - Przecinek w
print()wstawia spację i nie wymaga konwersji typów, a+łączy napisy bez spacji. - Nazwy zmiennych piszemy w snake_case (
user_name).
Ściągawka – najważniejsze polecenia i składnia
Tworzenie zmiennych
name = "Ala" # utworzenie
name = "Ola" # nadpisanie
x, y, z = "Orange", "Banana", "Cherry" # różne wartości
x = y = z = "Orange" # ta sama wartość
Zasady nazw
| Zasada | Dobrze | Źle |
|---|---|---|
| nie zaczyna się od cyfry | place_2 | 2place |
| bez spacji | user_name | user name |
tylko litery, cyfry i _ | max_value | max-value |
| wielkość liter ma znaczenie | zmienna ≠ Zmienna |
Wyświetlanie zmiennych (user = "Kama")
| Sposób | Zapis | Wynik |
|---|---|---|
| przecinek | print("Witaj", user) | Witaj Kama |
konkatenacja + | print("Witaj " + user) | Witaj Kama |
| f-string | print(f"Witaj {user}!") | Witaj Kama! |
.format() | print("Witaj {}!".format(user)) | Witaj Kama! |
% | print("Witaj %s!" % user) | Witaj Kama! |
Formatowanie liczby w f-stringu (potrzebne do ćwiczenia 7; lekcja nie wprowadza tego zapisu):
pi = 3.1415926535
print(f"Przybliżenie liczby pi: {pi:.2f}") # Przybliżenie liczby pi: 3.14
:.2f oznacza „2 miejsca po przecinku”.
Przypomnienie z lekcji 2 (przydatne w ćwiczeniach 8–10)
print("a", "b", "c", sep="#") # a#b#c
print("Loading", end="...") # bez przejścia do nowej linii
Typowe błędy
| Błąd | Skutek / poprawka |
|---|---|
2name = "Ala" | nazwa zaczyna się od cyfry, zmień na np. name2 |
Name = "Ala" i potem print(name) | to dwie różne nazwy, wywołujesz zmienną, której nie utworzyłeś |
print("Witaj {user}") | brak f, wyświetli się dosłownie {user} |
print("user") zamiast print(user) | wyświetli się tekst user, a nie wartość zmiennej |
user name = "Ala" | spacja w nazwie |
Quiz – sprawdź się
1. Która nazwa zmiennej jest poprawna?
a) 2liczba b) moja liczba c) moja_liczba d) liczba-1
2. Co zostanie wyświetlone?
x = 5
x = 8
print(x)
3. Dlaczego ten kod nie działa?
Zmienna = "tekst"
print(zmienna)
4. Co zostanie wyświetlone?
a, b = "A", "B"
x = y = "X"
print(a, b, x, y)
5. Znajdź błąd w kodzie i popraw go.
2nd_place = "Ania"
print(2nd_place)
6. Znajdź błąd w kodzie. Dlaczego wynik nie jest zgodny z oczekiwaniem?
user = "Kama"
print("Witaj {user}!")
Oczekiwany wynik: Witaj Kama!
7. Uzupełnij kod, aby wyświetlił Uczę się języka Python w wersji 3.8.
language = "Python"
version = 3.8
print(___"Uczę się języka {language} w wersji {version}")
8. Co zostanie wyświetlone?
name = "Ala"
print("name")
print(name)
9. Jak jedną instrukcją print() wyświetlić summer#time#holiday?
10. Zadanie praktyczne. Przypisz do zmiennej price wartość 19.99 i wyświetl Towar kosztuje 19.99 na dwa różne sposoby.
Odpowiedzi
1. c) moja_liczba. Odpowiedź a) zaczyna się od cyfry, b) ma spację, d) zawiera myślnik, którego nie wolno używać w nazwie.
2. 8. Drugie przypisanie nadpisało wartość 5.
3. Python rozróżnia wielkość liter. Utworzono zmienną Zmienna, a print odwołuje się do zmienna, której nie ma. Poprawka: ujednolić zapis nazwy.
4. A B X X. Przy a, b = "A", "B" każda zmienna dostaje własną wartość, a przy x = y = "X" obie dostają "X". Przecinek w print() rozdziela wartości spacją.
5. Nazwa zmiennej nie może zaczynać się od cyfry. Poprawnie np. second_place = "Ania" albo place_2 = "Ania".
6. Brakuje litery f przed napisem, więc {user} nie jest zamieniane na wartość i wyświetli się Witaj {user}!. Poprawnie: print(f"Witaj {user}!").
7. f – print(f"Uczę się języka {language} w wersji {version}").
8.
name
Ala
"name" w cudzysłowie to zwykły tekst, a name bez cudzysłowu to wartość zmiennej.
9. print("summer", "time", "holiday", sep="#")
10. Przykładowe rozwiązania:
price = 19.99
print("Towar kosztuje", price)
print(f"Towar kosztuje {price}")
Poprawne są też: print("Towar kosztuje {}".format(price)) oraz print("Towar kosztuje %s" % price).