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

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

Вариант 2787391864.


Ваше имя*:


Вопрос 1

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

L = []
L.extend([1,2,3])
L.insert(1, "abc")
del L[0][0]
  1.  4
  2.  1
  3.  3
  4.  2
  5.  сообщение об ошибке

Вопрос 2

Как определить функцию в Python?

  1.  с помощью ключевого слова «function»
  2.  с помощью оператора import
  3.  с помощью lambda-выражения
  4.  заданием списка строк исходного кода

Вопрос 3

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

 
import threading
l = threading.RLock()
 
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.  беспрерывно печатает звездочки
  3.  печатает 5 звездочек
  4.  печатает 25 звездочек
  5.  аварийно завершается при попытке выполнить l.acquire() во второй раз

Вопрос 4

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

 
import numpy as np
…
 

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


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

Вопрос 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

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

 
import threading
ready = threading.Event()
 
def proc():
  ready.wait()
  print("Done!")
 
for i in range(5):
  p = threading.Thread(target=proc)
  p.start()
 
print("Prepare!")
ready.set()
 
  1.  программа запускает пять дополнительных потоков, печатающих "Done!" одновременно
  2.  программа создает пять дополнительных потоков, которые запускаются после выполнения ready.set() в главном потоке
  3.  программа запускает пять дополнительных потоков, печатающих "Done!" после выполнения ready.set(), то есть, после печати "Prepare!"
  4.  программа запускает пять дополнительных потоков, один из которых печатает "Done!" после выполнения ready.set(), а остальные ждут следующего ready.set()

Вопрос 7

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

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

Вопрос 8

Из какого модуля будет работать функция «replace()» в следующем примере:

from sre import sub as replace
from string import replace
  1.  из sre.string
  2.  из string
  3.  возникнет ошибка (конфликт имен)
  4.  sre.sub

Вопрос 9

Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?

  1.  directory()
  2.  enumerate()
  3.  locals()

Вопрос 10

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

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