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

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

Вариант 200810362.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

Имеются следующие определения:

 
class A:
  def am(self):
    print "am"
 
class B:
  def bm(self):
    print "bm"
 
a = A()
b = B()
 


Какой из фрагментов кода содержит ошибки?


  1.   a.am = b.bm; a.am()
  2.   a.am = b.bm; a.bm()
  3.   A.am = B.bm; a.am()
  4.   A.am = b.bm; a.am()

Вопрос 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.  только C
  3.  только B и C
  4.  A, B, C

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

Вопрос 5

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

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

Вопрос 6

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

l = [1, 2, 3]
l[1] = l[1:2]
print(l[1])
  1.  [2]
  2.  2
  3.  сообщение об ошибке
  4.  [1]
  5.  [1, 2]

Вопрос 7

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

(" ", )
  1.  tuple (кортеж)
  2.  unicode (Unicode-строка)
  3.  это синтаксическая ошибка
  4.  str (строка)

Вопрос 8

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

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

Вопрос 9

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

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


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

Вопрос 10

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

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