Простой тест на знание Python — вопросы

Материал из DISCOPAL
Перейти к: навигация, поиск
12345678910
Простой тест на знание Python

Вариант 409288759.


Ваше имя*:


Вопрос 1

Получен новый пакет (в виде исходных кодов) для Python. Какова рекомендуемая процедура установки нового модуля, если известно, что он использует «distutils»?

  1.  выполнить в каталоге с развернутым пакетом команду «python setup.py install»
  2.  скопировать содержимое в каталог .../site-packages
  3.  в Windows — запустить установщик
  4.  выполнить «distutils --install имя модуля»

Вопрос 2

Что произойдет со старыми объектами модуля, используемыми в программе, при его перезагрузке по reload() (после изменения на диске):

import mdl
a = mdl.a
b = mdl.b()
reload(mdl)
  1.  изменится только mdl
  2.  изменятся только классы, функции и т.п. (a)
  3.  объекты (a, b) изменятся в соответствии с новыми определениями
  4.  имена из модуля (mdl.a, mdl.b) будут ссылаться на другие объекты. Старые объекты (a, b) не изменятся

Вопрос 3

Сколько символов будет содержать строка S после выполнения следующего кода:

S = "\n123\\"
  1.  4
  2.  6
  3.  3
  4.  сообщение об ошибке
  5.  7
  6.  5

Вопрос 4

Какие встроенные функции служат для создания объектов определенного типа (конструкторы классов/функции-фабрики…)?

  1.  tuple()
  2.  chr()
  3.  isinstance()

Вопрос 5

Имеется следующий генератор для слияния двух отсортированных последовательностей:

def merge(a1, a2):
 a1 = list(a1)
 a2 = list(a2)
 while a1 or a2:
   if a1 and (not a2 or a1[0] < a2[0]):
     r = a1
   else:
     r = a2
   yield r[0]
   del r[0]

Какие ошибки или особенности имеет эта программа?


  1.  в последней строке каждый раз удаляется элемент из временного списка, а не из «a1» или «a2»: генератор зациклится
  2.  ошибок нет
  3.  генератор будет портить переданные ему списки
  4.  генератор оставит за собой временный список, так как «del» происходит после «yield»

Вопрос 6

Какого типа значение получится в результате вычисления следующего выражения:

[ " "]
  1.  это синтаксическая ошибка
  2.  str (строка)
  3.  array (массив)
  4.  tuple (кортеж)
  5.  list (список)

Вопрос 7

Каким из приведенных ниже способов можно привести латинские символы строки s к нижнему регистру?

  1.  s.lower()
  2.  s.replace('A-Z', 'a-z')
  3.  s.tolower()
  4.  s.islower()

Вопрос 8

Что будет выведено следующей программой?

S = 0
for i in range(1, 10):
  if i % 2 == 0:
    S = S + i 
print(S)


  1.  1024
  2.  30
  3.  0
  4.  10
  5.  сообщение об ошибке
  6.  20

Вопрос 9

Какие методы необходимо иметь x для задания следующих действий:

>>> x = X(0)
>>> print x + 10
10
>>> print x - 23
-23
>>> print x >> 2
0


  1.  __init__, __add__, __sub__, __rshift__, __str__
  2.  __init__, __add__, __radd__, __sub__, __rsub__, __rshift__, __rrshift__
  3.  __init__, __add__, __sub__, __rshift__
  4.  __init__, __add__, __sub__, __rshift__, __str__, __repr__

Вопрос 10

Что будет выведено в результате выполнения сопоставления с регулярным выражением?

import re
 
m = re.match("(?P<a>A*?)(?:B+)(?P<b>B+?)(?P<c>C??)", "AAAABBBBC")
print(m.groupdict())
  1.  {'a': 'AAAA', 'c': 'C', 'b': 'B'}
  2.  {'a': 'AAAA', 'b': 'B'}
  3.  {'a': 'AAAA', 'b': 'BBBB'}
  4.  {'a': 'AAAA', 'b': 'B', 'c': }