Шпаргалка-по-Python-ru. Шпаргалка по Python3 20122013 Laurent Pointal Licence Creative Commons Attribution 2 Официальная документация по Python3
Скачать 172.85 Kb.
|
Доступ к элементам последовательностей Шпаргалка по Python3 ©2012-2013 - Laurent Pointal Licence Creative Commons Attribution 2 Официальная документация по Python3 http://docs.python.org/py3k 0 783 -192 int 9.23 -1.7e-6 0.0 float True False bool "One\nTwo" 'I\'m' str """X\tY\tZ 1\t2\t3""" 10 -6 символ табуляции перевод строки многострочные Контейнерные типы list [1,5,9] ["x",11,8.9] ["word"] [] tuple (1,5,9) 11,"y",7.4 ("word",) () dict {1:"one",3:"three",2:"two",3.14:"π"} {"key":"value"} set {} {1,9,3,0} ◾ упорядоченная последовательность, быстрый доступ по индексу set() ◾ порядок заранее неизвестен, быстрый доступ по ключу, ключи = базовые типы или кортежи {"key1","key2"} неизменяемые Присвоение переменным x = 1.2 + 8 + sin ( 0 ) y , z , r = 9.2 , -7.6 , "bad" значение или вычислимое выражение имя переменной (идентификатор) a ‥ zA ‥ Z_ потом a ‥ zA ‥ Z_0 ‥ 9 ◽ нелатинские буквы разрешены, но избегайте их ◽ ключевые слова языка запрещены ◽ маленькие/БОЛЬШИЕ буквы отличаются выражение с одними запятыми неизменяемая, упорядоченная последовательность симполов словарь integer, float, boolean, string контейнер с несколькими значениями (здесь кортеж) имена переменных Имена ☺ a toto x7 y_max BigOne ☹ 8y and x += 3 x -= 2 добавление вычитание Преобразования для списков, кортежей, строк... int ( "15" ) float ( "-11.24e8" ) bool str ( 78.3 ) repr ( "Text" ) можно указать целое основание системы исчисленя вторым параметром int ( 15.56 ) отбросить дробную часть (для округления делайте round ( 15.56 ) ) и для буквального преобразования type ( выражение) используйте сравнения (==, !=, <, >, …), дающие логический результат см. форматирование строк на другой стороне для более тонкого контроля ":" . join ( ['toto','12','pswd'] ) 'toto:12:pswd' соединяющая строка последовательность строк "words with spaces" . split () ['words','with','spaces'] "1,4,8,2" . split ( "," ) ['1','4','8','2'] строка-разделитель dict ( [(3,"three"),(1,"one")] ) {1:'one',3:'three'} list ( "abc" ) ['a','b','c'] использует каждый элемент последовательности set ( ["one","two"] ) {'one','two'} использует каждый элемент последовательности lst = [ ] lst [ 1 ] → 67 lst [ -2 ] → 42 0 1 2 3 5 4 -6 -5 -4 -3 -1 -2 доступ к отдельным элементам через [индекс] положительный индекс отрицательный индекс 0 1 2 3 5 4 6 -6 -5 -4 -3 -1 -2 отрицательный срез положительный срез доступ к подпоследовательности [начало среза:конец среза:шаг] len ( lst ) 6 lst [ 1 : 3 ]→ [67,"abc"] lst [:: 2 ]→ [11,"abc",42] lst [ -3 : -1 ]→ [3.14,42] lst [: 3 ]→ [11,67,"abc"] lst [: -1 ]→ [11,67,"abc",3.14,42] lst [ 4 :]→ [42,1968] lst [ 1 : -1 ]→ [67,"abc",3.14,42] lst [:]→ [11,67,"abc",3.14,42,1968] cрез без указания границ → с начала до конца Условный оператор if x == 42 : # блок выполнится, если x==42 истинно ( "real truth" ) elif x > 0 : # иначе блок, если лог. выражение x > 0 истинно ( "be positive" ) elif bFinished : # иначе блок, если лог. перем. bFinished истинна ( "how, finished" ) else: # иначе блок для всех остальных случаев ( "when it's not" ) Булева логика Блоки инструкций родительская инструкция : блок инструкций 1… ⁝ родительская инструкция : блок инструкций 2… ⁝ след. инструкция после блока 1 от ст уп ы ! Сравнения: < > <= >= == != ≠ = ≥ ≤ a and b a or b not a логическое и логическое или логическое нет верно хотя бы одно оба верны одновременно if логическое выражение: блок выражений выражения в блоке выполняется только если условие истинно True False константа «истина» константа «ложь» может сопровождаться несколькими elif, elif, …, но только одним окончательним else. Пример: lst [ -1 ] → 1968 lst [ 0 ] → 11 последний первый x = None «неопределённая» константа Математика Операторы: + - * / // % ** × ÷ деление без остатка остаток a b from math import sin , pi … ' экранирована abs ( -3.2 )→ 3.2 round ( 3.57 , 1 )→ 3.6 ☝ числа с плавающей точкой… приближенные значения! sin ( pi / 4 )→ 0.707… cos ( 2 * pi / 3 )→ -0.4999… sqrt ( 81 )→ 9.0 √ log ( e ** 2 )→ 2.0 углы в радианах acos ( 0.5 )→ 1.0471… и т.д. (см. доки) ( 1 + 5.3 )* 2 → 12.6 для переменных, функций, модулей, классов... Mémento v1.2.2 str как упорядоченная последовательность символов Для изменяемых последовательностей, полезно удаление del lst [ 3 : 5 ] и изменение с помощью присвоения lst [ 1 : 4 ]= ['hop',9] соответствие между ключами и значениями Базовые типы Перевод : Федотов В.А. 11, 67, "abc",3.14, 42, 1968 Печать / Ввод ( "v=" , 3 , "cm :" , x , "," , y + 4 ) настройки print: ◽ sep = " " (разделитель аргументов, по умолч. пробел) ◽ end = "\n" (конец печати, по умолч. перевод строки) ◽ file = f (печать в файл, по умолч. стандартный вывод) элементы для отображения : литералы, переменные, выражения цикл по dict/set = цикл по последовательности ключей Цикл с условием блок инструкций выполняется до тех пор, пока условие истинно while логическое выражение: блок инструкций s = 0 i = 1 while i <= 100 : # выражения вычисляются пока i ≤ 100 s = s + i ** 2 i = i + 1 ( "sum:" , s ) инициализации перед циклом условие с хотя бы одним изменяющимся значением (здесь i) s= ∑ i=1 i=100 i 2 изменяет переменную цикла Цикл перебора блок инструкций выполняется для всех элементов контейнера или итератора for переменная in подследовательность: блок инструкций s = "Some text" cnt = 0 for c in s : if c == "e" : cnt = cnt + 1 ( "found" , cnt , "'e'" ) Проход по элементам последовательности Посчитать число букв e в строке Проход по индексам последовательности ◽ можно присваивать элемент по индексу ◽ доступ к соседним элементам lst = [11,18,9,12,23,4,17] lost = [] for idx in range ( len ( lst )): val = lst [ idx ] if val > 15 : lost . append ( val ) lst [ idx ] = 15 ( "modif:" , lst , "-lost:" , lost ) Ограничить значения больше 15, запомнить потеряные значения ☝ остерегайтесь бесконечных циклов ! инициализации перед циклом переменная цикла, значение управляется циклом for используйте срезы для проходов по подпоследовательностям вычисленный результат цикла Генераторы последовательностей int Файлы s = input ( "Instructions:" ) ☝ input всегда возвращает строку, преобразуйте её к нужному типу сами (см. «Преобразования» на другой стороне). часто используются в циклах for range возвращает «генератор», чтобы увидеть значения, преобразуйте его в последовательность, например: print(list(range(4))) range ( 5 ) 0 1 2 3 4 range ( 3 , 8 ) 3 4 5 6 7 range ( 2 , 12 , 3 ) 2 5 8 11 range ( [start,]stop [,step]) f = open ( "fil.txt" , "w" , encoding = "utf8" ) Сохранение и считывание файлов с диска режим работы ◽ 'r' read ◽ 'w' write ◽ 'a' append… кодировка символов в текс- товых файлах: utf8 ascii cp1251 ... имя файла на диске (+путь…) файловая переменная для операций f . write ( "hello" ) запись ☝ текстовый файл → чтение/запись только строк, преобразуйте требуемые типы s = f . read (4) for line in f : # блок кода для обработки строки см. функции в модулях os и os . path если количество символов не указано, прочитает весь файл s = f . readline () прочитать следующую строку f . close () ☝ не забывайте закрывать после использования Автоматическое закрыте : with open (…) as f : очень часто: цикл по строкам (каждая до '\n') текстового файла Определение функций def fctname ( p_x , p_y , p_z ): """documentation""" # инструкции, вычисление результата return res имя функций (идентификатор) результат вызова. если нет возврата значения, по умолчанию вернёт None ☝ параметры и всесь этот блок существуют только во время вызова функции («черная коробка») именованые параметры Вызов функций r = fctname ( 3 , i + 2 , 2 * i ) один аргумент каждому параметру получить результат (если нужен) пустая строка при конце файла не включается по умолчанию 0 "model {} {} {}" . format ( x , y , r ) "{ селектор:формат!преобразование}" ◽ Селекторы : 2 x 0.nom 4[key] 0[2] str Форматирование строк значения для форматирования форматные директивы "{:+2.3f}" . format ( 45.7273 ) → '+45.727' "{1:>10s}" . format ( 8 , "toto" ) → ' toto' "{!r}" . format ( "I'm" ) → '"I\'m"' ◽ Преобразование : s (читаемый текст) или r (в виде литерала) < > ^ = 0 в начале для заполнения 0 целые: b бинарный, c символ, d десятичн. (по умолч.), o 8-ричн, x или X 16-ричн. float: e or E экспонениалная запись, f or e фиксир. точка, g or G наиболее подходящая из e или F , % перевод долей в % строки : s … ◽ Формат : заполнение выравнивание знак минширина . точностьмаксширина тип + - пробел П ри м ер ы Операции с контейнерами len ( c ) min ( c ) max ( c ) sum ( c ) sorted ( c ) reversed ( c ) ☝ изменяют первоначальный список lst . append ( item ) lst . pop ( idx ) lst . sort () lst . reverse () c . index ( val ) c . count ( val ) → количество элементов → отсортированая копия → reverse iterator → позиция → подсчёт вхождений lst . extend ( seq ) добавить элемент в конец добавить последовательность в конец lst . insert ( idx , val ) вставить значение по индексу lst . remove ( val ) удалить первое вхождение val удалить значение по индексу и вернуть его сортировать/обратить список по месту Операции со словарями Операции с множествами Операторы: | → объединение (вертикальная черта) & → пересечение - ^ → разность/симметричная разн. < <= > >= → отношения включения d . update ( d2 ) Обновить/добавить пары Прим. : для словарей и множеств эти операции работают с ключами. Только для последовательностей (lists, tuples, strings) : val in c → boolean, membersihp operator in (absence not in ) Операции со списками d [ key]→value del d [ key] d [ key]=value d . keys () d . clear () d . items () d . values () просмотр ключей, значений и пар d . pop ( key) s. update ( s2 ) s . add ( key) s . remove ( key) s . discard ( key) c * 5 → повторить c + c2 → соеденить Управление циклом break continue немедленный выход следующая итерация Пройти одновременно по индексам и значениям : for idx , val in enumerate ( lst ): enumerate ( c ) → итератор по парам (индекс, значение) чтение |