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

Тут можно читать онлайн Array Array - Язык программирования Python - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования Python
  • Автор:
  • Жанр:
  • Издательство:
    неизвестно
  • Год:
    неизвестен
  • ISBN:
    нет данных
  • Рейтинг:
    4/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Array Array - Язык программирования Python краткое содержание

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

Язык программирования Python - читать онлайн бесплатно полную версию (весь текст целиком)

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

Интервал:

Закладка:

Сделать

g.endElement(«operand»)

g.endElement(«operation»)

g.endElement(«operand»)

g.endElement(«operation»)

g.endElement(«expression»)

g.endDocument()

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

Листинг

from xml.dom import minidom

dom = minidom.Document()

e1 = dom.createElement(«expression»)

dom.appendChild(e1)

p1 = dom.createElement(«operation»)

p1.setAttribute('type', '+')

x1 = dom.createElement(«operand»)

x1.appendChild(dom.createTextNode(«2»))

p1.appendChild(x1)

e1.appendChild(p1)

p2 = dom.createElement(«operation»)

p2.setAttribute('type', '*')

x2 = dom.createElement(«operand»)

x2.appendChild(dom.createTextNode(«3»))

p2.appendChild(x2)

x3 = dom.createElement(«operand»)

x3.appendChild(dom.createTextNode(«4»))

p2.appendChild(x3)

x4 = dom.createElement(«operand»)

x4.appendChild(p2)

p1.appendChild(x4)

print dom.toprettyxml()

Легко заметить, что при использовании SAX команды на генерацию тегов и других частей выдаются последовательно, а вот построение одной и той же DOM можно выполнять различными последовательностями команд формирования узла и его соединения с другими узлами.

Конечно, указанные примеры носят довольно теоретический характер, так как на практике строить XML–документы таким образом обычно не приходится.

Анализ XML–документа

Для работы с готовым XML–документом нужно воспользоваться XML–анализаторами. Анализ XML–документа с порождением объекта класса Document происходит всего в одной строчке, с помощью функции parse(). Здесь стоит заметить, что кроме стандартного пакета xml можно поставить пакет PyXML или альтернативные коммерческие пакеты. Тем не менее, разработчики стараются придерживаться единого API, который продиктован стандартом DOM Level 2:

Листинг

import xml.dom.minidom

dom = xml.dom.minidom.parse(«expression.xml»)

dom.normalize()

def output_tree(node, level=0):

if node.nodeType == node.TEXT_NODE:

if node.nodeValue.strip():

print ". "*level, node.nodeValue.strip()

else: # ELEMENT_NODE или DOCUMENT_NODE

atts = node.attributes or {}

att_string = ", ".join(

["%s=%s " % (k, v) for k, v in atts.items()])

print ". "*level, node.nodeName, att_string

for child in node.childNodes:

output_tree(child, level+1)

output_tree(dom)

В этом примере дерево выводится с помощью определенной функции output_tree(), которая принимает на входе узел и вызывается рекурсивно для всех вложенных узлов.

В результате получается примерно следующее:

Листинг

#document

. expression

. . operation type=+

… operand

… . 2

… operand

… . operation type=*

… . . operand

… … 3

… . . operand

… … 4

Здесь же применяется метод normalize() для того, чтобы все текстовые фрагменты были слиты воедино (в противном случае может следовать подряд несколько узлов с текстом).

Можно заметить, что даже в небольшом примере использовались атрибуты узлов: node.nodeType указывает тип узла, node.nodeValue применяется для доступа к данным, node.nodeName дает имя узла (соответствует названию тега), node.attributes дает доступ к атрибутам узла. node.childNodes применяется для доступа к дочерним узлам. Этих свойств достаточно, чтобы рекурсивно обойти дерево.

Все узлы являются экземплярами подклассов класса Node. Они могут быть следующих типов:

Название Описание Метод для создания

ELEMENT_NODE Элемент createElement(tagname)

ATTRIBUTE_NODE Атрибут createAttribute(name)

TEXT_NODE Текстовый узел createTextNode(data)

CDATA_SECTION_NODE Раздел CDATA

ENTITY_REFERENCE_NODE Ссылка на сущность

ENTITY_NODE Сущность

PROCESSING_INSTRUCTION_NODE Инструкция по обработке createProcessingInstruction(target, data)

COMMENT_NODE Комментарий createComment(comment)

DOCUMENT_NODE Документ

DOCUMENT_TYPE_NODE Тип документа

DOCUMENT_FRAGMENT_NODE Фрагмент документа

NOTATION_NODE Нотация

В DOM документ является деревом, в узлах которого стоят объекты нескольких возможных типов. Узлы могут иметь атрибуты или данные. Доступ к узлам можно осуществлять через атрибуты вроде childNodes (дочерние узлы), firstChild (первый дочерний узел), lastChild (последний дочерний узел), parentNode (родитель), nextSibling (следующий брат), previousSibling (предыдущий брат).

Выше уже говорилось о методе appendChild(). К нему можно добавить методы insertBefore(newChild, refChild) (вставить newChild до refChild), removeChild(oldChild) (удалить дочерний узел), replaceChild(newChild, oldChild) (заметить oldChild на newChild). Есть еще метод cloneNode(deep), который клонирует узел (вместе с дочерними узлами, если задан deep=1).

Узел типа ELEMENT_NODE, помимо перечисленных методов «просто» узла, имеет много других методов. Вот основные из них:

Листинг

tagName

Имя типа элемента.

Листинг

getElementsByTagName(tagname)

Получает элементы с указанным именем tagname среди всех потомков данного элемента.

Листинг

getAttribute(attname)

Получить значение атрибута с именем attname.

Листинг

getAttributeNode(attrname)

Возвращает атрибут с именем attrname в виде объекта–узла.

Листинг

removeAttribute(attname)

Удалить атрибут с именем attname.

Листинг

removeAttributeNode(oldAttr)

Удалить атрибут oldAttr (задан в виде объекта–узла).

Листинг

setAttribute(attname, value)

Устанавливает значение атрибута attname равным строке value.

Листинг

setAttributeNode(newAttr)

Добавляет новый узел–атрибут к элементу. Старый атрибут заменяется, если имеет то же имя.

Здесь стоит заметить, что атрибуты в рамках элемента повторяться не должны. Их порядок также не важен с точки зрения информационной модели XML.

В качестве упражнения предлагается составить функцию, которая будет вычислять значение выражения, заданного в XML–представлении.

Пространства имен

Еще одной интересной особенностью XML, о которой нельзя не упомянуть, являются пространства имен. Они позволяют составлять XML–документы из кусков различных схем. Например, таким образом в XML–документ можно включить кусок HTML, указав во всех элементах HTML принадлежность особому пространству имен.

Следующий пример XML–кода показывает синтаксис пространств имен (файл foaf.rdf):

Листинг

xmlns:dc=«http://http://purl.org/dc/elements/1.1/"

xmlns:rdfs=«http://www.w3.org/2000/01/rdf–schema#"

xmlns:foaf=«http://xmlns.com/foaf/0.1/"

xmlns:rdf=«http://www.w3.org/1999/02/22–rdf–syntax–ns#"

>

8. Лекция: Разработка Web–приложений.

Одна из главных сфер применения языка Python — web–приложения — представляется в этой лекции на конкретных примерах. Кроме того, делается акцент на типичных слабых местах безопасности web–приложений.

Под web–приложением будет пониматься программа, основной интерфейс пользователя которой работает в стандартном WWW–браузере под управлением HTML и XML–документов. Для улучшение качества интерфейса пользователя часто применяют JavaScript, однако это несколько снижает универсальность интерфейса. Следует заметить, что интерфейс можно построить на Java–или Flash–апплетах, однако, такие приложения сложно назвать web–приложениями, так как Java или Flash могут использовать собственные протоколы для общения с сервером, а не стандартный для WWW протокол HTTP.

При создании web–приложений стараются отделить Форму (внешний вид, стиль), Содержание и Логику обработки данных. Современные технологии построения web–сайтов дают возможность подойти достаточно близко к этому идеалу. Тем не менее, даже без применения многоуровневых приложений можно придерживаться стиля, позволяющего изменять любой из этих аспектов, не затрагивая (или почти не затрагивая) двух других. Рассуждения на эту тему будут продолжены в разделе, посвященном средам разработки.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array Array читать все книги автора по порядку

Array Array - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Язык программирования Python, автор: Array Array. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x