Ćwiczenie: liczymy na kartce to, co policzy Python
Rozgrzewka · 3 minuty
Co pamiętacie z lekcji 1?
Czym jest kod źródłowy i kto go wykonuje?
Co robi funkcja print i dlaczego nazywamy ją instrukcją wyjścia?
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.
Kod
Na ekranie
Dlaczego
print("Ala", "ma", 2, "koty")
Ala ma 2 koty
argumenty rozdziela spacja
print("Ala", "Ola", sep=", ")
Ala, Ola
sep zamienia spację na przecinek ze spacją
print("Ala", end="") print("Ola")
AlaOla
end="" 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.
Typ
Co przechowuje
Przykład
Z życia
int
liczby całkowite
age = 16
liczba uczniów, wiek, punkty
float
liczby z częścią ułamkową
price = 4.99
cena, waga, temperatura
str
napisy, w cudzysłowie
name = "Ola"
imię, adres, wiadomość
bool
prawda albo fałsz
adult = False
zaliczone 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ę.
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
Operator
Nazwa
Przykład
Wynik
+
dodawanie
7 + 2
9
-
odejmowanie
7 - 2
5
*
mnożenie
7 * 2
14
/
dzielenie
7 / 2
3.5
//
dzielenie całkowite
7 // 2
3
%
reszta z dzielenia
7 % 2
1
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.
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
Zapisz, co wypisze każdy print z programu po prawej i jakiego typu jest wynik.
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.
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
Dlaczego liczbę wpisaną z klawiatury trzeba przepuścić przez int, zanim się ją doda?
Czym różnią się wyniki 7 / 2, 7 // 2 i 7 % 2?
Co robi jeden znak =, a co dwa znaki ==?
Podsumowanie
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
int(input())
Formularz na stronie sprawdza, czy w polu „wiek” jest liczba, zanim cokolwiek policzy
codziennie
% reszta z dzielenia
Co druga linia tabeli w innym kolorze: numer wiersza % 2; „co 15 minut”: minuta % 15 == 0
codziennie
// dzielenie całkowite
Przeliczanie sekund na minuty i sekundy: 125 // 60 to 2 minuty, 125 % 60 to 5 sekund
codziennie
Typy danych
Cena w sklepie internetowym nie jest float, tylko liczbą groszy w int, żeby 0.1 + 0.2 nie dało 0.30000000000000004