10. Operators

10.1. General operators

10.2. Numerical types operators

Tab. 10.1. Numerical types operators
Operand Description
-x x negacja
+x x bez zmiany
x + y suma x i y
x - y różnica x i y
x * y iloczyn x i y
x / y iloraz x i y
x ** y x do potęgi y
x // y ilość całych z dzielenia x przez y
x % y reszta z dzielenia x przez y
divmod(x, y) para (ile_calych, reszta) (x // y, x % y)
abs(x) wartość bezwzględna x
int(x) x przekonwertowane do int
float(x) x przekonwertowane do float
round(x, y) x zaokrąglenie liczby z precyzją y
complex(re, im) liczba zespolona: re - część rzeczywista, im - część urojona

10.3. Bitwise operators

  • | - OR
  • & - AND
  • ~ - NOT
  • ^ - XOR
  • << - Shift left
  • >> - Shift right
0 ^ 0  # 0
1 ^ 1  # 0
1 ^ 0  # 1
0 ^ 1  # 1
8 ^ 5  # 13
1000  # 8 (binary)
0101  # 3 (binary)
----  # APPLY XOR ('vertically')
1101  # result = 13 (dec)

10.4. Operator precedence

Tab. 10.2. Operator precedence
Operator Description
lambda Lambda expression
if, elif, else Conditional expression
and Boolean AND
or Boolean OR
not x Boolean NOT

in, not in, is, is not,

<, <=, >, >=, !=, ==

Comparisons, including membership tests and identity tests
| Bitwise OR
^ Bitwise XOR
& Bitwise AND
<<, >> Shifts
** Exponentiation
*, @, /, //, % Multiplication, matrix multiplication, division, floor division, remainder
+, - Addition and subtraction
+x, -x, ~x Positive, negative, bitwise NOT
await Await expression

x[index], x[index:index],

x(arguments...), x.attribute

Subscription, slicing, call, attribute reference

(expressions...), [expressions...],

{key: value...}, {expressions...}

Binding or tuple display, list display, dictionary display, set display

10.5. Assignments

10.5.1. Even and odd numbers

  1. Napisz program, który wczyta od użytkownika ciąg znaków
  2. Użytkownik poda tylko int lub float dowolnej długości
  3. Liczby float rzutuj na int
  4. Sprawdź czy jest to liczba parzysta, czy nieparzysta
About:
  • Filename: operators_even_odd.py
  • Lines of code to write: 5 lines
  • Estimated time of completion: 5 min
The whys and wherefores:
 
  • wczytywanie ciągu znaków od użytkownika
  • weryfikacja ciągu wprowadzonego od użytkownika
  • konwersja typów i rzutowanie
  • wykorzystanie operatorów matematycznych
Hints:
  • Zero jest parzyste: https://en.wikipedia.org/wiki/Parity_of_zero
  • Liczba parzysta, to taka, która po podzieleniu przez dwa nie ma reszty
  • Użyj dzielenia modulo %
  • Zwróć uwagę, że operator % działa modulo tylko na int oraz na float. Przy str ma zupełnie inne znaczenie.

10.5.2. Integers and floats

  1. Wczytaj liczbę od użytkownika (poda tylko int albo float)
  2. Wyświetl informację czy jest to liczba całkowita, czy niecałkowita.
About:
  • Filename: operators_integers.py
  • Lines of code to write: 7 lines
  • Estimated time of completion: 10 min
The whys and wherefores:
 
  • wczytywanie ciągu znaków od użytkownika
  • weryfikacja ciągu wprowadzonego od użytkownika
  • konwersja typów i rzutowanie
Hints:
  • Liczba całkowita to taka, której część dziesiętna nie występuje lub jest równa zero.
  • Możesz to sprawdzić dzieląc liczbę z resztą przez 1 i sprawdzając resztę z dzielenia.
  • Zwróć uywagę, że input() zawsze zwraca str wiec trzeba rzutowac na int, ale wtedy tracimy informację czy wczesniej mielismy float