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

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

Вариант 535538803.


Ваше имя*:


Вопрос 1

Какие из перечисленных функций имеют побочные эффекты:

lst = []
 
def A(l, x):
  return lst + [x]
 
def B(l, x):
  lst.append(x)
  return lst
 
def C(l, x):
  return lst.count(x)


  1.  только A и B
  2.  никакие
  3.  только B и C
  4.  только B
  5.  A, B, C

Вопрос 2

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

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

Вопрос 3

Сколько общедоступных методов будет иметь экземпляр класса ABC и что возвратит вызов метода a()?

class A: 
    def a(self): 
        return 'a'
 
class B: 
    def b(self): 
        return 'b'  
 
class C: 
    def c(self): 
        return 'c'  
 
class AB(A, B): 
    def a(self): 
        return 'ab'
 
class BC(B, C): 
    def a(self): 
        return 'bc'
 
class ABC(AB, B, C): 
    def a(self): 
        return 'abc'
 


  1.  3, возвратит abc
  2.  3, возвратит ab
  3.  3, возвратит a
  4.  5, возвратит a

Вопрос 4

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

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

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

Вопрос 5

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

 
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!" после выполнения ready.set(), то есть, после печати "Prepare!"
  2.  программа создает пять дополнительных потоков, которые запускаются после выполнения ready.set() в главном потоке
  3.  программа запускает пять дополнительных потоков, печатающих "Done!" одновременно
  4.  программа запускает пять дополнительных потоков, один из которых печатает "Done!" после выполнения ready.set(), а остальные ждут следующего ready.set()

Вопрос 6

Класс имеет метод __call__(). Какому классу он может "подражать" и как пользоваться этим методом?

 
class A:
  #...
  def __call__(self, *params, **kws):
    #...
a = A()
 


  1.  список. Пользоваться можно так: a[0] = 5
  2.  функция. Пользоваться можно так: b = a(2,3,4)
  3.  кортеж. Пользоваться можно так: a = (1, 2, 3)
  4.  кодовый объект. Пользоваться можно так: eval(a)

Вопрос 7

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

 
class A:
  def __init__(self, x):
    self._mydata = B(x)
 
class B:
  def __init__(self, x):
    self._mydata = x
 
  1.  метакласс. B является метаклассом для A
  2.  ассоциация. Экземпляр A содержит ссылки на экземпляры B
  3.  наследование. A получается наследованием B
  4.  метакласс. A является метаклассом для B

Вопрос 8

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

a = 1
b = 2
a, b = b, a
print(a, b, a)
  1.  2 1 2
  2.  1 1 1
  3.  1 1 1 1 2 1
  4.  1 2 1

Вопрос 9

Для чего в регулярном выражении используется "\w"?

  1.  для обозначения границы слова
  2.  для обозначения буквы или цифры
  3.  для обозначения того, что в этом месте нет границы слова
  4.  для обозначения символа, который не является ни буквой, ни цифрой

Вопрос 10

Карринг — это...

  1.  передача функции в другую функцию
  2.  получение новой функции на основе заданной функции, при котором часть аргументов получает значение
  3.  перенос параметров функции в ее результат
  4.  возврат объекта-функции из другой функции