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

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

Вариант 2855619101.


Ваше имя*:


Вопрос 1

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

0 < [1, 4][1] < 3 and None
  1.  None
  2.  False
  3.  это синтаксическая ошибка
  4.  True

Вопрос 2

Из какого модуля будет работать функция split() в следующем примере:

from sre import *
from string import *
split('a', 'b')
  1.  из sre.string
  2.  из re
  3.  из string
  4.  возникнет ошибка (конфликт имен)

Вопрос 3

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

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

Вопрос 4

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

lst = []
 
def A(l, x):
  return lst + [x]
 
def B(l, x):
  lst.append(x)
  return lst
 
def C(l, x):
  return lst.count(x)


  1.  никакие
  2.  A, B, C
  3.  только B и C
  4.  только B
  5.  только A и B

Вопрос 5

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

 
class A:
  def __init__(self, x):
    self._mydata = x
  def m1(self):
    raise NotImplementedError
 
class B(A):
  def __init__(self, x):
    super(B, self).__init__(x)
  def m1(self):
    return self._mydata
 
  1.  наследование. B получается наследованием A
  2.  наследование. A получается наследованием B
  3.  ассоциация. Экземпляры A содержат ссылки на экземпляры класса B
  4.  агрегация. Экземпляры A содержат экземпляры класса B

Вопрос 6

Может ли возникнуть deadlock в следующей программе:

import threading
 
res_A = threading.Lock()
res_B = threading.Lock()
res_C = threading.Lock()
 
def proc1():
   res_A.acquire()
   res_B.acquire()
   res_C.acquire()
   # ...
   res_C.release()
   res_B.release()
   res_A.release()
 
def proc2():
   res_A.acquire()
   res_B.acquire()
   res_C.acquire()
   # ...
   res_C.release()
   res_B.release()
   res_A.release()
 
p1 = threading.Thread(target=proc1, name="t1")
p2 = threading.Thread(target=proc2, name="t2")
p1.start()
p2.start()
p1.join()
p2.join()


  1.  да, возможно
  2.  нет, не возникнет
  3.  да, обязательно

Вопрос 7

Какую роль играет xx в следующей Python-программе

 
def xx(func):
  class X(object):
    pass
  setattr(X, func.__name__, func)
  return X
 
  1.  функция-фабрика
  2.  функция-фабрика классов
  3.  метакласс
  4.  метод класса

Вопрос 8

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

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

Вопрос 9

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

(" ", )
  1.  str (строка)
  2.  это синтаксическая ошибка
  3.  tuple (кортеж)
  4.  unicode (Unicode-строка)

Вопрос 10

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

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


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