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

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

Вариант 3371378526.


Ваше имя*:


Вопрос 1

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

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


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

Вопрос 2

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

def f(x):
  # 1
  fc = open("file.txt", "w+")
  # 2
  fc.write(x)
  # 3
  fc.write("\n")
  # 4
  fc.close()
  # 5


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

Вопрос 3

Класс имеет метод __call__(). Какому классу он может "подражать" и как пользоваться этим методом?

 
class A:
  #...
  def __call__(self, *params, **kws):
    #...
a = A()
 


  1.  кортеж. Пользоваться можно так: a = (1, 2, 3)
  2.  список. Пользоваться можно так: a[0] = 5
  3.  функция. Пользоваться можно так: b = a(2,3,4)
  4.  кодовый объект. Пользоваться можно так: eval(a)

Вопрос 4

Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?

  1.  directory()
  2.  locals()
  3.  enumerate()

Вопрос 5

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

 
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.  никакие
  2.  A, B, C
  3.  только B и C
  4.  только C

Вопрос 6

Какое из приведенных ниже регулярных выражений некорректно?

  1.  [a]*?
  2.  (?P<k>(ac))
  3.  a+b++
  4.  (a+b+)+

Вопрос 7

Дан массив:

>>>c = array([[1,2], [2,3], [4,5]])

Чему равен срез c[:,1]?

  1.  array([2, 3, 5])
  2.  array([1, 2, 4])
  3.  array([1, 2])
  4.  array([2, 3])

Вопрос 8

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

S = 0
for i in range(1, 10):
  for j in range(1, 3):
    if i == j:
      S = S + i + j
      break
print(S)
  1.  12
  2.  2
  3.  сообщение об ошибке
  4.  0
  5.  6

Вопрос 9

Сокрытие информации о внутреннем устройстве объекта, при котором вся работа с объектом ведется только через общедоступный интерфейс называется

  1.  декомпозицией
  2.  агрегацией
  3.  инкапсуляцией
  4.  абстракцией

Вопрос 10

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

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