5
Olsztyn
Znaki odstępu:
Puste linie:
Kodowanie:
Stringi:
Jak sprawdzać styl PEP8?
Różnice - Editor/Code Style/Python
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
...
PL - https://pl.python.org/forum/index.php?topic=392.msg1844#msg1844
type hinting
- wskazywanie typówNie będzie używane na wykładzie.
Przykład:
Domyślnie dziesiętny. Więcej za kilka zajęć przy algorytmach liczbowych.
<class 'int'>
- wszystko jest obiektem
Uwaga: wyrażenie
skutkuje błędem w większości wypadków.
Obecnie odchodzi się od określenia “tablica znaków”
=
przypisuje prawą stronę do lewej (!), często mylony z operatorem logicznym równa się ==
objects
- to co ma być wyświetlonesep
- separator, domyślnie znak spacjiend
- co co ma być wyświetlone na końcu, domyślnie znak końca liniifile
- określa gdzie mają być objects
wyświetlone, domyślnie sys.stdout
(domyślny ekran)flush
- określa czy “wyjście” ma być buforowane przed przekazaniem do file
, domyślne False
\t
- przesunięcie do następnego “tab”=8 spacji
Formatowanie napisów będzie później.
Operator | Opis | Składnia |
---|---|---|
+ | Dodawanie | x + y |
– | Odejmowanie | x – y |
* | Mnożenie | x * y |
/ | Dzielenie | x / y |
// | Dzielenie całkowite | x // y |
% | Dzielenie modulo | x % y |
** | Potęgowanie | x ** y |
Daje info: ZeroDivisionError: division by zero
Lista zawiera wybrane operacje.
Inna nazwa to złożone operatory przypisania.
Operator | Zapis | Dłuższa wersja |
---|---|---|
+= | x += 5 | x = x + 5 |
-= | x -= 5 | x = x - 5 |
*= | x *= 5 | x = x * 5 |
/= | x /= 5 | x = x / 5 |
%= | x %= 5 | x = x % 5 |
//= | x //= 5 | x = x // 5 |
**= | x **= 5 | x = x ** 5 |
Operator | Znaczenie | Przykład |
---|---|---|
> | Większe niż | x > y |
< | Mniejsze niż | x < y |
== | Równe | x == y |
!= | Nie równa się | x != y |
>= | Większe lub równe | x >= y |
<= | Mniejsze lub równe | x <= y |
Operator | Znaczenie | Przykład |
---|---|---|
and | i | x and y |
or | lub | x or y |
not | negacja | not x |
Operator | Znaczenie | Przykład |
---|---|---|
& |
i - logiczne | x & y |
| |
lub - logiczne | x | y |
^ |
albo - logiczne | x ^ y |
~ |
negacja - logiczne | ~x |
<< |
przesunięcie w lewo | x << y |
>> |
przesunięcie w prawo | x >> y |
Operator &
x |
100 |
4 |
y |
101 |
5 |
x&y |
100 |
4 |
Operator |
x |
100 |
4 |
y |
101 |
5 |
x|y |
101 |
5 |
Operator ^
x |
100 |
4 |
y |
101 |
5 |
x^y |
001 |
1 |
Operator ~
-(x+1)
x |
100 |
4 |
~x |
? | -5 |
Operator <<
a<<b
- równoważnie a*pow(2,b)
x |
0011 |
3 |
x<<2 |
1100 |
12 |
Operator >>
a>>b
- równoważnie a//pow(2,b)
x |
1101 |
13 |
x>>2 |
0011 |
3 |
Składnia
Przykład:
Generuje nam ciąg liczb (dedykowany typ range
). Trzeba zamienić na listę “by podejrzeć”.
Uwaga: wszystkie argumenty muszą być w typie całkowitym.
Jeden argument - to “koniec” - ciąg tworzą liczby naturalne od \(0\) do \(n-1\). Krok domyślny to 1.
Dwa argumenty - to “początek” i “koniec”. Krok domyślny to 1. Wtedy wyświetlone są liczby całkowite z przedziału lewostronnie domkniętego \([początek, koniec)\).
Trzy argumenty - to “początek”, “koniec” oraz krok.
print(list(range(5)))
print(list(range(1, 11)))
print(list(range(0, 30, 5)))
print(list(range(0, 10, 3)))
print(list(range(0, -10, -1)))
print(list(range(0)))
print(list(range(1, 0)))
[0, 1, 2, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[0, 5, 10, 15, 20, 25]
[0, 3, 6, 9]
[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]
[]
[]
Przykład:
inna opcja:
Od ostatniego:
lambda
if - else
or
and
not x
in, not in, is, is not, <, <=, >, >=, !=, ==
|
^
&
<<, >>
+, -
*, @, /, //, %
+x, -x, ~x
**
await x
x[index], x[index:index], x(arguments...), x.attribute
(expressions...), [expressions...], {key: value...},{expressions...}
Źródło: https://docs.python.org/3/reference/expressions.html#operator-precedence.