семестр 1 / mementopython3-russian
.pdf
©2012-2013 - Laurent Pointal |
Mémento v1.2.2 |
|
|
Шпаргалка по Python3 |
Официальная документация по Python3 |
|||||||||||||||
Licence Creative Commons Attribution 2 |
|
|
|
|
http://docs.python.org/py3k |
|
||||||||||||||
integer, float, boolean, string |
Базовые типы |
|
|
|
|
|
|
|
Контейнерные типы |
|||||||||||
int |
783 |
0 |
-192 |
|
|
|
|
упорядоченная последовательность, быстрый доступ по индексу |
|
|
||||||||||
|
|
|
|
|
list [1,5,9] |
["x",11,8.9] |
["word"] |
[] |
||||||||||||
float |
9.23 |
0.0 |
-1.7e-6 |
|
|
tuple (1,5,9) |
11,"y",7.4 |
|
("word",) |
() |
||||||||||
bool |
True |
False |
|
10-6 |
|
|
неизменяемые |
|
выражение с одними запятыми |
|
|
|||||||||
str |
"One\nTwo" |
'I\'m' |
|
|
|
str как упорядоченная последовательность символов |
|
|
||||||||||||
|
|
порядок заранее неизвестен, быстрый доступ по ключу, ключи = базовые типы или кортежи |
||||||||||||||||||
|
|
|
перевод строки |
' экранирована |
|
dict {"key":"value"} |
|
|
|
|
{} |
|||||||||
|
многострочные |
"""X\tY\tZ |
|
|
словарь |
{1:"one",3:"three",2:"two",3.14:"π"} |
||||||||||||||
|
|
соответствие между ключами и значениями |
|
|
|
|
|
|||||||||||||
неизменяемая, упорядоченная |
1\t2\t3""" |
|
|
set {"key1","key2"} |
{1,9,3,0} |
set() |
||||||||||||||
|
символ табуляции |
|
||||||||||||||||||
последовательность симполов |
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
для переменных, функций, |
|
Имена |
|
|
|
|
|
|
|
type(выражение) Преобразования |
||||||||||
модулей, классов... |
|
|
|
|
|
|
|
int("15") можно указать целое основание системы исчисленя вторым параметром |
||||||||||||
a zA Z_ потом a zA Z_0 9 |
|
|
|
|
||||||||||||||||
|
|
|
|
int(15.56) отбросить дробную часть (для округления делайте round(15.56)) |
||||||||||||||||
нелатинские буквы разрешены, но избегайте их |
|
|||||||||||||||||||
ключевые слова языка запрещены |
|
|
|
float("-11.24e8") |
|
|
|
|
|
|
||||||||||
маленькие/БОЛЬШИЕ буквы отличаются |
|
|
str(78.3) и для буквального преобразования |
|
repr("Text") |
|||||||||||||||
☺ a toto x7 y_max BigOne |
|
|
|
|||||||||||||||||
|
|
|
|
см. форматирование строк на другой стороне для более тонкого контроля |
||||||||||||||||
8y and |
|
|
|
|
|
|
|
bool |
используйте сравнения (==, !=, <, >, …), дающие логический результат |
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
Присвоение переменным |
|
|
list("abc") |
использует каждый элемент |
|
['a','b','c'] |
||||||||||||||
x = 1.2+8+sin(0) |
|
|
|
|
|
|
|
|
последовательности |
|
|
|
|
|
||||||
|
|
|
|
dict([(3,"three"),(1,"one")]) |
|
{1:'one',3:'three'} |
||||||||||||||
значение или вычислимое выражение |
|
|
|
|||||||||||||||||
|
|
set(["one","two"]) |
|
использует каждый элемент |
{'one','two'} |
|||||||||||||||
имя переменной (идентификатор) |
|
|
|
|
последовательности |
|
||||||||||||||
y,z,r = 9.2,-7.6,"bad" |
|
|
":".join(['toto','12','pswd']) |
|
'toto:12:pswd' |
|||||||||||||||
имена |
|
|
контейнер с несколькими |
|
|
|
||||||||||||||
|
|
|
соединяющая строка |
последовательность строк |
|
|
|
|
||||||||||||
переменных |
|
значениями (здесь кортеж) |
|
|
|
|
||||||||||||||
|
|
"words with |
spaces".split() |
['words','with','spaces'] |
||||||||||||||||
x+=3 |
|
|
добавление |
x-=2 |
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
вычитание |
|
|
|
"1,4,8,2".split(",") |
|
|
|
['1','4','8','2'] |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||||
x=None «неопределённая» константа |
|
|
|
|
|
строка-разделитель |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
для списков, кортежей, строк... |
|
Доступ к элементам последовательностей |
|||||||||||
отрицательный индекс |
-6 |
-5 |
-4 |
|
|
-3 |
|
-2 |
-1 |
len(lst) |
6 |
|
|
|
|
|||||
положительный индекс |
0 |
1 |
|
2 |
|
|
3 |
|
4 |
5 |
доступ к отдельным элементам через [индекс] |
|
|
|||||||
lst=[ |
11, |
67, "abc",3.14, 42, 1968 ] |
lst[1]→67 |
|
lst[0]→11 |
первый |
|
|||||||||||||
положительный срез |
0 |
1 |
2 |
3 |
|
4 |
5 |
6 |
lst[-2]→42 |
|
lst[-1]→1968 последний |
|||||||||
отрицательный срез |
-6 |
-5 |
|
-4 |
|
-3 |
|
-2 |
-1 |
|
|
|||||||||
|
|
|
|
доступ к подпоследовательности [начало среза:конец среза:шаг] |
||||||||||||||||
lst[:-1]→[11,67,"abc",3.14,42] |
|
lst[1:3]→[67,"abc"] |
|
|
||||||||||||||||
lst[1:-1]→[67,"abc",3.14,42] |
|
lst[-3:-1]→[3.14,42] |
|
|
||||||||||||||||
lst[::2]→[11,"abc",42] |
|
|
|
lst[:3]→[11,67,"abc"] |
|
|
||||||||||||||
lst[:]→[11,67,"abc",3.14,42,1968] |
lst[4:]→[42,1968] |
|
|
|
||||||||||||||||
|
|
|
|
cрез без указания границ → с начала до конца |
|
|
|
|
|
|
|
|||||||||
Для изменяемых последовательностей, полезно удаление del lst[3:5] и изменение с помощью присвоения lst[1:4]=['hop',9] |
||||||||||||||||||||
|
|
|
Булева логика |
|
|
|
Блоки инструкций |
выражения в блоке выполняется Условный оператор |
||||||||||||
Сравнения: |
< > <= >= == != |
родительская инструкция: |
только если условие истинно |
|
|
|
|
|||||||||||||
a and b |
|
|
≤ ≥ |
= |
≠ |
|
блок инструкций 1… |
|
|
if логическое выражение: |
|
|||||||||
логическое и |
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
блок выражений |
|
|
||||||||
|
оба верны одновременно |
! |
родительская инструкция: |
|
|
|
|
|||||||||||||
a or b |
логическое или |
|
отступы |
может сопровождаться несколькими elif, elif, …, |
|
|||||||||||||||
|
|
верно хотя бы одно |
|
|
блок инструкций 2… |
|
||||||||||||||
not a |
|
логическое нет |
|
|
|
|
|
|
|
но только одним окончательним else. Пример: |
|
|
||||||||
True |
константа «истина» |
|
след. инструкция после блока 1 |
if x==42: |
|
|
|
|
|
|||||||||||
False константа «ложь» |
|
|
# блок выполнится, если x==42 истинно |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
print("real truth") |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
Математика |
elif x>0: |
|
|
|
|
|
||
числа с плавающей точкой… приближенные значения! |
|
|
# иначе блок, если лог. выражение x > 0 истинно |
|||||||||||||||||
углы в радианах |
|
print("be positive") |
|
|
||||||||||||||||
Операторы: + - * / // |
% ** |
from math import sin,pi… |
|
|
|
|||||||||||||||
elif bFinished: |
|
|
|
|
||||||||||||||||
|
|
|
× |
÷ |
ab |
sin(pi/4)→0.707… |
|
|
|
|
||||||||||
деление без остатка |
остаток |
cos(2*pi/3)→-0.4999… |
|
# иначе блок, если лог. перем. bFinished истинна |
||||||||||||||||
|
print("how, finished") |
|
|
|||||||||||||||||
(1+5.3)*2→12.6 |
|
|
acos(0.5)→1.0471… |
else: |
|
|
|
|
|
|||||||||||
abs(-3.2)→3.2 |
|
|
|
|
|
|
|
|||||||||||||
|
|
sqrt(81)→9.0 |
√ |
|
# иначе блок для всех остальных случаев |
|
||||||||||||||
round(3.57,1)→3.6 |
|
log(e**2)→2.0 и т.д. (см. доки) |
print("when it's not") |
|
|
|||||||||||||||
|
|
|
|
|
|
|
||||||||||||||
Перевод : Федотов В.А.
блок инструкций выполняется |
Цикл с условием |
|
блок инструкций выполняется |
Цикл перебора |
|||||||||
до тех пор, пока условие истинно |
|
|
|
для всех элементов контейнера или итератора |
|
||||||||
|
while логическое выражение: |
|
|
for переменная in подследовательность: |
|||||||||
|
|
|
|
блок инструкций |
Управление циклом |
||||||||
s = 0 |
|
|
|
|
|
|
блок инструкций |
|
|||||
|
|
|
|||||||||||
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
||||||||
i = 1 |
инициализации перед циклом |
|
break |
|
|
Проход по элементам последовательности |
|||||||
|
|
|
|
|
|
немедленный выход |
|||||||
условие с хотя бы одним изменяющимся значением |
continue |
|
s = "Some text" инициализации перед циклом |
||||||||||
while i <= 100: |
(здесь i) |
следующая итерация |
cnt = 0 |
|
|||||||||
|
|
|
|
переменная цикла, значение управляется циклом for |
|||||||||
# выражения вычисляются пока i ≤ 100 |
i=100 |
2 |
|
for c in s: |
Посчитать число |
||||||||
s = s + i**2 |
|
s= ∑ i |
|
|
if c == "e": |
||||||||
i = i + 1 изменяет переменную цикла |
|
|
|
букв e в строке |
|||||||||
|
|
|
|
|
cnt = cnt + 1 |
||||||||
i=1 |
|
|
|
|
|
|
|||||||
print("sum:",s) вычисленный результат цикла |
|
|
print("found",cnt,"'e'") |
||||||||||
|
цикл по dict/set = цикл по последовательности ключей |
||||||||||||
|
|
остерегайтесь бесконечных циклов ! |
|
||||||||||
|
|
|
используйте срезы для проходов по подпоследовательностям |
||||||||||
|
|
|
|
|
Печать / Ввод |
Проход по индексам последовательности |
|
||||||
|
|
|
|
|
можно присваивать элемент по индексу |
|
|||||||
print("v=",3,"cm :",x,",",y+4) |
|
доступ к соседним элементам |
|
||||||||||
|
|
|
|
|
|
|
|
lst = [11,18,9,12,23,4,17] |
|
||||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
lost = [] |
|
||||
элементы для отображения : литералы, переменные, выражения |
|
||||||||||||
for idx in range(len(lst)): |
|
||||||||||||
настройки print: |
|
|
|
|
|||||||||
|
|
|
val = lst[idx] |
Ограничить значения |
|||||||||
sep=" " (разделитель аргументов, по умолч. пробел) |
|
||||||||||||
|
if val > 15: |
больше 15, запомнить |
|||||||||||
end="\n" (конец печати, по умолч. перевод строки) |
|
||||||||||||
|
|
|
lost.append(val) |
потеряные значения |
|||||||||
file=f (печать в файл, по умолч. стандартный вывод) |
|
|
|
||||||||||
|
|
|
lst[idx] = 15 |
|
|||||||||
s = input("Instructions:") |
|
|
|
|
|
||||||||
|
|
print("modif:",lst,"-lost:",lost) |
|||||||||||
input всегда возвращает строку, преобразуйте её к нужному 
типу сами (см. «Преобразования» на другой стороне). 

Пройти одновременно по индексам и значениям : for idx,val in enumerate(lst):
len(c)→ количество элементов |
|
Операции с контейнерами |
|
|
|
|
|
Генераторы последовательностей int |
|||||||||||||||||||||||||||
min(c) max(c) sum(c) |
|
|
Прим. : для словарей и множеств эти |
часто используются |
|
по умолчанию 0 |
|
не включается |
|||||||||||||||||||||||||||
sorted(c) → отсортированая копия |
|
|
операции работают с ключами. |
в циклах for |
range([start,]stop [,step]) |
||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
val in c → boolean, membersihp operator in (absence not in) |
|
range(5) |
|
|
|
|
|
|
|
|
0 1 2 3 4 |
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
enumerate(c)→ итератор по парам (индекс, значение) |
|
|
|
|
range(3,8) |
|
|
|
|
|
|
|
3 4 5 6 7 |
||||||||||||||||||||||
Только для последовательностей (lists, tuples, strings) : |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
range(2,12,3) |
|
|
|
|
2 5 8 11 |
|||||||||||||||||||||||||
reversed(c)→ reverse iterator |
c*5 → повторить |
c+c2 → соеденить |
|
|
|
|
|||||||||||||||||||||||||||||
c.index(val)→ позиция |
c.count(val)→ подсчёт вхождений |
|
|
range возвращает «генератор», чтобы увидеть значения, |
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Операции со списками |
|
|
преобразуйте его в последовательность, например: |
|||||||||||||||||||
изменяют первоначальный список |
|
|
|
|
|
|
print(list(range(4))) |
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
lst.append(item) |
добавить элемент в конец |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
lst.extend(seq) |
добавить последовательность в конец |
имя функций (идентификатор) Определение функций |
|||||||||||||||||||||||||||||||||
lst.insert(idx,val) |
вставить значение по индексу |
|
|
|
|
|
|
|
|
|
|
именованые параметры |
|
||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
lst.remove(val) |
удалить первое вхождение val |
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||
lst.pop(idx) |
удалить значение по индексу и вернуть его |
def fctname(p_x,p_y,p_z): |
|
||||||||||||||||||||||||||||||||
lst.sort() |
lst.reverse()сортировать/обратить список по месту |
|
|
|
|
"""documentation""" |
|
||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
Операции со словарями |
|
|
Операции с множествами |
|
|
|
|
# инструкции, вычисление результата |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
return res |
|
|
результат вызова. если нет |
||||||||||||||||||||||||
d[key]=value |
|
|
d.clear() |
|
|
Операторы: |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
d[key]→value |
|
|
del d[key] |
|
|
| → объединение (вертикальная черта) |
параметры и всесь этот блок |
|
|
возврата значения, |
|
||||||||||||||||||||||||
|
|
& |
→ пересечение |
|
|
|
|
|
|
по умолчанию вернёт None |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
существуют только во время |
|
|
||||||||||||||||
d.update(d2) Обновить/добавить - ^ → разность/симметричная разн. |
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
d.keys() |
пары |
|
|
|
< <= > >= → отношения включения |
вызова функции («черная коробка») |
Вызов функций |
||||||||||||||||||||||||||||
d.values() просмотр ключей, |
|
|
s.update(s2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
d.items() |
значений и пар |
|
|
|
s.add(key) s.remove(key) |
r = fctname(3,i+2,2*i) |
|
||||||||||||||||||||||||||||
d.pop(key) |
|
|
|
|
|
|
|
s.discard(key) |
|
|
|
|
|
|
|
|
|
один аргумент каждому параметру |
|||||||||||||||||
|
Сохранение и считывание файлов с диска |
|
|
|
|
|
|
|
|
Файлы |
|
|
получить результат (если нужен) |
|
|
|
|
||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Форматирование строк |
||||||||||||||||
f = open("fil.txt","w",encoding="utf8") |
|
|
форматные директивы |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
значения для форматирования |
||||||||||||||
|
|
файловая |
имя |
|
файла |
режим |
|
работы |
|
кодировка |
"model {} {} {}".format(x,y,r) |
|
str |
||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||
переменная |
на диске |
'r' read |
|
символов в текс- |
|
"{селектор:формат!преобразование}" |
|
||||||||||||||||||||||||||||
для операций |
(+путь…) |
'w' write |
|
товых файлах: |
Селекторы : |
|
"{:+2.3f}".format(45.7273) |
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
'a' append… |
|
utf8 |
ascii |
2 |
|
|
|
|
Примеры |
→'+45.727' |
|
|||||||||||||||
см. функции в модулях os и os.path |
|
|
|
|
|
cp1251 ... |
|
|
x |
"{1:>10s}".format(8,"toto") |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
0.nom |
||||||||||||||||||||||||
|
|
запись |
|
|
|
|
|
|
|
|
|
|
|
|
|
чтение |
|
|
→' |
|
|
toto' |
|
||||||||||||
|
|
|
|
|
|
пустая строка при конце файла |
|
|
4[key] |
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
"{!r}".format("I'm") |
|
||||||||||||||||||||||||||
f.write("hello") |
s = f.read(4)если количество |
0[2] |
|
|
|
→'"I\'m"' |
|
|
|
|
|||||||||||||||||||||||||
Формат : |
|
|
|
|
|
||||||||||||||||||||||||||||||
|
текстовый файл |
→ чтение/запись |
прочитать следующую |
символов не указано, |
|
|
|
|
|
|
|
|
|
|
. |
точность~максширина тип |
|||||||||||||||||||
|
|
|
|
|
прочитает весь файл |
заполнение выравнивание знак минширина |
|||||||||||||||||||||||||||||
|
только строк, преобразуйте |
строку |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
требуемые типы |
|
|
|
|
s = f.readline() |
|
< > ^ = + - пробел |
0 в начале |
|
для заполнения 0 |
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
f.close() не забывайте закрывать после использования |
|
целые: b бинарный, c символ, d десятичн. (по умолч.), o 8-ричн, x или X 16-ричн. |
|||||||||||||||||||||||||||||||||
|
|
|
|
|
Автоматическое закрыте : with open(…) as f: |
|
float: e or E экспонениалная запись, f or e фиксир. точка, |
|
|||||||||||||||||||||||||||
очень часто: цикл по строкам (каждая до '\n') текстового файла |
|
|
|
g or G наиболее подходящая из e или F, % перевод долей в % |
|||||||||||||||||||||||||||||||
for line in f : |
|
|
|
|
|
|
|
|
|
|
строки : s … |
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
# блок кода для обработки строки |
|
|
|
|
|
Преобразование : s (читаемый текст) или r (в виде литерала) |
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||
