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

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

Вариант 2959969802.


Ваше имя*:


Вопрос 1

Класс имеет методы «__iter__()» и «next()».

О чем это говорит и как пользоваться этим методом?

 
class A:
  #...
  def __iter__(self): 
    #...
  def next(self):
    #...
a = A(1, 2, 3)
 
  1.  последовательность. Пользоваться можно так: print a[2]
  2.  итератор. Пользоваться можно так: for i in a: print i
  3.  нет особого названия. Пользоваться можно так: print a.next()
  4.  генератор. Пользоваться можно так: for i in a(): print i

Вопрос 2

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

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

Вопрос 3

Что делает следующая программа?

import threading
l = threading.Lock()
 
def proc(nm, n=0):
  l.acquire()
  try:
    if n < 5:
      print("*", end='')
      return proc(nm, n+1)
    else:
      return nm
  finally:
    l.release() 
 
for i in range(5):
  threading.Thread(target=proc, args=(str(i),)).start()
  1.  печатает 1 звездочку и зависает
  2.  аварийно завершается при попытке выполнить l.acquire() во второй раз
  3.  печатает 5 звездочек
  4.  беспрерывно печатает звездочки
  5.  печатает 25 звездочек

Вопрос 4

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

a = "AB"
b = "BC"
print("%sa, b" % a, b)
  1.  ABa, b BC
  2.  (AB, BC)a, b
  3.  "AB", "BC"a, b
  4.  ('AB', 'BC')a, b
  5.  сообщение об ошибке

Вопрос 5

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

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


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

Вопрос 6

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

 
import numpy as np
…
 

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


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

Вопрос 7

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

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

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

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

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