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

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

Вариант 1513493716.


Ваше имя*:


Вопрос 1

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

 
class A:
  def am(self):
    print "am"
 
class B:
  def bm(self):
    print "bm"
 
a = A()
b = B()
 


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


  1.   A.am = B.bm; a.am()
  2.   a.am = b.bm; a.am()
  3.   A.am = b.bm; a.am()
  4.   a.am = b.bm; a.bm()

Вопрос 2

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

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

Вопрос 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

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

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

Вопрос 5

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

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

Вопрос 6

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

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

Вопрос 7

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

S = 0
for i in range(1, 10):
  for j in range(1, 3):
    if i == j:
      S = S + i + j
      break
print(S)
  1.  сообщение об ошибке
  2.  2
  3.  12
  4.  0
  5.  6

Вопрос 8

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

 
def xx(func):
  class X(object):
    pass
  setattr(X, func.__name__, func)
  return X
 
  1.  функция-фабрика классов
  2.  функция-фабрика
  3.  метакласс
  4.  метод класса

Вопрос 9

В каких местах допущены ошибки в генераторном выражении, выдающем список координат полей шахматной доски?

(j+str(i) for i in range(1, 9) for j in "abcdefgh")
  1.  ошибка в «for j in "abcdefgh"»
  2.  ошибок нет
  3.  ошибка в «j+str(i)»
  4.  ошибка в «for i in range(1, 9)»

Вопрос 10

Что является результатом применения функции «enumerate()» к последовательности «s»?

  1.  последовательность порядковых чисел в различных форматах (арабском, римском)
  2.  последовательность чисел от нуля до len(s)
  3.  кортеж из двух последовательностей: последовательность чисел от нуля до len(s) и исходная последовательность
  4.  последовательность кортежей. В каждом кортеже первый элемент — номер элемента исходной последовательности, а второй — соответствующий этому номеру член