Скачать презентацию Инструментальные средства ИС PYTHON Введение в программирование Скачать презентацию Инструментальные средства ИС PYTHON Введение в программирование

Python.pptx

  • Количество слайдов: 22

Инструментальные средства ИС PYTHON Введение в программирование Инструментальные средства ИС PYTHON Введение в программирование

Общая информация PYTHON (лучше произносить Общая информация PYTHON (лучше произносить "питон", хотя некоторые говорят "пайтон") - интерпретируемый, объектно-ориентированный высокоуровневый язык программирования с динамической семантикой. Встроенные высокоуровневые структуры данных в сочетании с динамической типизацией и связыванием делают язык привлекательным для быстрой разработки приложений (RAD, Rapid Application Development). Кроме того, его можно использовать в качестве сценарного языка для связи программных компонентов. Синтаксис Python прост в изучении, в нем придается особое значение читаемости кода, а это сокращает затраты на сопровождение программных продуктов. 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 Последовательность операторов Более общий случай: 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 Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся Циклы: While Третьей необходимой алгоритмической конструкцией является цикл. С помощью цикла можно описать повторяющиеся действия. В Python имеются два вида циклов: цикл ПОКА (выполняется некоторое условие) и цикл ДЛЯ (всех значений последовательности). Следующий пример иллюстрирует цикл ПОКА на Python: s = "abcdefghijklmnop" while s != "": print s s = s[1: -1]

Циклы: While Следующий пример читает строки из файла и выводит те, у которых длина Циклы: 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 Цикл for выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится таблица умножения: for i in range[1, 10): for j in range[1, 10): print "%2 i" % (i*j), print

Функции Цикл for выполняет тело цикла для каждого элемента последовательности. В следующем примере выводится Функции Цикл 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 (дробные): а = Типы данных ü 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 Типы данных ü 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: Типы данных ü 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 (словарь): 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 <, <=, Выражения lambda or and not x in, not in is, is not <, <=, >, >=, !=, == | ^ & <<, >> +, *, /, % +x, -x ~x ** x. атрибут x[индекс] x[от: до] f(аргумент, . . . ) (. . . ) [. . . ] {кл: зн, . . . } `выражения` лямбда-выражение логическое ИЛИ логическое НЕ проверка принадлежности проверка идентичности сравнения побитовое ИЛИ побитовое исключающее ИЛИ побитовое И побитовые сдвиги сложение и вычитание умножение, деление, остаток унарный плюс и смена знака побитовое НЕ возведение в степень ссылка на атрибут взятие элемента по индексу выделение среза (от и до) вызов функции скобки или кортеж список или списковое включение словарь пар ключ-значение преобразование к строке (repr)

Модули В соответствии с модульным подходом к программированию большая задача разбивается на несколько более Модули В соответствии с модульным подходом к программированию большая задача разбивается на несколько более мелких, каждую из которых (в идеале) решает отдельный модуль. В разных методологиях даются различные ограничения на размер модулей, однако при построении модульной структуры программы важнее составить такую композицию модулей, которая позволила бы свести к минимуму связи между ними. Набор классов и функций, имеющий множество связей между своими элементами, было бы логично расположить в одном модуле. Есть и еще одно полезное замечание: модули должно быть легче использовать, чем написать заново. Это значит, что модуль должен иметь удобный интерфейс: набор функций, классов и констант, который он предлагает своим пользователям. Модуль оформляется в виде отдельного файла с исходным кодом. Стандартные модули находятся в каталоге, где их может найти соответствующий интерпретатор языка. Пути к каталогам, в которых Python ищет модули, можно увидеть в значении переменной sys. path: При запуске программы поиск модулей также идет в текущем каталоге. (Нужно внимательно называть собственные модули, чтобы не было конфликта имен со стандартными или дополнительно установленными модулями. )

Импорт модулей Подключение модуля к программе на Python осуществляется с помощью оператора import. У Импорт модулей Подключение модуля к программе на 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( Определение и вызов функции Обычная функция: 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)