Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Aktualizacja: 16.01.2025

©2026 mgr Jerzy Wałaszek

Klasa II

Język Python

SPIS TREŚCI

Języki programowania

Język programowania (ang. programming language) umożliwia wydawanie poleceń komputerowi, które ten następnie wykonuje. W pierwszych komputerach stosowano binarne kody instrukcji, które bezpośrednio rozumie komputer. Procesor najpierw pobiera kod instrukcji, a następnie analizuje go i po rozpoznaniu wykonuje pożądaną operację. Na przykład, w jednym z pierwszych komputerów Konrada Zuse program był tworzony na taśmie filmowej w postaci dziurek, które odzwierciedlały binarną postać instrukcji. Zuse wybrał taśmę, ponieważ zawierała perforację (otwory z boku) do jej przesuwu w projektorze.


Taśma filmowa z kodem programu

Dziurka/brak dziurki jest informacją bitową. Rząd takich dziurek tworzył słowo instrukcji binarnej. Komputer Konrada Zuse rozróżniał 16 instrukcji. Gdy liczba instrukcji maszyny cyfrowej rosła, a same instrukcje stawały się coraz bardziej skomplikowane, wymyślono język asemblera (ang. assembler language). Zamiast binarnych kodów instrukcji w języku asemblera stosuje się ich nazwy symboliczne (jak ADD, SUB, JMP). Dzięki temu łatwiej je zapamiętać, a i sam program staje się dużo prostszy.

 Asembler           Kod binarny
START: LDA #"Z
LOOP:  STA $INOUT
       DEC
       JMP #LOOP
       END
 
0001010001011010
0010100000000000
1001000000000000
1010010000000010
0000000000000000

Procesor rozumie tylko i wyłącznie swój kod binarny. Dlatego tworząc programy w asemblerze musimy je kompilować, czyli zamieniać na postać binarną. Konwersji takiej dokonuje program, który również nazywamy asemblerem. Pierwszy program asemblera musiał jednak być napisany bezpośrednio w  kodzie binarnym.

Asembler daje programiście dostęp do wszystkich składników komputera. Jednakże tworzenie programu jest bardzo żmudne, ponieważ każdą operację należy rozbijać na poszczególne instrukcje procesora. Np. sprawdzenie, czy komórki o etykietach L1L2 (etykieta to nazwa obszaru pamięci, w którym jest jakaś informacja, np. liczba lub instrukcja do  wykonania - dzięki etykietom programista nie musiał podawać adresów liczbowych) są sobie równe, wymaga kilku instrukcji procesora:

 Asembler
LDA $L1    ; pobierz komórkę L1
SUB $L2    ; odejmij od niej komórkę L2
JZR #ROWNE ; jeśli wynik zero, skocz do ROWNE
...        ; jeśli nie, jesteś tutaj

Czyż nie byłoby lepiej zapisać tak?:

Jakiś język programowania
JEŚLI L1 = L2, TO ...
INACZEJ ...

I tak dochodzimy do koncepcji języków wysokiego poziomu – HLL (ang. High Level Language). Asembler, a  tym bardziej kod binarny instrukcji procesora, to języki niskiego poziomu –  LLL (ang. Low Level Language), które operują bezpośrednio na zasobach komputera: na procesorze, pamięci, rejestrach wejścia/wyjścia. Aby w nich efektywnie programować, programista musi posiadać dużą wiedzę na temat budowy komputera oraz urządzeń towarzyszących. Również musi dokładnie wiedzieć, w jaki sposób realizować złożone polecenia. Pomyłki w kodzie są trudne do wyłapania. Wszystko to  powoduje, że chociaż asembler jest bardzo potężnym narzędziem, to jednak jest również bardzo trudny w opanowaniu i mało efektywny przy dużych projektach. Dzisiaj w asemblerze tworzone są tylko fragmenty programów, które muszą być naprawdę szybkie i efektywne.

Język wysokiego poziomu oddala się od sprzętu komputera i pozwala tworzyć bardziej abstrakcyjne konstrukcje, które zbliżone są do pojęć matematycznych. Dzięki temu programista może dużo szybciej pisać złożone programy, niż jest to możliwe w asemblerze. Wszystkie języki wysokiego poziomu muszą być przetwarzane na postać binarną (nie dotyczy to języków interpretowanych, tzw. skryptowych, np. PYTHON, o których dowiemy się później). Konwersję taką wykonuje program zwany kompilatorem (ang. compiler).

Pierwsze języki wysokiego poziomu zaczęły się pojawiać po II Wojnie Światowej. Wcześniej stosowano kody binarne oraz asemblery. Poniżej podajemy chronologiczną listę najważniejszych języków programowania (niech cię nie przeraża ich liczba):


do podrozdziału  do strony 

Python

Czym jest Python?

Guido Van Rossum Biography - Facts, Childhood, Family Life & Achievements
Guido van Rossum

Python jest językiem programowania, który zdobywa obecnie coraz większą popularność wśród programistów. Stworzył go Guido van Rossum i udostępnił w roku 1991, zatem Python ma już 33 lata. Nazwa Python pochodzi od nazwy grupy komików brytyjskich Monty Python.

Program tworzony przez programistę jest wykonywany bezpośrednio przez interpreter, czyli program tłumaczący. Interpreter odczytuje kolejne wiersze programu i rozpoznaje zawarte w nich instrukcje. Następnie interpreter wykonuje te instrukcje przez wywołanie odpowiednich procedur zawartych w bibliotekach interpretera. W  efekcie program Pythona można uruchomić tuż po napisaniu.

Używany jest do:

Co może robić Python?

Dlaczego Python?

Co warto wiedzieć?

Najnowsza wersja Pythona ma obecnie numer 3.13 i pracuje w  systemach Windows 10 i 11. System Windows 7 wymaga wersji Pythona 3.8. Wszystkie te wersje są ze sobą w dużym stopniu kompatybilne i doskonale nadają się do nauki programowania.

Pierwsze programy będziemy pisać i uruchamiać w prostym edytorze IDLE zawartym w dystrybucji Pythona. Później można tworzyć programy w bardziej zaawansowanych środowiskach programowania, takich jak Thonny, Pycharm, Netbeans lub Eclipse, które są  szczególnie użyteczne przy dużych projektach.

Składnia Pythona w porównaniu ze składniami innych języków programowania.


do podrozdziału  do strony 

Instalacja oprogramowania

Zanim będziesz mógł programować w języku Python, musisz zainstalować odpowiedni dla twojego komputera interpreter Pythona.

Jeśli twój komputer pracuje pod systemem Windows 7 lub 8, to  pobierz ten instalator:

Python 3.8

Dla systemów Windows 10 i 11 pobierz ten instalator

Python 3.13

W drugim przypadku możesz przejść do strony https://www.python.org/, wybrać zakładkę Downloads i samemu pobrać instalator najnowszej wersji Pythona.

Po załadowaniu instalatora, uruchom go jako administrator (opis dotyczy wersji 3.12, jednakże proces instalacji niczym nie różni się od wersji 3.13):

W okienku, które się pojawi zaznacz na spodzie obie opcje i kliknij w Install Now. Instalacja się rozpocznie.

Instalacja zajmuje nieco czasu w zależności od szybkości twojego komputera. Czekaj cierpliwie, aż pojawi się okienko końcowe:

Kliknij w przycisk Close, aby zakończyć pracę instalatora.


do podrozdziału  do strony 

Tryb interaktywny

Język Python jest językiem interpretowanym. Oznacza to, iż wiersze programu trafiają do specjalnej aplikacji zwanej interpreterem. Interpreter analizuje otrzymany wiersz i, jeśli nie zawiera on  błędów, wykonuje określone przez ten wiersz operacje. Na początek uruchomimy konsolę Pythona.

Kliknij lupkę na pasku zadań (w Window 7 kliknij w przycisk Start) i wpisz:

py

Polecenie to uruchamia tzw. konsolę Pythona, czyli okienko tekstowe, w którym możesz wpisywać różne rozkazy języka Python. Służy ono głównie do celów testowych. W okienku pojawi się tekst:

Python 3.13.1 (tags/v3.13.1:0671451, Dec 3 2024, 19:06:28) [MSC v.1942 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>

W ostatnim wierszu trzy znaki >>> oznaczają oczekiwanie na  rozkaz. Wpisz liczbę 5:

>>> 5
5
>>>

Python w odpowiedzi wypisał tę liczbę: wynikiem 5 jest po prostu 5. Wpiszmy teraz jakąś operację arytmetyczną, np.:

>>> 5+7
12
>>>

Teraz Python obliczył wynik i wypisał go. Masz zatem prosty kalkulator:

>>> 3 - 5
-2
>>> 7 * 4
28
>>> 12 / 4
3.0
>>>

Zwróć uwagę na ostatni wynik: 3.0. W Pythonie mamy dwa rodzaje liczb: całkowite i rzeczywiste. Jeśli w zapisie liczby pojawi się kropka, to liczba jest rzeczywista i może przyjmować wartości ułamkowe:

>>> 2.5 + 1
3.5
>>> 4.25 - 2.75
1.5
>>> 33.7 * 8.2
276.34
>>>

Operator dzielenia / zawsze daje wynik rzeczywisty, dlatego otrzymaliśmy 3.0, czyli liczbę rzeczywistą. Istnieje również operator dzielenia całkowitego //:

>>> 12 // 4
3
>>> 25 // 10
2
>>>

Jeśli jesteśmy przy dzieleniu całkowitym, to poznajmy jeszcze jeden operator: % - reszta z dzielenia. Operacja taka nosi nazwę modulo. Reszta z dzielenia to to, co pozostaje po dzieleniu całkowitym, np:

10 // 3 = 3
10 % 3 = 1

3 mieści się 3 razy w 10 i zostaje reszta 1:

12 // 4 = 3
12 % 4 = 0

4 mieści się 3 razy w 12 i zostaje reszta 0. Reszta zero powstaje zawsze, gdy dana liczba dzieli inną całkowitą liczbę razy.

Operatory operacji arytmetycznych są następujące:

+  : dodawanie
-  : odejmowanie
*  : mnożenie
/  : dzielenie rzeczywiste
// : dzielenie całkowite
%  : reszta z dzielenia całkowitego

W wyrażeniu może wystąpić wiele operatorów operacji arytmetycznych:

>>> 3 * 2 + 5 // 3
7
>>> 5 * 5 * 5 * 5
625
>>>

Operacje wykonywane są w kolejności:

mnożenia / dzielenia i reszty
dodawania / odejmowania

3 * 2 + 5 // 3
  6   +    1
      7

Jeśli potrzebujesz innej kolejności, to stosujesz nawiasy ( ):

>>> 5 * (4 + 3) // (4 - 1)
11
>>>

Wyrażenie w nawiasach jest obliczane w pierwszej kolejności:

5 * (4 + 3) // (4 - 1)
5 *    7    //    3
  35        //    3
            11

Python posiada operator potęgowania **:

>>> 2 ** 3
8
>>> 3 ** 75
608266787713357709119683992618861307
>>>

W pytonie liczba całkowita może być dowolnie duża (istnieje ograniczenie do 4300 cyfr, ale zakres ten można powiększać). O liczbach pomówimy dokładniej na  dalszych lekcjach.

Operator potęgowania ** pozwala nam obliczać pierwiastki (pierwiastek jest potęgą ułamkową 1 / n, gdzie n to stopień pierwiastka):

>>> 2 ** 0.5
1.4142135623730951
>>>

liczba ** 0.5 lub liczba ** (1 / 2) = pierwiastek kwadratowy z liczba
liczba ** (1 / 3) = pierwiastek sześcienny z liczba
liczba ** 0.25 lub liczba ** (1 / 4) = pierwiastek czwartego stopnia z liczba
...

W wyrażeniu 5 ** (1 / 3) (pierwiastek sześcienny z 5) nawiasy przy (1 / 3) są konieczne, gdyż operacja potęgowania ** posiada wyższy priorytet (ważność) od operacji +, -, *, /// i %; bez nawiasów komputer obliczyłby:

5 ** 1 / 3
  5    / 3
       1.6666...

>>> 5 ** 1 / 3
1.6666666666666667
>>> 5 ** (1 / 3)
1.7099759466766968
>>>

Pracę z konsolą Pythona kończysz przez naciśnięcie klawiszy Ctrl+ZEnter lub wpisanie polecenia exit().


Podsumowanie

Operatory arytmetyczne:

+  dodawanie
-  odejmowanie
*  mnożenie
/  dzielenie rzeczywiste
// dzielenie całkowite
%  reszta z dzielenia
** potęgowanie

Kolejność działań:

( )
**
* / // %
+ -

do podrozdziału  do strony 

Zadania

Oblicz przy pomocy Pythona:


do podrozdziału  do strony 

Pierwszy program

Program w języku Python jest plikiem tekstowym i można go utworzyć w dowolnym edytorze tekstu, jednakże lepiej do tego celu stosować odpowiednie środowisko programowania (ang. IDE - Integrated Development Environment).  Standardowa dystrybucja Pythona zawiera takie środowisko. Jest to program o nazwie IDLE - Integrated Development and Learning Environment - Zintegrowane Środowisko do Projektowania i Nauki.

Tworzenie pierwszego programu w języku Python

Zaczniemy od przygotowania katalogu na program. Postępuj wg wskazówek nauczyciela i utwórz na swoim komputerze katalog p001 w swoim katalogu klasowym.

Następnie kliknij lupkę na pasku zadań i wpisz idle:

System powinien wyszukać aplikację IDLE. Uruchom ją. W zależności od ustawień IDLE może się otworzyć w trybie konsoli Pythona lub w trybie edytora. Jeśli chcemy pisać program, a nie wykonywać interaktywnie polecenia Pythona, to powinniśmy przejść do trybu edytora. Naciśnij Ctrl+N. To otwiera okno edytora, w którym można pisać program.

Pierwszy program tradycyjnie wita się z użytkownikiem. W Pythonie robi się to bardzo prosto. Wpisz w edytorze:

print("Witaj w środowisku języka Python!")

Program jest uruchamiany z dysku, zatem jeśli chcemy uruchomić nasz program, musimy go sobie zapisać na dysk.

Naciśnij Ctrl+S. W okienku zapisu wejdź do katalogu, który utworzyłeś poprzednio, zmień nazwę pliku na witaj.py – skrypty Pythona mają standardowo rozszerzenie py. Na koniec kliknij przycisk Zapisz lub wciśnij klawisz Enter.

Gdy plik zostanie zapisany, możemy go uruchomić bezpośrednio z edytora. Naciśnij klawisz F5. Jeśli plik nie zawiera błędu, to w konsoli Pythona pojawi się tekst:

Witaj w środowisku języka Python!

Jeśli są błędy, poproś o pomoc nauczyciela - na błędach też się można uczyć.

Teraz przeanalizujmy nasz "program".

W języku Python program składa się z wierszy, w których umieszczamy instrukcje do wykonania przez komputer. Nasz program składa się z jednego wiersza, w którym wpisaliśmy:

print("Witaj w środowisku języka Python!")

Słowo print oznacza tzw. funkcję lub procedurę, która drukuje tekst w oknie konsoli. Za słowem print znajdują się nawiasy (...). W nawiasach tych umieszczamy informację, którą funkcja print ma wydrukować. Tutaj informacją tą jest tekst umieszczony w cudzysłowach. Teksty umieszczamy albo w cudzysłowach (np. "Ania"), albo w apostrofach (np. 'Ania'). Cudzysłowy i apostrofy obejmują tekst, który zostanie przekazany do print jako parametr, z którym print ma coś zrobić: tutaj ma wydrukować ten tekst.

Dopisz do programu następną instrukcję print, która wydrukuje podkreślenie:

print("Witaj w środowisku języka Python!")
print('---------------------------------')

Zauważ, iż tutaj do ograniczania tekstu zostały użyte apostrofy. Zapisz program na dysk (Ctrl+S), a następnie uruchom go (F5).

Do programu dodamy teraz tzw. komentarze. Komentarz jest dowolnym tekstem, który umieszczamy po znaku #. Komentarz obowiązuje od tego znaku do końca wiersza. Komentarze są użyteczne do wpisywania różnych uwag i wyjaśnień, będziemy z nich często korzystać w programach.

Przejdź w edytorze na początek programu przed print(..., naciśnij klawisz Enter, aby otrzymać pusty wiersz, po czym wprowadź do niego komentarz:

# Program nr 001
print("Witaj w środowisku języka Python!")
print('---------------------------------')

Wciśnij Enter i w drugim wierszu wpisz następny komentarz z dzisiejszą datą:

# Program nr 001
# 11.03.2024
print("Witaj w środowisku języka Python!")
print('---------------------------------')

Przejdź na koniec ostatniego wiersza, wciśnij Enter i dopisz polecenie:

# Program nr 001
# 4.02.2024
print("Witaj w środowisku języka Python!")
print('---------------------------------')
input("Naciśnij Enter...")

Funkcja input(...) wyświetla tekst przesłany w parametrze i czeka, aż użytkownik coś wpisze i wciśnie klawisz Enter. Jest to przydatne wtedy, gdy chcemy wstrzymać program, aż do reakcji użytkownika. Więcej o input(...) powiemy na następnej lekcji.

Zapisz program na dysk i uruchom go ponownie (F5). Komentarze są ignorowane i nie wpływają na sposób wykonania programu. W oknie konsoli pojawi się tekst:

Witaj w środowisku języka Python!
---------------------------------
Naciśnij Enter...

Pierwszy program jest gotowy.

Uruchamianie programów Pythona

Program możesz uruchamiać bezpośrednio w aplikacji IDLE. Plik w edytorze należy zapisać na dysku, po czym naciskasz klawisz F5 i zapisany program zostanie uruchomiony w konsoli Pythona.

Innym sposobem jest wykorzystanie Eksploratora plików. Ikona tej aplikacji ma postać żółtej teczki i znajduje się na pasku zadań:

Uruchom Eksplorator plików i przejdź do katalogu, w którym zapisałeś swój program. Powinieneś zobaczyć ikonę pliku programu. Kliknij w nią dwukrotnie lewym przyciskiem myszki. Program uruchomi się w okienku konsoli Pythona.

Uwaga: Jeśli na końcu programu nie wstawiłeś funkcji input(...), to program zakończy działanie i okienko konsoli natychmiast zniknie.

Kolejnym sposobem uruchamiania programów Pythona jest wykorzystanie konsoli znakowej Windows. Naciśnij klawisze Window+R (klawisz Window to klawisz z okienkiem z lewej strony u dołu klawiatury). Na ekranie pojawi się okienko uruchamiania. Wpisz w nim nazwę cmd i naciśnij Enter:

cmd to tzw. Interpreter Poleceń (ang. Command Interpreter). Program ten wyświetla okno konsoli i oczekuje na polecenia użytkownika wpisane z klawiatury. Najpierw musisz przejść do swojego katalogu z programem. Pomocne tutaj mogą być dwa polecenia:

cd (ang. change directory) : zmiana bieżącego katalogu
dir (ang. directory) : wyświetlenie zawartości bieżącego katalogu

Postępuj zgodnie ze wskazówkami nauczyciela.

Gdy przejdziesz do katalogu z programem witaj.py, wpisz polecenie: python witaj.py. Program zostanie uruchomiony i w oknie konsoli zobaczysz wypisywany przez niego tekst:

D:\python\p001>python witaj.py
Witaj w środowisku języka Python!
---------------------------------
Naciśnij Enter...

Polecenie to uruchamia interpreter języka Python i przekazuje do niego program witaj.py. To nie wyczerpuje wszystkich możliwości uruchamiania programu w języku Python, jednak na razie nam powinno wystarczyć.


do podrozdziału  do strony 

Instrukcje print(...) i input(...)

Instrukcja print(...) pozwala wyświetlać różne informacje. Uruchom poniższy program:

# Program napisy.py demonstruje użycie
# cudzysłowów w łańcuchach znaków

print("Program 'napisy.py' wyświetla")
print("ciekawego", "rodzaju", "napis,")
print("wykorzystując",
"własności",
"tekstów.")
print("Oto", end=" ")
print("on...")
print(
"""
-----------------------------------------
####  ##### #   # #      ###  #   #  ###
#   # #     #  #  #     #   # ## ## #   #
####  ####  ###   #     ##### # # # #####
#   # #     #  #  #     #   # #   # #   #
#   # ##### #   # ##### #   # #   # #   #
-----------------------------------------
"""
)
input("\n\nNaciśnij Enter...")

Przeanalizujmy ważniejsze elementy tego programu:

# ...
Komentarz, zawiera dowolny tekst, który jest ignorowany przez interpreter Pythona. Komentarz rozpoczyna się za znakiem # i kończy wraz z końcem wiersza. Edytor wyświetla komentarze w oddzielnym kolorze.
print(...)
Instrukcja wyświetla to, co otrzymuje jako parametry. Parametry nie są obowiązkowe. Pusta instrukcja print() wyświetla wiersz pusty.
"...(')..."
Obejmuje tekst, który może zawierać apostrofy.
'...(")...'
Obejmuje tekst, który może zawierać cudzysłowy.
print("...", "...", ...)
W jednej instrukcji print(...) może być kilka parametrów rozdzielonych przecinkami. Na wydruku zostaną one rozdzielone spacjami.
print("...",
"...",
...)
Parametry instrukcji można umieszczać w osobnych wierszach. Ostatni parametr należy zakończyć nawiasem zamykającym instrukcji print. Parametry wciąż należy rozdzielać przecinkami.
print(..., end=" ")
Domyślnie instrukcja print(...) wyświetla swe parametry w jednym wierszu i kończy wyświetlanie przejściem do następnego wiersza. Jeśli na końcu wstawimy end="...", to po wyświetleniu informacji zostanie wyświetlony tekst umieszczony za end= i nie nastąpi automatyczne przejście do nowego wiersza. Pozwala to wyświetlać w jednym wierszu dane z kilku kolejnych instrukcji print.
""" ...
... """
''' ...
...'''
Trzy cudzysłowy (trzy apostrofy) pozwalają objąć tekst zbudowany z kilku wierszy.
".../n..."
'.../n...'
Znaki /n są traktowane jako jedna całość. Jest to tzw. znak sterujący nowego wiersza (ang. newline control character). Powoduje on zakończenie wyświetlania bieżącego wiersza i przejście na początek następnego.
input("...")
input('...')
Instrukcja input(...) wyświetla tekst otrzymany w parametrze, a następnie odczytuje znaki wprowadzone przez użytkownika z klawiatury komputera i zwraca je jako wiersz tekstu, gdy użytkownik po ich wprowadzeniu naciśnie klawisz Enter. Tutaj wprowadzony tekst zostanie zignorowany. Zadaniem tej instrukcji jest wstrzymanie zakończenia programu aż do momentu, gdy użytkownik naciśnie klawisz Enter. Parametr input() można pominąć, wtedy instrukcja nic nie wyświetli, będzie jedynie odczytywała wprowadzany tekst do momentu naciśnięcia klawisza Enter.

do podrozdziału  do strony 

Zmienna

W języku Python zmienna jest obiektem, który wskazuje informację przetwarzaną przez komputer. Zmienne posiadają nazwy, poprzez które program odwołuje się do wskazywanej informacji. Nazwa zmiennej składa się z dużych i małych liter (również polskich, lecz lepiej ich unikać), znaku podkreślenia oraz cyfr. Cyfra nie może być pierwszym znakiem nazwy zmiennej. Duże i małe litery są rozróżniane. Nazwa zmiennej powinna być prosta oraz informować o wskazywanym przez zmienną obiekcie.

Poprawne nazwy:

a, b, x, y
a12, c125, xy3
adres, imie, nazwisko, wynik

Należy unikać nazw:

miś_Uszatek_lubi_miodek_z_rana_i_z_wieczora - za długa!
miś Uszatek lubi miodek - zawiera spacje!
12_litrów - cyfry na początku nazwy!
l - litera "l" zbyt przypomina cyfrę 1!
Rqsx678nj43 - trudna i nic nie mówi!

W programie każda zmienna musi zostać zdefiniowana, zanim będzie można jej użyć. definicja zmiennej wygląda następująco:

nazwa_zmiennej = wyrażenie

Komputer oblicza wartość wyrażenia i wynik umieszcza w pamięci, następnie tworzy zmienną o podanej nazwie (jeśli taka zmienna jeszcze nie została utworzona) i umieszcza w niej odwołanie do miejsca w pamięci, w którym jest umieszczony wynik. Znak równości "=" jest tzw. operatorem przypisania (operator to element wykonujący jakąś operację, np. operator "+" wykonuje dodawanie). Operator przypisania przypisuje wartość do zmiennej.

Przykład:

a = 1200 - 300

Komputer wylicza wartość wyrażenia 1200 - 300 = 900, tworzy w swojej pamięci miejsce na wynik, umieszcza w nim liczbę 900, tworzy zmienną o nazwie a, na koniec umieszcza w tej zmiennej adres miejsca z liczbą 900. Od tego momentu zmienna a zachowuje się tak, jakby była liczbą 900. Uruchom program:

# Zmienne w Pythonie
#-------------------

a = 1200 - 300
print(a)

W wyniku otrzymasz:


900
 

Termin zmienna oznacza, iż w programie zmienna może zmieniać swoją zawartość. Uruchom:

# Zmienne w Pythonie
#-------------------

a = 1200 - 300
print(a)
a += 1
print(a)

Teraz otrzymasz:


900
901
 

Instrukcja print( ) wyświetla wartość przypisaną zmiennej, tzn. to, co zmienna wskazuje. Pierwsza wartość 900 odnosi się do wyniku wyrażenia 1200 - 300, który komputer wyliczył najpierw. Następnie operator "+=" zwiększa tę wartość o 1. Wynik tego zwiększenia zostaje zapisany w nowym miejscu w pamięci i jego adres trafia do zmiennej a. Teraz zmienna a wskazuje wartość 901. Poprzednie 900 nie jest już potrzebne, zatem Python usuwa je z pamięci, czyli sprząta śmieci. Druga instrukcja print( ) ponownie wyświetla to, na co wskazuje zmienna a, lecz tym razem jest to nowa wartość 901.

W Pythonie zmienna może wskazywać dowolny obiekt. Istnieje specjalna funkcja type(zmienna), która zwraca nam informację o typie wskazywanych przez zmienną danych. Uruchom program:

# Zmienne w Pythonie
#-------------------

a = "Alicja"
print(a,type(a))

Zostanie wyświetlony wiersz tekstu:


Alicja <class 'str'>
 

Tekst "Alicja" jest obiektem, na który wskazuje zmienna a. Kolejny napis jest wynikiem zwróconym przez funkcję type(a). Informuje on o typie obiektu wskazywanego przez zmienną a. Słowo class oznacza tu obiekt, Język Python jest językiem obiektowym. Słowo 'str' jest skrótem angielskiego słowa string, które oznacza tu ciąg znaków, czyli tekst. A zatem zmienna a wskazuje tekst.

Dopisz do programu kolejne dwie instrukcje i uruchom go:

# Zmienne w Pythonie
#-------------------

a = "Alicja"
print(a,type(a))
a = 1250
print(a,type(a))

Wynikiem będą dwa wiersze:


Alicja <class 'str'>
1250 <class 'int'>
 

Pierwszy wiersz jest taki sam jak poprzednio i odnosi się on do sytuacji, gdy zmienna a wskazuje tekst "Alicja". Następnie program przypisuje zmiennej a wartość 1250. Tutaj funkcja type(a) zwróci: <class 'int'>. Słowo class oznacza obiekt, a 'int' pochodzi od angielskiego integer, czyli liczba całkowita. Dopisz do programu kolejne dwie instrukcje i uruchom go:

# Zmienne w Pythonie
#-------------------

a = "Alicja"
print(a,type(a))
a = 1250
print(a,type(a))
a = 3.1415
print(a,type(a))

Wynikiem będą trzy wiersze:


Alicja <class 'str'>
1250 <class 'int'>
3.1415 <class 'float'>
 

Za trzecim razem przypisujemy zmiennej a liczbę 3.1415 (fragment liczby π). Tym razem wynikiem funkcji type(a) jest <class 'float'>. Słowo float pochodzi od angielskiego floating point number (liczba zmiennoprzecinkowa, czyli liczba rzeczywista, która może mieć wartość ułamkową, zatem nie jest liczbą całkowitą).

Wynika z tego co następuje: w języku Python zmienne tworzymy przez przypisanie za pomocą operatora przypisania "=". Zmienna może wskazywać różnego rodzaju obiekty w pamięci. Informację o rodzaju obiektu wskazywanego przez zmienną otrzymujemy przy pomocy funkcji type(zmienna):

Informację możemy przypisywać do zmiennych przy pomocy funkcji input( ). Przypomnijmy, input( ) odczytuje tekst wprowadzany przez użytkownika przy pomocy klawiatury. Naciskane klawisze są zapamiętywane do momentu naciśnięcia klawisza Enter. Wtedy zapamiętany tekst funkcja input( ) zwraca jako wynik. Tekst ten komputer może zapamiętać i przypisać zmiennej. Uruchom poniższy program:

# Zmienne w Pythonie
#-------------------

imie = input("Jak masz na imię? ")
print("Witaj,",imie,"!")

Jak masz na imię? Kazio
Witaj, Kazio !
 

Program odczytuje tekst z klawiatury za pomocą funkcji input( ). Do funkcji można przesłać w parametrze krótki tekst, który zostanie wyświetlony, po czym funkcja odczytuje tekst z klawiatury aż do momentu naciśnięcia klawisza Enter. Wtedy odczytany tekst zostaje zwrócony jako wynik funkcji input( ). Tekst ten komputer zapamiętuje w pamięci, a następnie operator "=" tworzy zmienną imię i umieszcza w niej adres obszaru przechowującego odczytany tekst. W ten sposób zmienna imię staje się równoważna ze wskazywanym tekstem. Instrukcja print( ) wyświetla powitanie wraz z tekstem wskazanym przez zmienną imię.

Kolejny program oblicza pole i obwód prostokąta. Wzory poznałeś na matematyce:

a                     
     
             
pole = a · b
obwód = 2(a + b)
  b  

Wpisz i uruchom program:

# Zmienne w Pythonie
#-------------------

print("Pole i obwód prostokąta")
print("-----------------------")
a = input("bok a = ")
b = input("bok b = ")
pole = a * b
obwod = 2 * (a + b)
print("pole  :", pole)
print("obwod :", obwód)

Otrzymasz:

Pole i obwód prostokąta
-----------------------
bok a = 10
bok b = 20
Traceback (most recent call last):
  File "F:\prj\python\p001\001.py", line 8, in <module>
    pole = a * b
           ~~^~~
TypeError: can't multiply sequence by non-int of type 'str'

Jeśli na wydruku pojawi się czerwony tekst zamiast wyniku, to znaczy to, iż wystąpił błąd. W przedostatnim wierszu Python pokazuje ci instrukcję, w której doszło do błędu. Tutaj jest to instrukcja:

pole = a * b

czyli przy wyliczaniu pola. W ostatnim wierszu znajduje się informacja o rodzaju błędu:

TypeError: can't multiply sequence by non-int of type 'str'
Błąd typu: nie można mnożyć tekstu przez inny tekst

Błąd ten spowodowany był tym, iż funkcja input( ) zwraca tekst, czyli ciąg znaków, nawet jeżeli wprowadzisz liczbę. Np. 20 zostanie zwrócone jako tekst złożony z dwóch cyfr '2' i '0'. Tekst nie jest liczbą, dlatego Python nie wie jak wykonać mnożenie tekst razy tekst. Tekst należy najpierw zmienić w liczbę. Załóżmy, że wystarczają nam liczby całkowite. Użyjemy funkcji int(tekst), która zmienia zapis liczby całkowitej (np. '2' '0') w wartość całkowitą. W tym celu zmodyfikuj program:

# Zmienne w Pythonie
#-------------------

print("Pole i obwód prostokąta")
print("-----------------------")
a = int(input("bok a = "))
b = int(input("bok b = "))
pole = a * b
obwód = 2 * (a + b)
print("pole  :", pole)
print("obwód :", obwód)
Pole i obwód prostokąta
-----------------------
bok a = 10
bok b = 20
pole  : 200
obwód : 60

Uruchom ponownie program i jako długość boku a wpisz 10.5:

Pole i obwód prostokąta
-----------------------
bok a = 10.5
Traceback (most recent call last):
  File "F:\prj\python\p001\001.py", line 6, in <module>
    a = int(input("bok a = "))
ValueError: invalid literal for int() with base 10: '10.5'

Znów pojawił się czerwony tekst błędu. W przedostatnim wierszu mamy instrukcję, w której wystąpił błąd:

a = int(input("bok a = "))

Czyli przy odczycie długości boku a.

Ostatni wiersz opisuje ten błąd:

ValueError: invalid literal for int() with base 10: '10.5'
Błąd wartości: zły tekst dla funkcji int(): '10.5'

Błąd ten oznacza, iż otrzymany tekst w funkcji int( ) nie przedstawia liczby całkowitej. Zapis 10.5 oznacza liczbę rzeczywistą. Zatem funkcja int( ) nie może przekształcić tego zapisu w wartość całkowitą. Aby wszystko zaczęło należycie pracować, musimy zmienić funkcję int( ) na float( ). Funkcja float( ) zamienia zapis tekstowy liczby rzeczywistej w wartość rzeczywistą:

# Zmienne w Pythonie
#-------------------

print("Pole i obwód prostokąta")
print("-----------------------")
a = float(input("bok a = "))
b = float(input("bok b = "))
pole = a * b
obwód = 2 * (a + b)
print("pole  :", pole)
print("obwód :", obwód)
Pole i obwód prostokąta
-----------------------
bok a = 10.5
bok b = 20.4
pole : 214.2
obwód : 61.8

Teraz wszystko działa prawidłowo. Pamiętaj, aby liczby rzeczywiste wprowadzać z kropką jako przecinek dziesiętny. Jest to standardowy zapis anglosaski.


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.