-->

Язык программирования Python

На нашем литературном портале можно бесплатно читать книгу Язык программирования Python, Сузи Роман Арвиевич-- . Жанр: Программирование. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Язык программирования Python
Название: Язык программирования Python
Дата добавления: 16 январь 2020
Количество просмотров: 494
Читать онлайн

Язык программирования Python читать книгу онлайн

Язык программирования Python - читать бесплатно онлайн , автор Сузи Роман Арвиевич

Курс посвящен одному из бурно развивающихся и популярных в настоящее время сценарных языков программирования — Python. Язык Python позволяет быстро создавать как прототипы программных систем, так и сами программные системы, помогает в интеграции программного обеспечения для решения производственных задач. Python имеет богатую стандартную библиотеку и большое количество модулей расширения практически для всех нужд отрасли информационных технологий. Благодаря ясному синтаксису изучение языка не составляет большой проблемы. Написанные на нем программы получаются структурированными по форме, и в них легко проследить логику работы. На примере языка Python рассматриваются такие важные понятия как: объектно–ориентированное программирование, функциональное программирование, событийно–управляемые программы (GUI–приложения), форматы представления данных (Unicode, XML и т.п.). Возможность диалогового режима работы интерпретатора Python позволяет существенно сократить время изучения самого языка и перейти к решению задач в соответствующих предметных областях. Python свободно доступен для многих платформ, а написанные на нем программы обычно переносимы между платформами без изменений. Это обстоятельство позволяет применять для изучения языка любую имеющуюся аппаратную платформу.

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

1 ... 12 13 14 15 16 17 18 19 20 ... 62 ВПЕРЕД
Перейти на страницу:

Для примера с последовательностью Фибоначчи можно построить такой вот генератор:

Листинг

def Fib(N):

a, b = 0, 1

for i in xrange(N):

yield a

a, b = b, a + b

Использовать его не сложнее, чем любой другой итератор:

Листинг

for i in Fib(100):

print i,

Однако следует заметить, что программа в значительной степени упростилась.

Генераторное выражение

В Python 2.4 по аналогии со списковым включением появилось генераторное выражение. По синтаксису оно аналогично списковому, но вместо квадратных скобок используются круглые. Списковое включение порождает список, а, значит, можно ненароком занять очень много памяти. Генератор же, получающийся в результате применения генераторного выражения, списка не создает, он вычисляет каждое следующее значение строго по требованию (при вызове метода next()).

В следующем примере можно прочесть из файла строки, в которых производятся некоторые замены:

Листинг

for line in (l.replace(" — ", " — ") for l in open(«input.dat»)):

print line

Ничто не мешает использовать итераторы и для записи в файл:

Листинг

open(«output.dat», «w»).writelines(

l.replace(" — ", " — ") for l in open(«input.dat»))

Здесь для генераторного выражения не потребовалось дополнительных скобок, так как оно расположено внутри скобок вызова функции.

Карринг

Библиотека Xoltar toolkit (автор Bryn Keller) включает модуль functional, который позволяет упростить использование возможностей функционального программирования. Модуль functional применяет «чистый» Python. Библиотеку можно найти по адресу: http://sourceforge.net/projects/xoltar–toolkit.

При карринге (частичном применении) функции создается новая функция, задавая некоторые аргументы исходной. Следующий пример иллюстрирует частичное применение вычитания:

Листинг

from functional import curry

def subtract(x, y):

return x — y

print subtract(3, 2)

subtract_from_3 = curry(subtract, 3)

print subtract_from_3(2)

print curry(subtract, 3)(2)

Во всех трех случаях будет выведено 1. В следующем примере получается новая функция, подставляя второй аргумент. Вместо другого аргумента вставляется специальное значение Blank:

Листинг

from functional import curry, Blank

def subtract(x, y):

return x + y

print subtract(3, 2)

subtract_2 = curry(subtract, Blank, 2)

print subtract_2(3)

print curry(subtract, Blank, 2)(3)

Заключение

В этой лекции рассматривался принцип построения функциональных программ. Кроме того, было показано, что в Python и его стандартных модулях имеются достаточно мощные выразительные средства для создания функциональных программ. В случае, когда требуются дополнительные возможности, например, карринг, их можно легко реализовать или взять готовую реализацию.

Следует отметить, что итераторы — это практичное продолжение функционального начала в языке Python. Итераторы по сути позволяют организовать так называемые ленивые вычисления (lazy computations), при которых значения вычисляются только когда они непосредственно требуются.

Ссылки по теме

Статья Д. Мертца http://www–106.ibm.com/developerworks/library/l–prog.html

Часто задаваемые вопросы в comp.lang.functional http://www.cs.nott.ac.uk/~gmh/faq.html

4. Лекция: Объектно–ориентированное программирование.

Python проектировался как объектно–ориентированный язык программирования. Это означает (по Алану Кэю, автору объектно–ориентированного языка Smalltalk), что он построен с учетом следующих принципов:

Все данные в нем представляются объектами.

Программу можно составить как набор взаимодействующих объектов, посылающих друг другу сообщения.

Каждый объект имеет собственную часть памяти и может состоять из других объектов.

Каждый объект имеет тип.

Все объекты одного типа могут принимать одни и те же сообщения (и выполнять одни и те же действия).

Язык Python имеет достаточно мощную, но, вместе с тем, самобытную поддержку объектно–ориентированного программирования. В этой лекции ООП представляется без лишних формальностей. Работа с Python убеждает, что писать программы в объектно–ориентированном стиле не только просто, но и приятно.

Примечание:

К сожалению, большинство введений в ООП (даже именитых авторов) изобилует значительным числом терминов, зачастую затемняющих суть вопроса. В данном изложении будут употребляться только те термины, которые необходимы на практике для взаимопонимания разработчиков или для расширения кругозора. Так как в разных языках программирования ООП имеет свои нюансы, в скобках иногда будут даваться синонимы или аналоги того или иного термина.

Примечание:

ОО программирование — это методология написания кода. Здесь не будет подробно рассматриваться объектно–ориентированный анализ и объектно–ориентированное проектирование, которые не менее важны как стадии создания программного обеспечения.

Основные понятия

При процедурном программировании программа разбивается на части в соответствии с алгоритмом: каждая часть (подпрограмма, функция, процедура) является составной частью алгоритма.

При объектно–ориентированном программировании программа строится как совокупность взаимодействующих объектов.

С точки зрения объектно–ориентированного подхода, объект — это нечто, обладающее значением (состоянием), типом (поведением) и индивидуальностью. Когда программист выделяет объекты в предметной области, он обычно абстрагируется (отвлекается) от большинства их свойств, концентрируясь на существенных для задачи свойствах. Над объектами можно производить операции (посылая им сообщения). В языке Python все данные представлены в виде объектов.

Взаимодействие объектов заключается в вызове методов одних объектов другими. Иногда говорят, что объекты посылают друг другу сообщения. Сообщения — это запросы к объекту выполнить некоторые действия. (Сообщения, методы, операции, функции–члены являются синонимами).

Каждый объект хранит свое состояние (для этого у него есть атрибуты) и имеет определенный набор методов. (Синонимы: атрибут, поле, слот, объект–член, переменная экземпляра). Методы определяют поведение объекта. Объекты класса имеют общее поведение.

Объекты описываются не индивидуально, а с помощью классов. Класс — объект, являющийся шаблоном объекта. Объект, созданный на основе некоторого класса, называется экземпляром класса. Все объекты определенных пользователем классов являются экземплярами класса. Тем не менее, объекты даже с одним и тем же состоянием могут быть разными объектами. Говорят, что они имеют разную индивидуальность.

В языке Python для определения класса используется оператор class:

Листинг

class имя_класса(класс1, класс2, …):

# определения методов

Класс определяет тип объекта, то есть его возможные состояния и набор операций.

Абстракция и декомпозиция

Абстракция в ООП позволяет составить из данных и алгоритмов обработки этих данных объекты, отвлекаясь от несущественных (на некотором уровне) с точки зрения составленной информационной модели деталей. Таким образом, программа подвергается декомпозиции на части «дозированной» сложности. Отдельный объект, даже вместе с совокупностью его связей с другими объектами, человеком воспринимается легче (именно так он привык оперировать в реальном мире), чем что–то неструктурированное и монотонное.

Перед тем как начать написание даже самой простенькой объектно–ориентированной программы, необходимо провести анализ предметной области, для того чтобы выявить в ней классы объектов.

1 ... 12 13 14 15 16 17 18 19 20 ... 62 ВПЕРЕД
Перейти на страницу:
Комментариев (0)
название