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

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

Вариант 3941815485.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

 
class A(type):
  def __init__(cls, name, bases, dict):
    return super(A, cls).__init__(cls, name, bases, dict)
 
B = A("B", (), {})
 
  1.  метакласс. A является метаклассом для B
  2.  наследование. B получается наследованием A
  3.  метакласс. B является метаклассом для A
  4.  ассоциация. A содержит ссылки на B

Вопрос 3

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

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

Вопрос 4

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

m = re.match("(a*?)(a+)(b+?)", "aaabbb")
print(m.groups())
  1.  ('a', 'aa', 'b')
  2.  (, 'aaa', 'b')
  3.  ('aa', 'a', 'bbb')
  4.  ('aa', 'a', 'b')

Вопрос 5

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

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

Вопрос 6

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

 
import numpy as np
print( np.shape(np.transpose(np.ones((2, 3, 4)), [1, 0, 2])) )
 
  1.  (2, 4, 3)
  2.  (3, 2, 4)
  3.  (4, 3, 2)
  4.  (3, 4, 2)

Вопрос 7

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

  1.  vars()
  2.  enumerate()
  3.  globs()

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

Класс имеет методы «__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