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

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Klasa II

Wstęp do programowania
w języku 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):


Na początek:  podrozdziału   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ż 23 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.12 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.


Na początek:  podrozdziału   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.12

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:

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.


Na początek:  podrozdziału   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.12.2 (tags/v3.12.2:6abddd9, Feb 6 2024, 21:26:36) [MSC v.1937 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
>>>

Operatory operacji arytmetycznych są następujące:

+  : dodawanie
-  : odejmowanie
*  : mnożenie
/  : dzielenie rzeczywiste
// : dzielenie całkowite

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
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
>>>

Ostatnim operatorem, który opiszemy, jest operator reszty z  dzielenia %, zwany operatorem modulo:

>>> 24 % 5
4
>>> 12 % 10
2
>>>

Reszta z dzielenia jest tym, co zostaje z liczby, po dzieleniu całkowitym. Na przykład: 12 % 7 = 5, ponieważ w 12 liczba 7 mieści się 1 raz i pozostaje reszta 5: 12 - 1 * 7 = 5

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ń:

( )
**
* / // %
+ -

Na początek:  podrozdziału   strony 

Zadania

Oblicz przy pomocy Pythona:


Na początek:  podrozdziału   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 ich wystarczyć.


Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 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.