← Lekcje
Python · lekcja 02

Zmienne i typy danych

  1. Zmienna i funkcja print: cztery linijki programu
  2. Typy danych: liczba całkowita, ułamek, napis
  3. Operatory: + − * / % // oraz porównania
  4. Ćwiczenie: liczymy na kartce to, co policzy Python
Rozgrzewka · 3 minuty

Co pamiętacie z lekcji 1?

  1. Czym jest kod źródłowy i kto go wykonuje?
  2. Co robi funkcja print i dlaczego nazywamy ją instrukcją wyjścia?
  3. Co trzeba wpisać w nawiasie, żeby print wypisał słowo Ola?
Część 1 · Program Powitanie

Cztery linijki, linijka po linijce

1. print("Podaj swoje imię:")
2. name = input()
3.
4. print(name, "uczy się programowania.")
  • 1. print wyświetla tekst na ekranie: instrukcja wyjścia. To, co w nawiasie, to argument.
  • 2. name to zmienna. Znak = to przypisanie: „zapamiętaj”. input czeka na to, co wpiszecie: instrukcja wejścia.
  • 3. Pusta, dla czytelności. 4. print wypisuje wartość zmiennej i tekst, rozdzielone spacją.

Nazwy zmiennych: po angielsku, małymi literami, słowa łączone podkreśleniem, bez polskich liter: total_price, nie totalPrice. Tak zaleca PEP 8, przewodnik stylu Pythona.

Podręcznik Informatyka na czasie 2, s. 96 (program Powitanie) · nazwy: peps.python.org/pep-0008, Naming Conventions
Część 1 · Funkcja print

print: jeden nawias, wiele rzeczy

Funkcja print przyjmuje w nawiasie dowolnie wiele argumentów oddzielonych przecinkami i wypisuje je w jednej linii. Ma też dwa parametry, czyli ustawienia podawane po nazwie.

KodNa ekranieDlaczego
print("Ala", "ma", 2, "koty")Ala ma 2 kotyargumenty rozdziela spacja
print("Ala", "Ola", sep=", ")Ala, Olasep zamienia spację na przecinek ze spacją
print("Ala", end="")
print("Ola")
AlaOlaend="" nie kończy linii, drugi print pisze dalej

Domyślnie sep to jedna spacja, a end to przejście do nowej linii. Dlatego zwykły print pisze każdy wynik w osobnej linii.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 96 (funkcja print, argument) i s. 225 (dodatek 7, przykład z end="") · docs.python.org, wbudowana funkcja print (parametry sep i end)
Część 2 · Typy danych

Trzy typy na start

Typ mówi, co wolno zrobić z wartością: liczby się dodaje, napisy skleja. O typie zmiennej decyduje wartość, którą jej przypiszecie.

TypCo przechowujePrzykładZ życia
intliczby całkowiteage = 16liczba uczniów, wiek, punkty
floatliczby z częścią ułamkowąprice = 4.99cena, waga, temperatura
strnapisy, w cudzysłowiename = "Ola"imię, adres, wiadomość
boolprawda albo fałszadult = Falsezaliczone czy nie, włączone czy wyłączone

Zapisy 2 i 2.0 to dwa różne typy: pierwszy to int, drugi float, bo ma część ułamkową. Napisy zapisujemy w cudzysłowie "..." albo apostrofach '...'.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 94 (zasada: o typie decyduje wartość) i s. 223 (dodatek 6 „Typy danych w języku Python”: int, float, bool, str)
Część 2 · Liczba czy napis

Funkcja int(): liczba, nie tekst

Funkcja input zawsze oddaje napis, czyli ciąg znaków. Napisy Python skleja, a nie dodaje. Funkcja int (od angielskiego integer, liczba całkowita) zamienia napis na liczbę.

Bez int(): to napisy ania_apples = input() "4" + "5" wynik: "45" Z int(): to liczby ania_apples = int(input()) 4 + 5 wynik: 9

Typ mówi, co wolno zrobić z wartością: int to liczby całkowite (4), str to napisy ("ABC"). Zapisy 4 i "4" to dwie różne rzeczy.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 99 (funkcja int, ramka „Warto wiedzieć”) i s. 223 (dodatek 6 „Typy danych w języku Python”)
Część 3 · Operatory arytmetyczne

Sześć działań: dwa z nich są nowe

OperatorNazwaPrzykładWynik
+dodawanie7 + 29
-odejmowanie7 - 25
*mnożenie7 * 214
/dzielenie7 / 23.5
//dzielenie całkowite7 // 23
%reszta z dzielenia7 % 21

Jabłka: 7 jabłek dla 2 osób. Każda dostaje 7 // 2, czyli 3, a 7 % 2, czyli 1 jabłko, zostaje w koszyku. Wynik / to zawsze float: 6 / 2 daje 3.0.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 227 (dodatek 8 „Operatory i funkcje matematyczne”, tabela operatorów arytmetycznych)
Część 3 · Porównania

Warunek to pytanie z odpowiedzią tak albo nie

Warunek po if to zdanie, które jest albo prawdziwe, albo fałszywe: „9 < 15” jest prawdziwe, „20 < 15” fałszywe. Python porównuje tymi samymi znakami co matematyka, tylko zapisanymi po swojemu.

matematyka Python matematyka Python = == != > > < < >= <=

Skąd nazwa: angielski matematyk George Boole pokazał w 1854 roku, że na prawdzie i fałszu da się liczyć jak na liczbach. Dlatego typ z dwiema wartościami nazywa się w Pythonie bool.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 220–221 (dodatek 5, zdania logiczne, operatory porównań) · ciekawostka: pl.wikipedia.org/wiki/George_Boole
Część 3 · Po co porównania

Program, który sam decyduje

print("Aniu, ile masz jabłek?")
ania_apples = int(input())
print("Wojtku, ile masz jabłek?")
wojtek_apples = int(input())

total_apples = ania_apples + wojtek_apples
if total_apples < 15:
    print("Jabłek jest za mało na szarlotkę.")
else:
    print("Jabłek wystarczy na szarlotkę.")

Porównanie total_apples < 15 jest prawdą albo fałszem. Słowo if („jeśli”) wybiera drogę: przy prawdzie wykonuje się blok z wcięciem pod if, przy fałszu blok pod else („w przeciwnym razie”). Nigdy oba.

Dla 4 i 5 jabłek: 9 < 15 to prawda, program pisze „za mało”. Dla 8 i 9: 17 < 15 to fałsz, program pisze „wystarczy”.

Podręcznik Informatyka na czasie 2 (Nowa Era), s. 98–99 (program Szarlotka, instrukcja warunkowa)
Ćwiczenie · na kartce · 12 minut

Ćwiczenie: policz to, co policzy Python

  1. Zapisz, co wypisze każdy print z programu po prawej i jakiego typu jest wynik.
  2. Rozstrzygnij, czy każde porównanie jest prawdą (True) czy fałszem (False): a) 7 > 4, b) 4 == 4.0, c) 10 % 3 == 1, d) 9 // 2 < 4.
  3. Napisz trzy linijki: zmienna z Twoim imieniem, zmienna z wiekiem i jeden print, który wypisze „… ma … lat”. Podpisz typ każdej zmiennej.
1. a = 10
2. b = 4
3. print(a + 2)
4. print(a / b)
5. print(a // b)
6. print(a % b)
7. print(a * b)
Podręcznik Informatyka na czasie 2 (Nowa Era), s. 223 (dodatek 6, typy) i s. 227 (dodatek 8, operatory) w wersji papierowej
Sprawdzenie

Trzy pytania na koniec

  1. Dlaczego liczbę wpisaną z klawiatury trzeba przepuścić przez int, zanim się ją doda?
  2. Czym różnią się wyniki 7 / 2, 7 // 2 i 7 % 2?
  3. Co robi jeden znak =, a co dwa znaki ==?
Podsumowanie

A jak to wygląda w produkcji?

Na lekcjiW produkcjiStatus
int(input())Formularz na stronie sprawdza, czy w polu „wiek” jest liczba, zanim cokolwiek policzycodziennie
% reszta z dzieleniaCo druga linia tabeli w innym kolorze: numer wiersza % 2; „co 15 minut”: minuta % 15 == 0codziennie
// dzielenie całkowitePrzeliczanie sekund na minuty i sekundy: 125 // 60 to 2 minuty, 125 % 60 to 5 sekundcodziennie
Typy danychCena w sklepie internetowym nie jest float, tylko liczbą groszy w int, żeby 0.1 + 0.2 nie dało 0.30000000000000004standard w firmach