Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Wyrażenia (ang. expressions) to konstrukcje pozwalające przetwarzać informacje w języku Python. W programowaniu mówimy przede wszystkim o wyrażeniach matematycznych, które służą obliczeniom (jak dodawanie czy mnożenie) oraz logicznych, które zwracają wartość Prawda/Fałsz. Musimy również pamiętać o priorytecie operatorów.

Priorytet operatorów określa, jak należy interpretować wyrażenia w języku Python. Wyrażenie przetwarzane jest od lewej do prawej strony (oprócz potęgowania, które grupowane jest od prawej do lewej), z zachowaniem reguł matematyki, a więc w kolejności: nawiasy, potęgowanie, pierwiastkowanie, mnożenie, dzielenie itd.

Poniżej znajdziesz wykaz wybranych operatorów wykorzystywanych do budowania wyrażeń w języku Python 3 (im niżej dany operator znajduje się na liście, tym wyższy ma priorytet; wyjątkiem są operatory relacyjne, które mają taki sam priorytet).

Przykłady operatorów arytmetycznych:

Przykład

Opis

x + y

dodawanie

x - y

odejmowanie

x * y

mnożenie

x / y

dzielenie rzeczywiste

x // y

dzielenie całkowite

x % y

reszta z dzielenia całkowitego (operacja modulo)

x ** y

potęgowanie

Przykłady operatorów relacji:

Przykład

Opis

x < y, x > y

operatory porównania mniejszy/większy

x <= y, x >= y

operatory porównania mniejszy/większy lub równy

x == y, x != y

operatory równości i nierówności zawartości

x in y, x not in y

przynależność obiektów

Przykład

Opis

operatory porównania

x < y

mniejszy

x > y

większy

x <= y

mniejszy lub równy

x >= y

większy lub równy

operatory równości i nierówności zawartości

x == y

operator równości zawartości

operator nierówności zawartości

przynależność obiektów

x in y

x należy do y

x not in y

x nie należy do y

Ważne!

W języku Python wszystkie operacje porównań mają taki sam priorytet, który jest niższy od priorytetu wszystkich operacji arytmetycznych.

Przykłady operatorów logicznych:

Przykład

Opis

x or y

logiczne OR

and y

logiczne AND

not x

logiczna negacja

Dla zainteresowanych

Istnieje jeszcze tzw. trójargumentowe wyrażenie wyboru, które pozwala na sprawdzanie pewnych warunków w analogiczny sposób jak w konstrukcji instrukcji warunkowej, lecz zapisywane jest w jednej linii programu. Czasami takie rozwiązanie ma swoje zalety. Sprawdź na konkretnym przykładzie, jak działa w praktyce (zachęcamy do samodzielnych prób):

Linia 1. Python 3 kropka 8 kropka 10 otwórz nawias okrągły default przecinek Jun 2 2021 przecinek 10 dwukropek 49 dwukropek 15 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 9 kropka 4 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny wiek znak równości 18. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny dorosly znak równości True if wiek znak równości znak równości 18 else cudzysłów Jeszcze nie cudzysłów. Linia 6. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny print otwórz nawias okrągły dorosly zamknij nawias okrągły. Linia 7. True. Linia 8. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny wiek znak równości 17. Linia 9. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny dorosly znak równości True if wiek znak równości znak równości 18 else cudzysłów Jeszcze nie cudzysłów. Linia 10. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny print otwórz nawias okrągły dorosly zamknij nawias okrągły. Linia 11. Jeszcze nie. Linia 12. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.
Dla zainteresowanych

W języku Python istnieją także inne operatory, których będziemy używać w kolejnych e‑materiałach.

Przykład

Opis

lambda argumenty: wyrażenie

generator funkcji anonimowej

x[i]

indeksowanie

x[i:j]

wycinki

x.wlasciwosc

odwołanie do właściwości obiektu

Oto przykład wykorzystania różnych operatorów w środowisku IDLE dla różnych obiektów:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny portfel znak równości 13500. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny portfel zamknij nawias ostrokątny znak równości 10000. Linia 6. True. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny imie znak równości apostrof Adam apostrof. Linia 8. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny skarbonka znak równości 1345 kropka 26. Linia 9. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 1 znak równości otwórz nawias kwadratowy 1 przecinek 34 przecinek 35 zamknij nawias kwadratowy. Linia 10. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 2 znak równości otwórz nawias kwadratowy 1 przecinek 34 przecinek 35 zamknij nawias kwadratowy. Linia 11. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 3 znak równości lista podkreślnik 1. Linia 12. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny. Linia 13. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 1 znak równości znak równości lista podkreślnik 2. Linia 14. True. Linia 15. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 1 is lista podkreślnik 2. Linia 16. False. Linia 17. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny lista podkreślnik 1 is lista podkreślnik 3. Linia 18. True. Linia 19. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny imie zamknij nawias ostrokątny skarbonka. Linia 20. Traceback otwórz nawias okrągły most recent call last zamknij nawias okrągły dwukropek. Linia 21. File cudzysłów otwórz nawias ostrokątny pyshell kratka 18 zamknij nawias ostrokątny cudzysłów przecinek line 1 przecinek in otwórz nawias ostrokątny module zamknij nawias ostrokątny. Linia 22. imie zamknij nawias ostrokątny skarbonka. Linia 23. TypeError dwukropek apostrof zamknij nawias ostrokątny apostrof not supported between instances of apostrof str apostrof and apostrof float apostrof. Linia 24. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.
Ważne!

Język Python operuje silnymi typami danych – związane z nimi operacje są dokładnie sprawdzane. I tak np. porównanie nie zawsze jest możliwe: dla obiektów o różnych typach może wystąpić błąd TypeError: '>' not supported between instances of 'str' and 'float'.

Polecenie 1

Wykonaj kilka operacji porównywania wartości stałych lub zmiennych oraz kilka operacji arytmetycznych na różnych typach danych.

R1LamhnVZP6no
Wymyśl pytanie na kartkówkę związane z tematem materiału.
kolejność działań bez nawiasów
Reguła: kolejność działań bez nawiasów

Wyrażenia bez nawiasów wykonywane są według priorytetów operatorów – np. wyrażenie
Q ** 4 + 3 * 5 / 3 - 1
możemy zapisać w następujący sposób:
((Q ** 4) + (3 * 5/3)) - 1.

kolejność działań z nawiasami
Reguła: kolejność działań z nawiasami

Nawiasy zmieniają kolejność wykonywania działań - np. wyrażenie
(Q ** 4 + 3 * 5/(3 - 1))
zostanie uproszczone do postaci
(Q ** 4 + 7,5),
ponieważ
(3 - 1)
zapisane jest w nawiasie, a zatem zostanie obliczone przed wykonaniem dzielenia.

Oto przykład w środowisku IDLE:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny Q znak równości 3. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny Q asterysk asterysk 4 plus 3 asterysk 5 prawy ukośnik 3 minus 1. Linia 6. 85 kropka 0. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny kratka teraz wyrażenie z użyciem nawiasów. Linia 8. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny Q asterysk asterysk 4 plus 3 asterysk 5 prawy ukośnik otwórz nawias okrągły 3 minus 1 zamknij nawias okrągły. Linia 9. 88 kropka 5. Linia 10. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.

W języku Python typy danych są konwertowanekonwersjakonwertowane. Opiszemy to na przykładzie dodawania dwóch różnych typów liczbowych, np. int + float. Kolejność operacji w języku Python będzie następująca:

  • obiekt typu int zostanie zamieniony na typ float

  • wykonane zostanie dodawanie dwóch obiektów tego samego typu float

  • wynikiem będzie liczba typu float.

Oto przykład w środowisku IDLE.

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny obiekt podkreślnik 1 znak równości 30. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny type otwórz nawias okrągły obiekt podkreślnik 1 zamknij nawias okrągły. Linia 6. otwórz nawias ostrokątny class apostrof int apostrof zamknij nawias ostrokątny. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny obiekt podkreślnik 2 znak równości 3 kropka 14. Linia 8. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny type otwórz nawias okrągły obiekt podkreślnik 2 zamknij nawias okrągły. Linia 9. otwórz nawias ostrokątny class apostrof float apostrof zamknij nawias ostrokątny. Linia 10. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny obiekt podkreślnik 3 znak równości obiekt podkreślnik 1 plus obiekt podkreślnik 2. Linia 11. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny obiekt podkreślnik 3. Linia 12. 33 kropka 14. Linia 13. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny type otwórz nawias okrągły obiekt podkreślnik 3 zamknij nawias okrągły. Linia 14. otwórz nawias ostrokątny class apostrof float apostrof zamknij nawias ostrokątny. Linia 15. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.

W języku Python istnieje możliwość wygenerowania elementów listy poprzez zapisanie specyficznego kodu – jest to tzw. wyrażenie listowe. Jego ogólna postać wygląda następująco (if warunek jest opcjonalny):

Linia 1. otwórz nawias kwadratowy wyrażenie for wyraz in sekwencja otwórz nawias kwadratowy if warunek zamknij nawias kwadratowy zamknij nawias kwadratowy.

Oto przykład wykonania takiego wyrażania listowego w środowisku IDLE – tworzymy listę kwadratów liczb naturalnych z przedziału <0,9>:

Linia 1. Python 3 kropka 6 kropka 7 otwórz nawias okrągły default przecinek Oct 22 2018 przecinek 11 dwukropek 32 dwukropek 17 zamknij nawias okrągły. Linia 2. otwórz nawias kwadratowy GCC 8 kropka 2 kropka 0 zamknij nawias kwadratowy on linux. Linia 3. Type cudzysłów help cudzysłów przecinek cudzysłów copyright cudzysłów przecinek cudzysłów credits cudzysłów or cudzysłów license otwórz nawias okrągły zamknij nawias okrągły cudzysłów for more information kropka. Linia 4. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny kwadraty znak równości otwórz nawias kwadratowy x asterysk asterysk 2 for x in range otwórz nawias okrągły 10 zamknij nawias okrągły zamknij nawias kwadratowy. Linia 5. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny kwadraty. Linia 6. otwórz nawias kwadratowy 0 przecinek 1 przecinek 4 przecinek 9 przecinek 16 przecinek 25 przecinek 36 przecinek 49 przecinek 64 przecinek 81 zamknij nawias kwadratowy. Linia 7. zamknij nawias ostrokątny zamknij nawias ostrokątny zamknij nawias ostrokątny.
Polecenie 2

Dla x należącego do przedziału 0,14 wygeneruj opisane poniżej listy. Przyjmij, że x jest liczbą całkowitą.

  1. (x + 3)Indeks górny 2  3,

  2. (2 + x)  3,

  3. 2 + x  3.

Moduły w języku Python

Polecenie importimport modułuimport umożliwia rozszerzenie programu o funkcje zawarte w zewnętrznych modułach. Mogą to być gotowe moduły dostępne w bazie Python Package Index lub napisane przez programistę fragmenty kodu. Przykładowo moduł math zawiera takie funkcje matematyczne, jak sinus, pierwiastek kwadratowy, a także wartości stałe, np. stałą e lub pi.

Polecenie 3

Użyj polecenia import math – spowoduje to zaimportowanieimport modułuzaimportowanie modułu zawierającego funkcje podobne do tych, którymi dysponuje kalkulator oraz niektóre stałe matematyczne. Następnie sprawdź zawartość tego modułu za pomocą polecenia dir(math) i wykonaj help(math.sqrt) oraz help(math.pi).

Przykłady modułów standardowych, dostępnych po instalacji języka Python:

Nazwa

Opis

math

funkcje matematyczne

turtle

operacje grafiki żółwia LOGO

json

moduł wymiany danych

pickle

moduł zapisywania wartości zmiennych w plikach

Przykłady modułów dostępnych z Python Package IndexPython Package IndexPython Package Index:

Nazwa

Opis

pandas

obliczenia statystyczne

pysimplegui

moduł do szybkiego tworzenia aplikacji GUI

pytechbrain

obsługa mikrokontrolerów Arduino

Ciekawostka

W języku Python dostępna jest ogromna baza gotowych modułów — ponad 100 tys. projektów. Wszystkie możemy przeglądać na stronie Python Package Index.

Słownik

import modułu
import modułu

moduł to plik zawierający definicje funkcji i stałych w języku Python; wykonanie polecenia import modul powoduje dostęp do nich z poziomu głównego skryptu

inspektor obiektów
inspektor obiektów

w środowisku PyCharm element umożliwiający podgląd w czasie rzeczywistym obiektów, ich wartości oraz typu

konwersja
konwersja

zmiana typu wartości obiektu (np. z str na int czy z float na str), w języku Python wykonywana poprzez skopiowanie wartości do innego obiektu

Python Package Index
Python Package Index

(w skrócie zapisywane jako PyPI) repozytorium dodatkowych modułów dla języka Python; instalujemy je, korzystając z mechanizmu pip