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

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

Вариант 117055336.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

(0 < 5 <= 3) and (0 / 0)
  1.  будет возбуждено исключение ZeroDivisionError (деление на нуль)
  2.  False (или 0)
  3.  True (или 1)
  4.  None
  5.  синтаксическая ошибка

Вопрос 3

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

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.  только B
  2.  никакие
  3.  только B и C
  4.  только A и B
  5.  A, B, C

Вопрос 4

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

 
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.  наследование. B получается наследованием A
  2.  наследование. A получается наследованием B
  3.  ассоциация. Экземпляры A содержат ссылки на экземпляры класса B
  4.  агрегация. Экземпляры A содержат экземпляры класса B

Вопрос 5

Может ли возникнуть deadlock в следующей программе:

import threading
 
res_A = threading.Lock()
res_B = threading.Lock()
 
def proc1():
   res_A.acquire()
   res_B.acquire()
   # ...
   res_B.release()
   res_A.release()
 
def proc2():
   res_B.acquire()
   res_A.acquire()
   # ...
   res_B.release()
   res_A.release()
 
p1 = threading.Thread(target=proc1, name="t1")
p2 = threading.Thread(target=proc2, name="t2")
p1.start()
p2.start()
p1.join()


  1.  да, обязательно
  2.  да, возможно
  3.  нет, не возникнет

Вопрос 6

Что такое регулярное выражение?

  1.  синтаксически правильное выражение на языке Python
  2.  шаблон для поиска файлов в каталоге
  3.  шаблон для операции форматирования
  4.  шаблон, описывающий множество строк

Вопрос 7

Какую роль играет xx в следующей Python-программе

 
class M(object):
  def xx(self):
    print "self:", self
 
  1.  метод класса
  2.  статистический метод
  3.  метафункция
  4.  функция-фабрика

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

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

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