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

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

Вариант 3958430195.


Ваше имя*:


Вопрос 1

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

 
def m1(self):
  print("m1")
 
class M:
  def m2(self):
    print("m2")
 
m = M()
 


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


  1.   M.m1 = m1; m.m1()
  2.   m.m1 = m1; m.m1()
  3.   m.m1 = m.m2; m.m1()
  4.   m.m1 = m1; m.m1(m)

Вопрос 2

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

 
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

Вопрос 3

С помощью какой функции можно организовать цикл с параметром («for»)?

  1.  range()
  2.  reload()
  3.  id()
  4.  xrange()

Вопрос 4

Может ли возникнуть 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_B.acquire(); res_C.acquire(); res_A.acquire()
   # ...
   res_C.release(); res_B.release(); res_A.release()
 
def proc3():
   res_C.acquire(); res_A.acquire(); res_B.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.  нет, не возникнет

Вопрос 5

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

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

Вопрос 6

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

import os
global v
v = 0
 
def A(x, y):
  return abs(x + y)
 
B = lambda k, v: os.environ.setdefault(k, v)
 
def C(x):
  global v
  v = v + 1
  return v + x


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

Вопрос 7

Что произойдет со старыми объектами модуля, используемыми в программе, при его перезагрузке по reload() (после изменения на диске):

import mdl
a = mdl.a
b = mdl.b()
reload(mdl)
  1.  объекты (a, b) изменятся в соответствии с новыми определениями
  2.  имена из модуля (mdl.a, mdl.b) будут ссылаться на другие объекты. Старые объекты (a, b) не изменятся
  3.  изменится только mdl
  4.  изменятся только классы, функции и т.п. (a)

Вопрос 8

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

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

Вопрос 9

Имеется массив c, для которого shape(c) равна (2, 2, 2).

Какие из приведенных ниже операций получения среза вызовут ошибку?

  1.  c[...,1]
  2.  c[:,-1]
  3.  c[1,2]
  4.  c[::2,1]

Вопрос 10

Как определить функцию в Python?

  1.  заданием списка строк исходного кода
  2.  с помощью ключевого слова «function»
  3.  с помощью оператора «def»
  4.  с помощью оператора import