Operatory i wyrażenia

Większość instrukcji (logicznych lini), które piszesz będzie zawierać wyrażenia. Przykładem wyrażenia jest 2 + 3. Wyrażenie może być podzielone na operatory (funkcje) i argumenty.

Operatory wykonują pewne działania i mogą być reprezentowane przez symbole takie jak + lub specjalne słowa kluczowe. Operatory wymagają danych do działania a te dane nazywamy argumentami. W naszym przykładzie, 2 i 3 są argumentami.

Operatory

Krótko zapoznamy się z operatorami i ich użyciem.

Zauważ, że możesz obliczyć wyrażenie podan w przykładach używając interaktywnego interpretera. Na przykład, aby przetestować wyrażenie 2 + 3, w interpreterze Pythona wpisz:

>>> 2 + 3
5
>>> 3 * 5
15
>>>

Poniżej znajduje się krótkie omówienie dostępnych operatorów:

  • + (dodawanie)

    • Dodaje dwa obiekty
    • 3 + 5 zwraca 8. 'a' + 'b' zwraca 'ab'.
  • - (odejmowanie)

    • Zwraca wynik odejmowania jednej liczby od drugiej; jeśli pierwszy argument jest nieobecny, domyślnie jest to zero.
    • -5.2 zwraca negatywną liczbę a 50 - 24 zwraca 26.
  • * (mnożenie)

    • Zwraca wynik mnożenia dwóch liczb lub ciag znaków powtórzony wiele razy.
    • 2 * 3 zwraca 6. 'la' * 3 zwraca 'lalala'.
  • ** (potęgowanie)

    • Potęguje x do y
    • 3 ** 4 zwraca 81 (i.e. 3 * 3 * 3 * 3)
  • / (dzielenie)

    • Dzieli x przez y
    • 13 / 3 zwraca 4.333333333333333
  • // (znak dzielenia całkowitego)

    • Dzieli x przez y i zaokrągla wynik w dół do najbliższej liczby całkowitej
    • 13 // 3 zwraca 4
    • -13 // 3 zwraca -5
  • % (modulo)

    • Zwraca resztę z dzielenia
    • 13 % 3 zwraca 1. -25.5 % 2.25 zwraca 1.5.
  • << (przesunięcie bitowe w lewo)

    • Przesuwa bity liczby w lewo o wybraną ilość bitów. (Każda liczba jest reprezentowana w pamięci przez bity np. 0 i 1)
    • 2 << 2 zwraca 8. 2 jest reprezentowane przez 10 w bitach.
    • Przesunięcie w lewo o 2 bity zwraca 1000 co reprezentuje liczbę dziesiętną 8.
  • >> (przesunięcie bitowe w prawo)

    • Przesuwa bity liczby w prawo o wybraną ilość bitów.
    • 11 >> 1 zwraca 5.
    • 11 jest reprezentowane przez 1011 co po przesunieciu w prawo o 1 bit zwraca 101 co jest liczbą dziesiętną 5.
  • & (koniunkcja AND)

    • Koniunkcja AND liczb
    • 5 & 3 zwraca 1.
  • | (alternatywa OR)

    • Alternatywa OR liczb
    • 5 | 3 zwraca 7
  • ^ (alternatywa wykluczająca XOR)

    • Alternatywa wykluczająca XOR liczb
    • 5 ^ 3 zwraca 6
  • ~ (negacja)

  • < (mniejsze niż)

    • Zwraca, czy x jest mniejsze od y. Wszystkie operatory porównująca zwracają True albo False. Zauważ, że zaczynają się od dużej litery.
    • 5 < 3 zwraca False a 3 < 5 zwraca True.
    • Porównywania mogą być dowolnie łączone: 3 < 5 < 7 zwraca True.
  • > (większe niż)

    • Zwraca, czy x jest większe od y
    • 5 > 3 zwraca True. Jeśli oba argumenty są liczbami, są w pierszej kolejności zamieniane na wspólny typ. W przeciwnym wypadku jest zwracane False.
  • <= (mniejsze lub równe)

    • Zwraca, cz x jest mniejsze lub równe od y
    • x = 3; y = 6; x <= y zwraca True
  • >= (większe lub równe)

    • Zwraca, czy x jest większe lub równe od y
    • x = 4; y = 3; x >= 3 zwraca True
  • == (równe)

    • Porównuje czy obiekty są równe
    • x = 2; y = 2; x == y zwraca True
    • x = 'str'; y = 'stR'; x == y zwraca False
    • x = 'str'; y = 'str'; x == y zwraca True
  • != (nie równe)

    • Porównuje czy obiekty nie są równe
    • x = 2; y = 3; x != y zwraca True
  • not (logiczne NOT)

    • Jeśli x to True, zwraca False. Jeśli x to False, zwraca True.
    • x = True; not x zwraca False.
  • and (logiczne AND)

    • x and y zwraca False jeśli x to False, w przeciwnym wypadku zwraca logiczny wartość y
    • x = False; y = True; x and y zwraca False ponieważ x to False. W tym przypadku, Python nie będzie sprawdzał y ponieważ wie, że lewa strona wyrażenia 'and' jest zawsze False co oznacza że całe wyrażenie będzie False niezależnie od innych wartości. To skrócenie ewaluacji jest nazywane w ang. "short-circuit evaluation".
  • or (logiczne OR)

    • Jeśli x to True, zwraca True, w przeciwnym wypadku zwraca logiczną wartość y
    • x = True; y = False; x or y zwraca True. Tutaj również ma zastosowanie skrócenie ewaluacji.

Skrót znaku do operacji matematycznych

Często wykonuje się operacje matematyczne na zmiennych a następnie podstawia się wynik operacji z powrotem do zmiennej, dlatego istnieje skrót dla takich operacji.

a = 2
a = a * 3

może być zapisany jako:

a = 2
a *= 3

Zauważ że zmienna = zmienna instrukcja wyrażenie zmienia się w zmienna instrukcja= wyrażenie.

Kolejność ewaluacji

Jeśli miałeś wyrażenie takie jak 2 + 3 * 4, to na początku jest robione dodawanie czy mnożenie? NAsz matematyka ze szkoły średniej mówi nam że mnożenie. To oznacza że operator mnożenia ma wiekszy priorytet niż operator dodawania.

Poniższa tabelka zawiera tabelę pierwszeństwa dla Pythona, od najniższego priorytetu (najmniej wiążące) do najwyższego priorytetu (najbardziej wiążące). Oznacza to, że w danym wyrażeniu Python najpierw obliczy operatory i wyrażenia niższe w tabeli przed tymi wymienionymi wyżej w tabeli.

Poniższa tabelka, pochodząca z podręcznika Python reference manual, została udostępniona w celu zapewnienia kompletności. Lepiej używać nawiasów do grupowania operatorów i argumentów w celu wyraźnego określenia pierwszeństwa. To sprawia, że program jest bardziej czytelny. Aby uzyskać szczegółowe informacje, zobacz Zmiana kolejności wykonywania.

  • lambda : Wyrażenie lambda
  • if - else : Instrukcje warunkowe
  • or : Operator OR
  • and : Operator AND
  • not x : Operator NOT
  • in, not in, is, is not, <, <=, >, >=, !=, == : Porówywanie, zawiera testy członków i identyfikacji
  • | : Operator bitowy OR
  • ^ : Operator bitowy XOR
  • & : Operator bitowy AND
  • <<, >> : Przesunięcia
  • +, - : Dodawanie i odejmowanie
  • *, /, //, % : Mnożenie, Dzielenie, Dzielenie całkowite i z resztą
  • +x, -x, ~x : Dodatnie, Ujemne, Bitowe NOT
  • ** : Potęgowanie
  • x[index], x[index:index], x(arguments...), x.attribute : Indeksowanie, wycinanie, odwołania, referencje atrybutów
  • (expressions...), [expressions...], {key: value...}, {expressions...} : Krotki, listy, słowniki, sety

Operatory których nie widzieliśmy do tej pory będą omówione w dalszych rozdziałach.

Operatory z tym samym pierszeństwem są wymienione w tym samym wierszu w tabeli powyżej. Na przykład, + i - mają ten sam priorytet.

Zmiana kolejności wykonywania

Aby wyrażenie było czytelniejsze, możemy używać nawiasów. Na przykład 2 + (3 * 4) jest zdecydowanie łatwiejsze do zrozumienia niż 2 + 3 * 4, co wymaga znajomości kolejności wykonywania operatorów. Podobnie jak w przypadku wszystkich innych, nawiasy powinny być używane w uzasadniony sposób (nie przesadzaj) i nie powinny być zbędne, jak w (2 + (3 * 4)).

Jest dodatkowa zaleta w użyciu nawiasów - pomaga nam zmienić kolejność ewaluacji. Na przykład, jeśli chcesz obliczyć dodawanie przed mnożeniem w wyrażeniu, możesz napisać coś takiego jak (2 + 3) * 4.

Łączność

Operatory są zwykle łaczone od lewej do prawej strony. To znaczy, że opeartory z tym samym pierszeństwem są wykonywane od lewej do prawej. Na przykład, 2 + 3 + 4 jest obliczane jako (2 + 3) + 4.

Wyrażenia

Przykład (zapisz jako expression.py):

długość = 5
szerokość = 2

powierzchnia = długość * szerokość
print('Powierzchnia to', powierzchnia)
print('Obwód to', 2 * (długość + szerokość))

Wynik:

$ python expression.py
Powierzchnia is 10
Obwód to 14

Jak to działa

Długość i szerokość prostokąta są zapamiętywane w zmiennych o tej samej nazwie. Używamy ich od obliczenia powierzchni i obwodu prostokątu przy pomocy wyrażeń. Zapisujemy wynik obliczenia wyrażenia długość * szerokość w zmiennej powierzchnia i następnie drukujemy go używając funkcji print. W drugim przypadku, używamy bezpośrednio wartości wyrażenia 2 * (długość + szerokość) w funkcji print.

Zauważ, jak Python drukuje wynik. CHociaż nie określiliśmy spacji pomiędzy 'Powierzchnia to' i zmienną powierzchnia, Python dodaje je tam sam dla nas abyśmy otrzymali ładny wynik i przez to program jest dużo bardziej czytelny (nie musimy się martwić o spacje w ciągach znaków używanych w wyjściu). To jest przykład tego jak PYthon sprawia że życie programisty jest prostsze.

Podsumowanie

Zobaczyliśmy jak używać operatorów, argumentów i wyrażeń - to są podstawowe części każdego programu. Następnie poznamy jak ich używać w naszych programach za pomocą instrukcji.

results matching ""

    No results matching ""