Python.pptx
- Количество слайдов: 22
Инструментальные средства ИС PYTHON Введение в программирование
Общая информация PYTHON (лучше произносить "питон", хотя некоторые говорят "пайтон") - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений (RAD, Rapid Application Development). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. Python поддерживает модули и пакеты, поощряя модульность и повторное использование кода. Интерпретатор Python и большая стандартная библиотека доступны бесплатно в виде исходных и исполняемых кодов для всех основных платформ и могут свободно распространяться. "
Интерпретация и компиляция
Общая информация Программа на языке Python может состоять из одного или нескольких модулей. Каждый модуль представляет собой текстовый файл в кодировке, совместимой с 7 -битной кодировкой ASCII. Для кодировок, использующих старший бит, необходимо явно указывать название кодировки. Например, модуль, комментарии или строковые литералы которого записаны в кодировке KOI 8 -R, должен иметь в первой или второй строке следующую спецификацию: # -*- coding: koi 8 -r -*Благодаря этой спецификации интерпретатор Python будет знать, как корректно переводить символы литералов Unicode-строк в Unicode. Символ решетка ( # ) отмечает комментарий до конца строки. Программа на Python, с точки зрения интерпретатора, состоит из логических строк. Одна логическая строка, как правило, располагается в одной физической, но длинные логические строки можно явно (с помощью обратной косой черты) или неявно (внутри скобок) разбить на несколько физических: print u" - очень длинная строка, которая не помещается в", 80, u"знакоместах"
Последовательность операторов Последовательные действия описываются последовательными строками программы. В программах важны отступы, поэтому все операторы, входящие в последовательность действий, должны иметь один и тот же отступ: a=1 b=2 a=a+b b=a-b a=a-b print a, b В примере выше использованы операторы присваивания и оператор print. Оператор условия и выбора if a > b: c=a else: c=b
Последовательность операторов Более общий случай: if a < 0: s = -1 elif a == 0: s=0 else: s=1 Стоит заметить, что elif - это сокращенный else if. Без сокращения пришлось бы применять вложенный оператор ветвления: if a < 0: s = -1 else: if a == 0: s=0 else: s=1 В отличие от оператора print, оператор if-else - составной оператор.
Циклы: While Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся действия. В Python имеются два вида циклов: цикл ПОКА (выполняется некоторое условие) и цикл ДЛЯ (всех значений последовательности). Следующий пример иллюстрирует цикл ПОКА на Python: s = "abcdefghijklmnop" while s != "": print s s = s[1: -1]
Циклы: While Следующий пример читает строки из файла и выводит те, у которых длина больше 5: f = open("file. txt", "r") while f: l = f. readline() if not l: break if len(l) > 5: print l f. close()
Циклы: For Цикл for выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения: for i in range[1, 10): for j in range[1, 10): print "%2 i" % (i*j), print
Функции Цикл for выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения: def cena(rub, kop=0): return "%i руб. %i коп. " % (rub, kop) rub = int(input(‘Please input the price: ')) print cena(rub, 50) print cena(7) print cena(rub=23, kop=70)
Исключения В современных программах передача управления происходит не всегда так гладко, как в описанных выше конструкциях. Для обработки особых ситуаций (таких как деление на ноль или попытка чтения из несуществующего файла) применяется механизм исключений. Лучше всего пояснить синтаксис оператора try-except следующим примером: try: res = int(open('a. txt'). read()) / int(open('c. txt'). read()) print res except Value. Error: print u"Ошибка ввода-вывода" except Zero. Division. Error: print u"Деление на 0" except: print u"Ошибка“ finally: print "Обработка гарантированно завершена"
Типы данных ü Int (целые числа): а = 10 ü Float (дробные): а = 4. 15 ü bool (логические): true, false ü String (строковые): s 1 = "строка 1" ü Tuple (картеж): p = (1. 2, 3. 4, 0. 9) p = tuple("abc") ü List (списки, аля массив): lst 1 = [1, 2, 3, ] lst 2 = list("abcde") Получение информации последовательностей: len(s) # длина последовательности x in s / x not in s # проверка принадлежности элемента последовательности s[i] # возвращает i-й элемент s[i: j: d] # срез из последовательности s от i до j с шагом d min(s) / max(s) # наименьший и наибольший элемент
Типы данных ü List (списки, аля массив): Изменение последовательностей: s[i] = x # i -й элемент списка s заменяется на x del s[i: j: d] # удаление элементов среза из последовательности. append(x) # добавляет элемент в конец последовательности. count(x) # считает количество элементов, равных x. extend(s) # добавляет к концу последовательности последовательность s. insert(i, x) # вставляет элемент x в i -й промежуток. reverse(s) # меняет порядок элементов s на обратный
Типы данных ü Dict (словарь): d = {1: 'one', 2: 'two', 3: 'three', 4: 'four'} d 0 = {0: 'zero'} print d[1] # берется значение по ключу d 0[0] = 0 # присваивается значение по ключу del d 0[0] # удаляется пара ключ-значение с данным ключом print d for key, val in d. items(): # цикл по всему словарю print key, val for key in d. keys(): # цикл по ключам словаря print key, d[key] for val in d. values(): # цикл по значениям словаря print val d. update(d 0) # пополняется словарь из другого print len(d) # количество пар в словаре
Типы данных ü File (словарь): f 1 = open("file 1. txt", "r") f 2 = open("file 2. txt", "w") for line in f 1. readlines(): f 2. write(line) f 2. close() f 1. close()
Выражения lambda or and not x in, not in is, is not <, <=, >, >=, !=, == | ^ & <<, >> +, *, /, % +x, -x ~x ** x. атрибут x[индекс] x[от: до] f(аргумент, . . . ) (. . . ) [. . . ] {кл: зн, . . . } `выражения` лямбда-выражение логическое ИЛИ логическое НЕ проверка принадлежности проверка идентичности сравнения побитовое ИЛИ побитовое исключающее ИЛИ побитовое И побитовые сдвиги сложение и вычитание умножение, деление, остаток унарный плюс и смена знака побитовое НЕ возведение в степень ссылка на атрибут взятие элемента по индексу выделение среза (от и до) вызов функции скобки или кортеж список или списковое включение словарь пар ключ-значение преобразование к строке (repr)
Модули В соответствии с модульным подходом к программированию большая задача разбивается на несколько более мелких, каждую из которых (в идеале) решает отдельный модуль. В разных методологиях даются различные ограничения на размер модулей, однако при построении модульной структуры программы важнее составить такую композицию модулей, которая позволила бы свести к минимуму связи между ними. Набор классов и функций, имеющий множество связей между своими элементами, было бы логично расположить в одном модуле. Есть и еще одно полезное замечание: модули должно быть легче использовать, чем написать заново. Это значит, что модуль должен иметь удобный интерфейс: набор функций, классов и констант, который он предлагает своим пользователям. Модуль оформляется в виде отдельного файла с исходным кодом. Стандартные модули находятся в каталоге, где их может найти соответствующий интерпретатор языка. Пути к каталогам, в которых Python ищет модули, можно увидеть в значении переменной sys. path: При запуске программы поиск модулей также идет в текущем каталоге. (Нужно внимательно называть собственные модули, чтобы не было конфликта имен со стандартными или дополнительно установленными модулями. )
Импорт модулей Подключение модуля к программе на Python осуществляется с помощью оператора import. У него есть две формы: import и from-import: import os import pre as re from sys import argv, environ from string import *
Термины Инкапсуляция— это метод построения модульных конструкций, при котором логически независимые функции абстрагируются от нижележащих механизмов путём включения или инкапсулирования этих механизмов в более высокоуровневые объекты. Инкапсуляция - включение в класс данных (или других классов) с ограничением доступа к ним. Абстракция - способ уйти от деталей реализации конкретного множества функций. Абстракция - представление объекта реального мира в виде абстракции, урезанной до его функциональности в некотором контексте.
Функциональное программирование Функции являются абстракциями, в которых детали реализации некоторого действия скрываются за отдельным именем. Хорошо написанный набор функций позволяет использовать их много раз. Стандартная библиотека Python содержит множество готовых и отлаженных функций, многие из которых достаточно универсальны, чтобы работать с широким спектром входных данных. Даже если некоторый участок кода не используется несколько раз, но по входным и выходным данным он достаточно автономен, его смело можно выделить в отдельную функцию. Функциональное программирование - это стиль программирования, использующий только композиции функций. Другими словами, это программирование в выражениях, а не в императивных командах.
Определение и вызов функции Обычная функция: def swapcase(s): return s. swapcase() print swapcase("ABC") Лямбда функция: func = lambda x, y: x + y В языке Python функция может возвратить только одно значение, которое может быть кортежем.
Рекурсия — вызов функции из неё же самой, непосредственно или через другие функции, например, функция A вызывает функцию B, а функция B — функцию A. Количество вложенных вызовов функции или процедуры называется глубиной рекурсии. def lol(a): if a==0: print u"конец рекурсии" else: print a lol(a-1) lol(100)