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

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

Вариант 4058011498.


Ваше имя*:


Вопрос 1

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

S = 0
for i in range(1, 10):
  if i % 2 == 0:
    S = S + i 
print(S)


  1.  10
  2.  0
  3.  сообщение об ошибке
  4.  30
  5.  1024
  6.  20

Вопрос 2

Имеется следующий массив:

b = array([[1, 2], [0, 1]])

Какие из приведенных ниже операций получения среза вызовут ошибку?


  1.  b[:, 2]
  2.  b[0, ...]
  3.  b[: , :]
  4.  b[...]

Вопрос 3

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

 
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

Вопрос 4

Может ли возникнуть 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.  нет, не возникнет

Вопрос 5

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

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

Вопрос 6

Может ли возникнуть 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_B.acquire()
   res_A.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()


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

Вопрос 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.   _length, __len, position
  4.   xy, x, y, self, _length, position

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

В каких местах допущены ошибки в генераторном выражении, выдающем список координат полей шахматной доски?

(j+str(i) for i in range(1, 9) for j in "abcdefgh")
  1.  ошибка в «j+str(i)»
  2.  ошибка в «for i in range(1, 9)»
  3.  ошибок нет
  4.  ошибка в «for j in "abcdefgh"»