Грамматика Python

Line structure

Physical line — заканчивается символом окончания строки (\n или \r\n).

Logical lines — заканчиваться токеном NEW LINE.

Примеры — несколько физических строк, но одна логическая:

if 1900 < year < 2100 and 1 <= month <= 12 \
   and 1 <= day <= 31 and 0 <= hour < 24 \
   and 0 <= minute < 60 and 0 <= second < 60:   # Looks like a valid date
        pass
month_names = ['Januari', 'Februari', 'Maart',      # These are the
               'April',   'Mei',      'Juni',       # Dutch names
               'Juli',    'Augustus', 'September',  # for the months
               'Oktober', 'November', 'December']   # of the year

Indent

Корректные отступы:

def perm(l):
        # Compute the list of all permutations of l
    if len(l) <= 1:
                  return [l]
    r = []
    for i in range(len(l)):
             s = l[:i] + l[i+1:]
             p = perm(s)
             for x in p:
              r.append(l[i:i+1] + x)
    return r

Некорректные:

 def perm(l):                       # error: first line indented
for i in range(len(l)):             # error: not indented
    s = l[:i] + l[i+1:]
        p = perm(l[:i] + l[i+1:])   # error: unexpected indent
        for x in p:
                r.append(l[i:i+1] + x)
            return r                # error: inconsistent dedent

Expressions and statemens

Можно:

if True: print(1)

Нельзя:

if True: if True: print(1)

Можно:

if True: print(2); print(2)

Life hack — ; убирает лишний вывод в output Jupyter Notebook:

import matplotlib.pyplot as plt
plt.plot([1,2], [1,2], label="Label")
plt.legend();

Opertors

+       -       *       **      /       //      %      @
<<      >>      &       |       ^       ~       :=
<       >       <=      >=      ==      !=

Delimeters

(       )       [       ]       {       }
,       :       .       ;       @       =       ->
+=      -=      *=      /=      //=     %=      @=
&=      |=      ^=      >>=     <<=     **=

'       "       #       \

Unused symbols

$       ?       `

Literals

literals — Литералы представляют собой константы, включаемые непосредственно в текст программы.

String literals

Примеры разных литералов

Python поддерживает несколько видов строковых литералов:

"Обычная строка\n"