Kolejność wykonywania instrukcji

Kiedy w wyrażeniu występuje więcej niż jeden operator działania, kolejność obliczeń zależy od z góry nadanych im priorytetów. Kolejność wykonywania operacji w Python opiera się na tych samych zasadach obowiązujących w matematyce.

  1. Nawiasy posiadają najwyższy priorytet i mogą być użyte do wymuszenia kolejności obliczeń przez programistę. Dla przykładu wyrażenie 2 * (3-1) równe jest 4, a (1+1)**(5-2) równe 8. Ponadto, nawiasów można użyć dla zwiększenia czytelności zapisu np. (minute * 100) / 60.
  2. Funkcja potęgowania posiada kolejny najwyższy priorytet, więc 2**1+1 równe jest 3, nie 4, a dla 3*1**3 wynik to 3, a nie 27. Czy potrafisz wytłumaczyć dlaczego?
  3. Mnożenie i oba typy dzieleń mają ten sam priorytet, który jest wyższy niż dodawanie i odejmowanie, których priorytety również są równe. Dla przykładu: 2*3-1 wynosi 5 a nie 4; 5-2*2 wynosi 1, a nie 6.
  4. Operatory o tym samym priorytecie obliczane są od lewej do prawej. W operacji 6-3+2, najpierw wykonane jest odejmowanie z wynikiem 3, a następnie dodana jest 2, dając końcowy rezultat 5. Gybyśmy to samo działanie wykonali od prawej do lewej, wynikiem 6-(3+2), byłoby 1.

Informacja

Ze względów historycznych, wyjątkiem od reguły z lewej do prawej jest funkcja potęgująca **. Aby ustrzec się błędów, dobrym nawykiem jest stosowanie nawiasów w celu określenia kolejności obliczeń, w skład których wchodzi potęgowanie:




(ch02_23)

Sprawdź swoją wiedzę

data-9-1: Jaka wartość jest wyświetlana po wywołaniu poniższego wyrażenia:

16 - 2 * 5 // 3 + 1





data-9-2: Jaka wartość jest wyświetlana po wywołaniu poniższego wyrażenia:

2 ** 2 ** 3 * 3





Następna część - Ponowne przydzielenie