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

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

Вариант 944912923.


Ваше имя*:


Вопрос 1

Имеются следующие определения:

 
class A:
  def am(self):
    print "am"
 
class B:
  def bm(self):
    print "bm"
 
a = A()
b = B()
 


Какой из фрагментов кода содержит ошибки?


  1.   A.am = B.bm; a.am()
  2.   a.am = b.bm; a.am()
  3.   A.am = b.bm; a.am()
  4.   a.am = b.bm; a.bm()

Вопрос 2

В каких точках программы необходимо выполнять acquire() и release() замка Z, чтобы функция f могла правильно работать в многопоточном приложении? (Как обычно, нужно минимизировать общее время, на которое запирается замок)

def f(x, y, z):
  global d
  # 1
  d[(x, y)] = z
  # 2
  res = len(d)
  # 3
  return res


  1.  1: Z.acquire(), 3: Z.release()
  2.  замок не нужен
  3.  1: Z.acquire(), 2: Z.release()
  4.  1: Z.acquire(), 2: Z.release(), Z.acquire(), 3: Z.release()

Вопрос 3

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

L = []
L.append([1,2,3])
L = L*2
  1.  4
  2.  сообщение об ошибке
  3.  1
  4.  7
  5.  2
  6.  6

Вопрос 4

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

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

Вопрос 5

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

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


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

Вопрос 6

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

(0 < [1, 4][1] < 3) + 1
  1.  1
  2.  это синтаксическая ошибка
  3.  2
  4.  3
  5.  0

Вопрос 7

Какие из перечисленных функций имеют побочные эффекты:

 
def A(lst):
  return lambda x: lst + [x]
 
def B(x):
  return lambda lst: lst + [x]
 
def C(x, cache={}):
  return cache.setdefault(x, lambda lst: lst + [x])
 
  1.  только C
  2.  никакие
  3.  A, B, C
  4.  только B и C

Вопрос 8

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

l = [1, 2, 3]
l[1] = l[1:2]
print(l[1])
  1.  [1, 2]
  2.  [2]
  3.  сообщение об ошибке
  4.  [1]
  5.  2

Вопрос 9

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

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

Вопрос 10

Как называется отношение, которое имеют следующие два класса:

 
class A:
  def __init__(self, **atts):
    self._atts = atts
  def __repr__(self):
    return ":" + str(self._atts)
 
class B(list):
  def __init__(self, *params):
    super(B, self).__init__(params)
 
  1.  ассоциация. Экземпляры A содержат ссылки на экземпляры B
  2.  агрегация. Экземпляры B содержат экземпляры A
  3.  классы не связаны между собой
  4.  ассоциация. Экземпляры B содержат ссылки на экземпляры A