Базовые типы

Создание переменных

meters = 40       # число
name = "robotino" # строка
is_near = True    # булево значение

Операции с числами возвращающие числа

(1 + 2) * 3 / 10 # все арифметические операции
5 // 3           # целочисленное деление с округлением в меньшую сторону
5 % 3            # остаток от деления
2*10             # возведение в степень

Операции с числами возвращающие булев тип

10 == 10 # равенство
10 != 1  # неравенство
1 < 2    # сравнение - меньше
2 > 1    # сравнение - больше
2 <= 2   # меньше или равно
2 >= 2   # больше или равно

Операции с булевым типом

not True       # отрицание 
True and False # коньюнкция
True or False  # дизъюнкция

Управляющие конструкции

Ветвление (wiki)

if булево_выражение:
    ветвление1
if булево_выражение:
    ветвление1
else:
    ветвление2
if булево_выражение1:
    ветвление1
elif булево_выражение2:
    ветвление2
else:
    ветвление3

Примеры:

absolute_value = -10 
if absolute_value < 0:
    absoulte_value = -absoulte_value 

Цикл (wiki)

повторяет тело цикла, до тех пор, пока выражение истино

while булево_выражение:
    тело_цикла

повторяет тело цикла для каждого элемента коллекции

for элемент in коллекция:
    тело_цикла

Так же в циклах могут присуствовать

continue # немедленный переход к следующией итерации
break    # немедленное прекращение цикла и переход к следующией конструкции, так если бы цикл закончился

Примеры:

Выполнение цикла 10 раз (от 0 до 9), где i становится номером итерации

for i in range(0, 10):
    print(i)

Обход каждого эелемента в списке

numbers = [1,2,3,4,5,6]
for element in numbers
    print(element)

Обход каждого эелемента в списке с учетом индекса

numbers = [1,2,3,4,5,6]
for index, element in enumerate(numbers):
    print(index + element)

Структуры данных

Операции с любыми коллекциями

   
len (s) возвращает длину s.
min (s), max (s) наименьший и наибольший элементы s соответственно.
x in s истина (1), если s включает в себя элемент равный x, иначе - ложь (0).
x not in s ложь, если s включает x, иначе истина.
s + t слияние s и t.
s * n , n * s n копий s, слитых вместе (например, ‘’ * 5 - это строка ‘**’).
s[i] i-тый элемент s, где i отсчитывается с 0.
s[i:j] часть элементов s, начиная с i до j-1 включительно. Либо i, либо j, либо оба параметра могут быть опущены (i по умолчанию равен 0, j - длине s).

Список (wiki)

  • индексируется натуральными числами
  • расширяется при добавлении новых элементов
  • может содержать элементы разных типов
  • Список может выполнять роль:
    1. Массива
    2. Очереди
    3. Стэка
arr = []        # создание пустого списка
arr = [1,2,3,4] # инициализация списка элементами
arr = [0] * 10  # инициализация списка десяти нулями
arr = [i for i in range(0, 10)] # инициали списка значениями от 0 до 10

Операции со списками

   
s[i] = x i-тый элемент s заменяется на x.
s[i:j] = t часть элементов s от i до j-1 заменяется на t (t может быть также списком).
del s[i:j] удаляет часть s (также как и s[i:j] = []).
s.append (x) добавляет элемент x к концу s.
s.count (x) возвращает количество элементов s равных x.
s.index (x) возвращает наименьший i, такой, что s[i]==x.
s.insert (i,j) часть s, начиная с i-го элемента, сдвигается вправо, и s[i] присваивается x.
s.remove (x) то же, что и del s[ s.index(x) ] - удаляет первый элемент s, равный x.
s.reverse () записывает строку в обратном порядке
s.sort () сортирует список по возрастанию.

Словарь (wiki)

  • индексируется ключами. Ключом может быть любой немутабельный тип данных (числа, строки и т.д.)
  • в качестве значений могут быть любые типы
  • расширяется при добавлении новых элементов

Создание словаря

dict = {'ключ': 'значение', 'другой_ключ': 10}

По словорям можно итерироваться циклом

vec = {'x': 0, 'y': 10, 'z': 20}
for key, value in vec:
    print(key, value)

# x 0
# y 10
# z 20

Операции со словарями

   
len(a) количество элементов а.
a[k] элемент с ключом k.
a[k] = x присвоить элементу с ключом k значение x.
del a[k] удалить a[k] из словаря.
a.items() список тьюплов пар (ключ, значение).
a.keys() список ключей а.
a.values() список значений а.

Множество (wiki)

  • может содержать элементы разных типов
  • не может содержать дубликатов (дубликаты удаляются)
  • поддерживает математические операции над множествами (объединение, пересечение, разность и т.д)
  • эффективная операция проверки на вхождение элемента (el in set)
  • элементы хранятся без определенного порядка

Создание множества

collections = {'set', 'map', 'list', 'tuple'}

Операции со множествами

   
set.isdisjoint(other) истина, если set и other не имеют общих элементов
set == other все элементы set принадлежат other, все элементы other принадлежат set
set.issubset(other)
или
set <= other
подмножество - все элементы set принадлежат other
set.issuperset(other)
или
set >= other
все элементы other принадлежат set
set.union(other, …)
или
set | other | ...
объединение нескольких множеств
set.intersection(other, …)
или
set & other & ...
пересечение
set.difference(other, …)
или
set - other - …
разность - множество из всех элементов set, не принадлежащие ни одному из other.
set.symmetric_difference(other)
или
set ^ other
cимметрическая разность - множество из элементов, встречающихся в одном множестве, но не встречающиеся в обоих
set.copy() копия множества

Функции

Объявление функции

def add_one(number):
    """прибавляет к числу 1"""
    return number + 1

Использование функции

res = add_one(42)