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

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

Вариант 2360925960.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

Дан массив:

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

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

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

Вопрос 3

Какими способами можно получить доступ к функции «fun()» из модуля «fns»?

  1.  import fns.fun as fun; fun()
  2.  from fns import fun; fun()
  3.  import fns.fun; fns.fun()

Вопрос 4

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

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

Вопрос 5

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

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

Вопрос 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_B.release(); res_C.release(); res_A.release()
 
def proc2():
   res_A.acquire(); res_B.acquire(); res_C.acquire()
   # ...
   res_C.release(); res_B.release(); res_A.release()
 
def proc3():
   res_A.acquire(); res_B.acquire(); res_C.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.  да, возможно

Вопрос 7

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

 
import numpy as np
…
 

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


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

Вопрос 8

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

import threading
 
res_A = threading.Lock()
res_B = threading.Lock()
 
def proc1():
   res_A.acquire()
   res_B.acquire()
   # ...
   res_B.release()
   res_A.release()
 
def proc2():
   res_A.acquire()
   res_B.acquire()
   # ...
   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.  да, обязательно

Вопрос 9

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

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.  0
  2.  12
  3.  2
  4.  сообщение об ошибке
  5.  6

Вопрос 10

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

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