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

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

Вариант 702030267.


Ваше имя*:


Вопрос 1

Класс имеет методы «__iter__()» и «next()».

О чем это говорит и как пользоваться этим методом?

 
class A:
  #...
  def __iter__(self): 
    #...
  def next(self):
    #...
a = A(1, 2, 3)
 
  1.  итератор. Пользоваться можно так: for i in a: print i
  2.  последовательность. Пользоваться можно так: print a[2]
  3.  генератор. Пользоваться можно так: for i in a(): print i
  4.  нет особого названия. Пользоваться можно так: print a.next()

Вопрос 2

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

 
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.  классы не связаны между собой
  2.  агрегация. Экземпляры B содержат экземпляры A
  3.  ассоциация. Экземпляры A содержат ссылки на экземпляры B
  4.  ассоциация. Экземпляры B содержат ссылки на экземпляры A

Вопрос 3

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

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

Вопрос 4

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

A = B = 1
a = "A" * 5
b = "B" * 5
a = a + b * 5
print(a, b)
  1.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB BBBBB
  2.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB, BBBBB
  3.  сообщение об ошибке в четвертой строке
  4.  AAAAABBBBBBBBBBBBBBBBBBBBBBBBB BBBBB
  5.  30 5

Вопрос 5

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

 
class M(object):
  def xx(self):
    print "self:", self
 
  1.  метафункция
  2.  функция-фабрика
  3.  статистический метод
  4.  метод класса

Вопрос 6

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

 
def m1(self):
  print("m1")
 
class M:
  def m2(self):
    print("m2")
 
m = M()
 


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


  1.   m.m1 = m.m2; m.m1()
  2.   M.m1 = m1; m.m1()
  3.   m.m1 = m1; m.m1(m)
  4.   m.m1 = m1; m.m1()

Вопрос 7

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

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

Вопрос 8

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

a = "AB"
b = "BC"
print("%sa, b" % a, b)
  1.  сообщение об ошибке
  2.  (AB, BC)a, b
  3.  ('AB', 'BC')a, b
  4.  "AB", "BC"a, b
  5.  ABa, b BC

Вопрос 9

Может ли возникнуть 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_B.release(); res_C.release(); res_A.release()
 
def proc2():
   res_B.acquire(); res_C.acquire(); res_A.acquire()
   # ...
   res_C.release(); res_B.release(); res_A.release()
 
def proc3():
   res_C.acquire(); res_A.acquire(); res_B.acquire()
   # ...
   res_A.release(); res_B.release(); res_C.release()
 
p1 = threading.Thread(target=proc1, name="t1")
p2 = threading.Thread(target=proc2, name="t2")
p3 = threading.Thread(target=proc3, name="t3")
p1.start(); p2.start(); p3.start()
p1.join(); p2.join(); p3.join();
 


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

Вопрос 10

Какой длины строки можно использовать в Python?

  1.  65536 символов
  2.  256 символов
  3.  длина строк ограничивается имеющейся памятью
  4.  длины строк должны быть не больше, чем при их определении