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

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

Вариант 1761185121.


Прошло 00:00:03.
Ваше имя*:


Вопрос 1

Сколько элементов будет содержать словарь D (то есть, чему будет равно len(D)) после выполнения следующего кода:

D = {}
D[1], D[2], D[3] = "ABB"
D[0], D[1] = "AB"
  1.  2
  2.  3
  3.  1
  4.  4
  5.  сообщение об ошибке

Вопрос 2

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

a = "A"
b = "B"
a, b = b + a
print(a + b)
  1.  АВА
  2.  АВ
  3.  сообщение об ошибке в третьей строке
  4.  ВА

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

Вопрос 4

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

 
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

Вопрос 5

Что будет выведено в результате выполнения сопоставления с регулярным выражением?

import re
 
m = re.match("(?P<a>A*?)(?:B+)(?P<b>B+?)(?P<c>C??)", "AAAABBBBC")
print(m.groupdict())
  1.  {'a': 'AAAA', 'b': 'B', 'c': }
  2.  {'a': 'AAAA', 'b': 'B'}
  3.  {'a': 'AAAA', 'c': 'C', 'b': 'B'}
  4.  {'a': 'AAAA', 'b': 'BBBB'}

Вопрос 6

Какое множество строк описывает регулярное выражение «[ac][ab]»?

  1.  "ac", "ab"
  2.  "[ac][ab]"
  3.  "aa", "ab", "ca", "cb"
  4.  "aa", "ab", "ba", "bb", "ca", "cb"

Вопрос 7

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

from sre import *
from string import *
split('a', 'b')
  1.  возникнет ошибка (конфликт имен)
  2.  из re
  3.  из string
  4.  из sre.string

Вопрос 8

Какими способами можно получить доступ к функции «fun()» из модуля «fns»?

  1.  from fns import fun; fun()
  2.  import fns.fun as fun; fun()
  3.  import fns.fun; fns.fun()

Вопрос 9

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

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

Вопрос 10

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

L = []
L.append([1,2,3])
L = L*2
  1.  4
  2.  2
  3.  6
  4.  7
  5.  сообщение об ошибке
  6.  1