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

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

Вариант 754429358.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

Какую роль играет xx в Python-программе, и чему должен быть равен XXX:

 
class A(object):
  def xx(cls, x):
    ...
  xx = XXX(xx)
 
  1.  статический метод, XXX равен staticmethod
  2.  метод класса, XXX равен classmethod
  3.  функция, XXX можно опустить
  4.  метод, XXX равен instancemethod

Вопрос 3

Укажите набор атрибутов, которые считаются приватными, для экземпляров следующего класса:

 
class Ex:
  def __init__(self, x, y):
    xy = x, y
    self.position = xy
    self._length = self.__len(x, y)
  def __len(self, x, y):
    return abs(x) + abs(y)
  def getlen(self):
    return self._length
 


  1.   __len, xy, x, y, self
  2.   _length, __len
  3.   xy, x, y, self, _length, position
  4.   _length, __len, position

Вопрос 4

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

 
import threading
 
class PR(threading.Thread):
  def __init__(self, n):
    threading.Thread.__init__(self, name="t" + n)
    self.n = n
  def run(self):
    import time
    time.sleep(1)
    print "*"
 
p1 = PR("1")
p2 = PR("2")
p1.start()
p2.start()
 
  1.  выводит одну звездочку и зависает
  2.  выводит одну звездочку и завершается
  3.  через секунду выводит звездочку, а затем через секунду — еще одну
  4.  выводит две звездочки спустя секунду после запуска

Вопрос 5

Какими способами можно получить доступ к функции «fun()» из модуля «fns»?

  1.  import fns.fun as fun; fun()
  2.  import fns.fun; fns.fun()
  3.  import fns; fns.fun()

Вопрос 6

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

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


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


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

Вопрос 7

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

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

Вопрос 8

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

(" ")
  1.  str (строка)
  2.  tuple (кортеж)
  3.  unicode (Unicode-строка)
  4.  это синтаксическая ошибка

Вопрос 9

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

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

Вопрос 10

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

def f(x, y, z):
  global d1, d2
  # 1
  d1[(x, y)] = z
  # 2
  d2[z] = (x, y)
  # 3
  res = len(d2)
  # 4
  return res 


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