Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

семестр 1 / mementopython3-russian

.pdf
Скачиваний:
0
Добавлен:
13.05.2026
Размер:
177 Кб
Скачать

©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)*212.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 (в виде литерала)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Соседние файлы в папке семестр 1