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

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

Вариант 893220664.


Ваше имя*:


Вопрос 1

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

m = re.match("(a*?)(a+)(b+?)", "aaabbb")
print(m.groups())
  1.  ('aa', 'a', 'bbb')
  2.  (, 'aaa', 'b')
  3.  ('a', 'aa', 'b')
  4.  ('aa', 'a', 'b')

Вопрос 2

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

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

Вопрос 3

Даны матрицы a и b.

 
import numpy as np
…
 

Как получить произведение матриц?


  1.  np.dot(a, b)
  2.  np.vdot(a, b)
  3.  a * b
  4.  np.product(a, b)

Вопрос 4

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

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

Вопрос 5

Что делает следующая программа?

import threading
l = threading.Lock()
 
def proc(nm, n=0):
  l.acquire()
  try:
    if n < 5:
      print("*", end='')
      return proc(nm, n+1)
    else:
      return nm
  finally:
    l.release() 
 
for i in range(5):
  threading.Thread(target=proc, args=(str(i),)).start()
  1.  беспрерывно печатает звездочки
  2.  аварийно завершается при попытке выполнить l.acquire() во второй раз
  3.  печатает 25 звездочек
  4.  печатает 1 звездочку и зависает
  5.  печатает 5 звездочек

Вопрос 6

Для чего в регулярном выражении используется "\w"?

  1.  для обозначения того, что в этом месте нет границы слова
  2.  для обозначения символа, который не является ни буквой, ни цифрой
  3.  для обозначения буквы или цифры
  4.  для обозначения границы слова

Вопрос 7

Укажите набор атрибутов, которые считаются приватными, для экземпляров следующего класса:

 
class Ex:
  def __init__(self, x, y):
    xy = x, y
    self.position = xy
    self._length = self.__len(x, y)
  def __len(self, x, y):
    return abs(x) + abs(y)
  def getlen(self):
    return self._length
 


  1.   __len, xy, x, y, self
  2.   _length, __len
  3.   xy, x, y, self, _length, position
  4.   _length, __len, position

Вопрос 8

Что делает следующая программа?

 
import threading
ready = threading.Event()
 
def proc():
  ready.wait()
  print("Done!")
 
for i in range(5):
  p = threading.Thread(target=proc)
  p.start()
 
print("Prepare!")
ready.set()
 
  1.  программа запускает пять дополнительных потоков, печатающих "Done!" после выполнения ready.set(), то есть, после печати "Prepare!"
  2.  программа создает пять дополнительных потоков, которые запускаются после выполнения ready.set() в главном потоке
  3.  программа запускает пять дополнительных потоков, один из которых печатает "Done!" после выполнения ready.set(), а остальные ждут следующего ready.set()
  4.  программа запускает пять дополнительных потоков, печатающих "Done!" одновременно

Вопрос 9

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

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

Вопрос 10

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

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