игра брюс 2048
Главная / Программирование / Язык программирования Python / Тест 7

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

Упражнение 1:
Номер 1
В модуле csv для чтения и записи в CSV-файл используются:

Ответ:

 (1) функции для чтения (записи) 

 (2) методы объекта для записи 

 (3) итераторы по строкам в файле (для чтения) 

 (4) интерфейс файлового объекта 


Номер 2
В пакете email для чтения и записи поля сообщения используется синтаксис:

Ответ:

 (1) доступа к атрибуту 

 (2) доступа к элементу словаря 

 (3) итератора 

 (4) именованного атрибута 


Номер 3
В модуле xml.dom.minidom создать объект, представляющий XML-документ, можно:

Ответ:

 (1) вызовом конструктора класса Document 

 (2) вызовом функции-фабрики Document() 

 (3) вызовом функции parseString() 

 (4) вызовом функции toxml() 


Номер 4
С помощью какого класса из какого модуля пакета email можно вложить в сообщение бинарный файл?

Ответ:

 (1) модуль MIMEMessage, класс MIMEMessage 

 (2) модуль MIMEMultipart, класс MIMEMultipart 

 (3) модуль MIMEBase, класс MIMEBase 

 (4) модуль Utils, класс MIME 


Номер 5
Какой класс из какого модуля пакета email служит для вложения в сообщение другого сообщения?

Ответ:

 (1) модуль MIMEMessage, класс MIMEMessage 

 (2) модуль MIMEMultipart, класс MIMEMultipart 

 (3) модуль MIMEBase, класс MIMEBase 

 (4) модуль Utils, класс MIME 


Упражнение 2:
Номер 1
Какие модули входят в пакетemail?

Ответ:

 (1) Header 

 (2) Parser 

 (3) Rfc822 

 (4) Generator 


Номер 2
Какие модули входят в пакет email?

Ответ:

 (1) Mail 

 (2) Parser 

 (3) Message 

 (4) Generator 


Номер 3
Как можно получить список полей сообщения msg?

Ответ:

 (1) msg.keys() 

 (2) [fld for fld in msg] 

 (3) msg.get_params() 

 (4) msg.get_all() 


Номер 4
С помощью какого метода можно последовательно пройти все части сообщения msg?

Ответ:

 (1) msg.get_all() 

 (2) msg.get_params() 

 (3) msg.walk() 

 (4) msg.values() 


Номер 5
Какой метод позволяет узнать, имеет ли данное сообщение несколько частей?

Ответ:

 (1) is_multipart() 

 (2) get_main_type() 

 (3) get_payload() 

 (4) items() 


Упражнение 3:
Номер 1
Что будет выведено в результате выполнения следующего кода:
import email.Header
print email.Header.decode_header("This is subject")

Ответ:

 (1) [('This is subject', 'us-ascii')] 

 (2) [('This is subject', None)] 

 (3) [('This is subject', 'latin-1')] 

 (4) oшибка: кодировка не задана 


Номер 2
Что будет выведено в результате выполнения следующего кода:
import email.Message
m = email.Message.Message()
m['To'] = '123@mail.ru'
m.set_payload('123')
print m
 

Ответ:

 (1) строка From, поля To, Date:, Message-Id и 123 в теле письма 

 (2) строка From, поля To и 123. Тело пустое 

 (3) строка From, поле To и 123 в теле письма 

 (4) указанный выше код некорректен: m.set_payload() требует файлового объекта 


Номер 3
Что будет выведено в результате выполнения следующего кода:
import email
m = email.message_from_string(
    "From: Alice\n"
    "To: Bob\n"
    "To: Chloe\n"
    "\n"
    "Sh!")

print m['to']

Ответ:

 (1) всегда Bob 

 (2) всегда Chloe 

 (3) Bob или Chloe (в общем случае на порядок рассчитывать нельзя) 

 (4) указанный выше код вызовет ошибку, так как в сообщении два поля To 


Номер 4
Что будет выведено в результате выполнения следующего кода:
from xml.sax.saxutils import XMLGenerator
g = XMLGenerator(encoding="utf-8")
g.startDocument()
g.startElement("A", {})
g.startElement("B", {'b': '1'})
g.characters("2")
g.endElement("B")
g.endElement("A")
g.endDocument()
 

Ответ:

 (1) <?xml version="1.0" encoding="utf-8"?><A><B b="1">2</B></A> 

 (2) <?xml version="1.0"?><A><B b="1">2</B></A> 

 (3) <?xml version="1.0" encoding="utf-8"?><A><B><b>1</b>2</B></A> 

 (4) <?xml version="1.0" encoding="utf-8"?><A><B b=1>2</B></A> 


Номер 5
Что будет выведено в результате выполнения следующего кода:
from xml.sax.saxutils import XMLGenerator
g = XMLGenerator(encoding="utf-8")
g.startDocument()
g.startElement("A", {})
g.startElement("B", {'b': '1'})
g.endElement("B")
g.startElement("B", {'b': '2'})
g.endElement("B")
g.endElement("A")
g.endDocument()

Ответ:

 (1) <?xml version="1.0" encoding="utf-8"?><A><B b="1" b="2"></B></A> 

 (2) <?xml version="1.0" encoding="utf-8"?><A><B b="1"></B><B b="2"></B></A> 

 (3) <?xml version="1.0" encoding="utf-8"?><A><B b=1></B><B b=2></B></A> 

 (4) <?xml version="1.0" encoding="utf-8"?><A><B b="1"><B b="2"></B></B></A> 


Упражнение 4:
Номер 1
Какой метод больше подходит для обработки XML, если при этом происходит нелинейное изменение структуры XML-документа?

Ответ:

 (1) SAX 

 (2) DOM 

 (3) текстовое редактирование текста XML-документа 

 (4) все методы одинаково подходят 


Номер 2
Можно ли в XML использовать собственные теги?

Ответ:

 (1) можно 

 (2) можно, если они указаны DTD 

 (3) можно, если указаны пространства имен 

 (4) нельзя 


Номер 3
Зачем в XML пространства имен?

Ответ:

 (1) для маркировки тегов с целью более удобного поиска 

 (2) для сочетания в одном документе XML с различными DTD 

 (3) пространства имен позволяют указывать опции для приложения, обрабатывающего XML 

 (4) пространства имен позволяют включать однотипные XML-документы друг в друга 


Номер 4
Что делает метод normalize() DOM-объекта?

Ответ:

 (1) готовит XML для красивого вывода 

 (2) исправляет XML, добавляя пропущенные теги 

 (3) сводит воедино все идущие подряд текстовые узлы 

 (4) убирает пробелы вокруг текста 


Номер 5
Какие методы позволяют получить атрибут DOM-узла?

Ответ:

 (1) getAttribute() 

 (2) getAttributeNode() 

 (3) getAttribute() и getAttributeNode() 

 (4) атрибуты узла можно получить чтением атрибута DOM-объекта узла node 


Упражнение 5:
Номер 1
Какая ошибка допущена в следующем фрагменте программы, если node — объект, представляющий узел DOM?
for (k, v) in node.attributes.items():
  print k, v

Ответ:

 (1) атрибут node.attributes не словарь, а список 

 (2) атрибут node.attributes — метод. Нужно записать как node.attributes() 

 (3) атрибут node.attributes может быть равен None, что вызовет ошибку в методе items() 

 (4) ошибки нет 


Номер 2
Какой фрагмент XML будет порожден в результате выполнения следующего кода:
from xml.dom import minidom
d = minidom.Document()
e1 = d.createElement("A")
e2 = d.createElement("B")
e3 = d.createElement("C")
e1.appendChild(e2)
e2.appendChild(e3)
print e1.toxml()

Ответ:

 (1) <A><B><C/></B></A> 

 (2) <A><B><C></C></B></A> 

 (3) <C><B><A></A></B></C> 

 (4) <A><B/><C/></A> 


Номер 3
Какой фрагмент XML будет порожден в результате выполнения следующего кода:
from xml.dom import minidom
e1 = minidom.Element("A")
e2 = minidom.Element("B")
e3 = minidom.Element("C")
e1.appendChild(e2)
e1.appendChild(e3)
print e1.toxml()

Ответ:

 (1) <A><B><C/></B></A> 

 (2) <A><B><C></A> 

 (3) <A><B><B/><C><C/></A> 

 (4) <A><B/><C/></A> 


Номер 4
Какой фрагмент XML будет порожден в результате выполнения следующего кода:
from xml.dom import minidom
dom = minidom.Document()
e1 = dom.createElement("A")
e2 = dom.createElement("B")
dom.appendChild(e1)
t = dom.createTextNode("2")
e1.appendChild(t)
e1.appendChild(e2)
print dom.toxml()

Ответ:

 (1) <?xml version="1.0" ?><A>2<B></A> 

 (2) <?xml version="1.0" ?><A>2<B></B></A> 

 (3) <?xml version="1.0" ?><A>2<B/></A> 

 (4) <?xml version="1.0" ?><A><B>2</B></A> 


Номер 5
Какой фрагмент XML будет порожден в результате выполнения следующего кода:
from xml.dom import minidom
dom = minidom.Document()
e1 = dom.createElement("A")
e2 = dom.createElement("B")
dom.appendChild(e1)
t = dom.createTextNode("2")
e1.appendChild(t)
t = dom.createTextNode("3")
e2.appendChild(t)
e1.appendChild(e2)
print dom.toxml()

Ответ:

 (1) <?xml version="1.0" ?><A><B>2</B>3</A> 

 (2) <?xml version="1.0" ?><A><B>3</B>2</A> 

 (3) <?xml version="1.0" ?><A>2<B></B>3</A> 

 (4) <?xml version="1.0" ?><A>2<B>3</B></A> 


Упражнение 6:
Номер 1
Чему равен атрибут namespaceURI у элемента <foaf:nick> из следующего фрагмента XML
<rdf:RDF xmlns:foaf="http://xmlns.com/foaf/0.1/">
...
<foaf:nick>donna</foaf:nick>

Ответ:

 (1) rdf:RDF 

 (2) http://xmlns.com/foaf/0.1/ 

 (3) nick 

 (4) foaf 


Номер 2
Каким образом в документе:
<A><B/><B1/>1<C>2</C></A>
Можно получить текстовый элемент со значением 2?
Предполагается, что он находится в DOM-узле d.

Ответ:

 (1) d.getElementsByTagName('C')[0].firstChild 

 (2) d.childNodes[4] 

 (3) d.lastChild.lastChild.lastChild 

 (4) d.lastChild.lastChild.firstChild 


Номер 3
Каким образом в документе:
<A><B/><B1/>1<C>2</C></A>
Можно получить текстовый элемент со значением 1?
Предполагается, что он находится в DOM-узле d.

Ответ:

 (1) d.getElementsByTagName('A')[0].childNodes[2] 

 (2) d.childNodes[3] 

 (3) d.getElementsByTagName('A').childNodes[2] 

 (4) d.firstChild.firstChild.nextSibling.nextSibling 


Номер 4
Каким образом в документе:
<A><B><C>2</C></B></A>
Можно получить текстовый элемент со значением 2?
Предполагается, что он находится в DOM-узле d

Ответ:

 (1) d.childNodes[0].childNodes[0].childNodes[0].firstChild 

 (2) d.childNodes[3] 

 (3) d.getElementsByTagName('C')[0].childNodes[0] 

 (4) d.firstChild.lastChild.firstChild.lastChild 


Номер 5
Каким образом в документе d:
<A a="1"><B b="1"></B></A>
Можно получить текстовый элемент, имеющий атрибут a?

Ответ:

 (1) d.firstChild 

 (2) d.childNodes[0] 

 (3) d.getElementsByTagName('A')[0].childNodes[0] 

 (4) d.getElementsByTagName('B')[0].parentNode 




Главная / Программирование / Язык программирования Python / Тест 7