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

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

Вариант 1029382306.


Ваше имя*:


Вопрос 1

В каких точках программы необходимо выполнять acquire() и release() замка Z, чтобы функция f могла правильно работать в многопоточном приложении? (Как обычно, нужно минимизировать общее время, на которое запирается замок)

def f(x, y, z):
  global d
  # 1
  d[(x, y)] = z
  # 2
  res = len(d)
  # 3
  return res


  1.  1: Z.acquire(), 3: Z.release()
  2.  1: Z.acquire(), 2: Z.release()
  3.  замок не нужен
  4.  1: Z.acquire(), 2: Z.release(), Z.acquire(), 3: Z.release()

Вопрос 2

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

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

Вопрос 3

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

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

Вопрос 4

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

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


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


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

Вопрос 5

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

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

Вопрос 6

Какие методы необходимо иметь x для задания следующих действий:

>>> x = X(0)
>>> print x + 10
10
>>> print x - 23
-23
>>> print x >> 2
0


  1.  __init__, __add__, __sub__, __rshift__, __str__
  2.  __init__, __add__, __radd__, __sub__, __rsub__, __rshift__, __rrshift__
  3.  __init__, __add__, __sub__, __rshift__, __str__, __repr__
  4.  __init__, __add__, __sub__, __rshift__

Вопрос 7

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

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

Вопрос 8

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

[x for x in itertools.takewhile(lambda x: x < 23, itertools.count(10))]
  1.  0
  2.  23
  3.  13
  4.  10

Вопрос 9

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

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

Вопрос 10

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

A = B = 1
a = "A" * 5
b = "B" * 5
a = a + b * 5
print(a, b)
  1.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB, BBBBB
  2.  сообщение об ошибке в четвертой строке
  3.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB BBBBB
  4.  30 5
  5.  AAAAABBBBBBBBBBBBBBBBBBBBBBBBB BBBBB