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

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

Вариант 44851418.


Ваше имя*:


Вопрос 1

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

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

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

Вопрос 2

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

[x for x in itertools.takewhile(lambda x: x < 23, itertools.count(10))]
  1.  13
  2.  0
  3.  10
  4.  23

Вопрос 3

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

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

Вопрос 4

Что такое «os.environ»?

  1.  функция для получения переменных окружения
  2.  словарь переменных окружения
  3.  последовательность переменных окружения
  4.  системные константы Python

Вопрос 5

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

l = [1, 2, 3]
l[1] = l[1:2]
print(l[1])
  1.  [1]
  2.  сообщение об ошибке
  3.  [1, 2]
  4.  2
  5.  [2]

Вопрос 6

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

 
class A:
  def __init__(self, x):
    self._mydata = B(x)
 
class B:
  def __init__(self, x):
    self._mydata = x
 
  1.  ассоциация. Экземпляр A содержит ссылки на экземпляры B
  2.  метакласс. A является метаклассом для B
  3.  наследование. A получается наследованием B
  4.  метакласс. B является метаклассом для A

Вопрос 7

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

import threading
l = threading.Lock()
 
def proc(nm, n=0):
  l.acquire()
  try:
    if n < 5:
      print("*", end='')
      return proc(nm, n+1)
    else:
      return nm
  finally:
    l.release() 
 
for i in range(5):
  threading.Thread(target=proc, args=(str(i),)).start()
  1.  печатает 1 звездочку и зависает
  2.  беспрерывно печатает звездочки
  3.  аварийно завершается при попытке выполнить l.acquire() во второй раз
  4.  печатает 25 звездочек
  5.  печатает 5 звездочек

Вопрос 8

С помощью какого регулярного выражения можно найти все (ровно) пятикратные повторения цифры 0?

  1.  0{5}[^0]
  2.  ([^0]|\A)0{5}([^0]|\Z)
  3.  0{1,5}[^0]
  4.  00000([^0]|\Z)
  5.  00000

Вопрос 9

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

Вопрос 10

Может ли возникнуть 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_A.acquire()
   res_B.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()
p2.join()


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