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

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

Вариант 1245154560.


Ваше имя*:


Вопрос 1

Получен новый пакет (в виде исходных кодов) для Python. Какова рекомендуемая процедура установки нового модуля, если известно, что он использует «distutils»?

  1.  выполнить «distutils --install имя модуля»
  2.  выполнить в каталоге с развернутым пакетом команду «python setup.py install»
  3.  скопировать содержимое в каталог .../site-packages
  4.  в Windows — запустить установщик

Вопрос 2

Какое из приведенных ниже регулярных выражений некорректно?

  1.  (?P<k>(ac))
  2.  (a+b+)+
  3.  [a]*?
  4.  a+b++

Вопрос 3

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

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


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

Вопрос 4

Что можно узнать с помощью регулярного выражения r'([01]+)\1\1'?

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

Вопрос 5

Какие встроенные функции служат для создания объектов определенного типа (конструкторы классов/функции-фабрики…)?

  1.  tuple()
  2.  chr()
  3.  isinstance()

Вопрос 6

Какие новые имена появятся в текущем модуле после выполнения следующего кода:

import sre as re
from re import compile
  1.  нельзя одновременно делать import и «from … import»
  2.  только имена re и compile
  3.  имена sre, re и compile
  4.  только имена sre и compile

Вопрос 7

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

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

Вопрос 8

Сколько общедоступных методов будет иметь экземпляр класса 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, возвратит a
  2.  3, возвратит abc
  3.  3, возвратит ab
  4.  5, возвратит a

Вопрос 9

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

def f(x):
  # 1
  fc = open("file.txt", "w+")
  # 2
  fc.write(x)
  # 3
  fc.write("\n")
  # 4
  fc.close()
  # 5


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

Вопрос 10

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

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