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

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

Вариант 4025957285.


Ваше имя*:


Вопрос 1

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

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

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

Вопрос 3

Какие новые имена появятся в текущем модуле после выполнения следующего кода:

import sre as re
from re import compile
  1.  только имена re и compile
  2.  только имена sre и compile
  3.  нельзя одновременно делать import и «from … import»
  4.  имена sre, re и compile

Вопрос 4

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

import os
global v
v = 0
 
def A(x, y):
  return abs(x + y)
 
B = lambda k, v: os.environ.setdefault(k, v)
 
def C(x):
  global v
  v = v + 1
  return v + x


  1.  только B и C
  2.  только C
  3.  никакие
  4.  A, B, C
  5.  только A и C

Вопрос 5

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

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

Вопрос 6

Что произойдет со старыми объектами модуля, используемыми в программе, при его перезагрузке по reload() (после изменения на диске):

import mdl
a = mdl.a
b = mdl.b()
reload(mdl)
  1.  изменится только mdl
  2.  имена из модуля (mdl.a, mdl.b) будут ссылаться на другие объекты. Старые объекты (a, b) не изменятся
  3.  объекты (a, b) изменятся в соответствии с новыми определениями
  4.  изменятся только классы, функции и т.п. (a)

Вопрос 7

Что произойдет при повторном импорте модуля (в том же блоке кода) оператором import

  1.  ничего
  2.  программа завершится по ошибке
  3.  модуль будет заново загружен с диска

Вопрос 8

Какие из приведенных ниже сравнений обязательно дадут True, если объекты x и y имеют одинаковые значения?

  1.  hash(x) == hash(y)
  2.  x is y
  3.  id(x) == id(y)

Вопрос 9

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

import numpy as np
print(np.shape(np.array([[1, 2, 3], [4, 5, 6]]).flat))
  1.  (6,)
  2.  (3, 2)
  3.  (3,)
  4.  (2, 3)

Вопрос 10

Какие из приведенных ниже сравнений обязательно дадут True, если объекты x и y имеют одинаковые значения?

  1.  x is y
  2.  id(x) == id(y)
  3.  x == y