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

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

Вариант 2602142156.


Ваше имя*:


Вопрос 1

Имеется массив c, для которого shape(c) равна (2, 2, 2).

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

  1.  c[:,-1]
  2.  c[1,2]
  3.  c[...,1]
  4.  c[::2,1]

Вопрос 2

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

 
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.   xy, x, y, self, _length, position
  2.   _length, __len
  3.   __len, xy, x, y, self
  4.   _length, __len, position

Вопрос 3

Какую роль играет xx в Python-программе, и чему должен быть равен XXX:

 
class A(object):
  def xx(cls, x):
    ...
  xx = XXX(xx)
 
  1.  статический метод, XXX равен staticmethod
  2.  метод, XXX равен instancemethod
  3.  метод класса, XXX равен classmethod
  4.  функция, XXX можно опустить

Вопрос 4

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

lst = []
 
def A(lst, x):
  return lst + [x]
 
def B(x):
  lst.append(x)
  return lst
 
def C(lst, x):
  return lst.count(x)
  1.  только B
  2.  только A и B
  3.  только B и C
  4.  A, B, C
  5.  никакие

Вопрос 5

Получен новый пакет (в виде исходных кодов) для Python. Какова рекомендуемая процедура установки нового модуля, если известно, что он использует «distutils»?

  1.  выполнить в каталоге с развернутым пакетом команду «python setup.py install»
  2.  выполнить «distutils --install имя модуля»
  3.  в Windows — запустить установщик
  4.  скопировать содержимое в каталог .../site-packages

Вопрос 6

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

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

Вопрос 7

Какое из приведенных ниже регулярных выражений некорректно?

  1.  [a]*?
  2.  a+b++
  3.  (a+b+)+
  4.  (?P<k>(ac))

Вопрос 8

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

S = 0
for i in range(1, 10, 2):
  if i % 2 == 0:
    S = S + i 
print(S)
  1.  0
  2.  1
  3.  1024
  4.  сообщение об ошибке
  5.  20
  6.  10

Вопрос 9

Что такое регулярное выражение?

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

Вопрос 10

В каких точках программы необходимо выполнять acquire() и release() замка Z, чтобы функция f могла правильно работать в многопоточном приложении? (Как обычно, нужно минимизировать общее время, на которое запирается замок)

def f(x, y, z):
  global d1, d2
  # 1
  d1[(x, y)] = z
  # 2
  d2[z] = (x, y)
  # 3
  res = len(d2)
  # 4
  return res 


  1.  замок не нужен
  2.  1: Z.acquire(), 4: Z.release()
  3.  1: Z.acquire(), 3: Z.release()
  4.  1: Z.acquire(), 2: Z.release(), Z.acquire(), 3: Z.release()