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

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

Вариант 3111333214.


Ваше имя*:


Вопрос 1

Может ли возникнуть 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.  нет, не возникнет

Вопрос 2

Какие из приведенных ниже сравнений обязательно дадут True, если объекты x и y имеют одинаковые значения?

  1.  x == y
  2.  x is y
  3.  id(x) == id(y)

Вопрос 3

Что произойдет при повторном импорте модуля (в том же блоке кода) оператором import

  1.  программа завершится по ошибке
  2.  ничего
  3.  модуль будет заново загружен с диска

Вопрос 4

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

import re
from re import compile
  1.  только имена re и compile
  2.  только имя compile
  3.  все имена из re (импорт compile был лишним)
  4.  нельзя одновременно делать import и «from … import»

Вопрос 5

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

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

Вопрос 6

Что обычно делается для возврата более одного значения из функции?

  1.  возвращается кортеж значений
  2.  значения можно вернуть через объекты, заданные в списке аргументов (как в C/C++)
  3.  ничего; возвратить можно только одно значение
  4.  возвращается список значений

Вопрос 7

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

import numpy as np
print(np.shape(np.array([[1, 2], [3, 4], [5, 6]])))
  1.  (2, 3)
  2.  (6,)
  3.  (3, 2)
  4.  (3,)

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

Какие методы необходимо иметь x для задания следующих действий:

>>> x = X(0)
>>> print x + 10
10
>>> print x - 23
-23
>>> print x >> 2
0


  1.  __init__, __add__, __sub__, __rshift__, __str__
  2.  __init__, __add__, __radd__, __sub__, __rsub__, __rshift__, __rrshift__
  3.  __init__, __add__, __sub__, __rshift__, __str__, __repr__
  4.  __init__, __add__, __sub__, __rshift__