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

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

Вариант 4158569159.


Ваше имя*:


Вопрос 1

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

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.  только A и C
  2.  A, B, C
  3.  никакие
  4.  только C
  5.  только B и C

Вопрос 2

Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?

  1.  enumerate()
  2.  dir()
  3.  locs()

Вопрос 3

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

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

Вопрос 4

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

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

Вопрос 5

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

0 < [1, 4][1] < 3 or None
  1.  1
  2.  None
  3.  0
  4.  это синтаксическая ошибка
  5.  2

Вопрос 6

Для чего в регулярном выражении используется "\w"?

  1.  для обозначения буквы или цифры
  2.  для обозначения символа, который не является ни буквой, ни цифрой
  3.  для обозначения границы слова
  4.  для обозначения того, что в этом месте нет границы слова

Вопрос 7

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

S = "\n123\\"
  1.  5
  2.  7
  3.  6
  4.  3
  5.  сообщение об ошибке
  6.  4

Вопрос 8

В каких точках программы необходимо выполнять 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(), 3: Z.release()
  3.  1: Z.acquire(), 4: Z.release()
  4.  1: Z.acquire(), 2: Z.release(), Z.acquire(), 3: Z.release()

Вопрос 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, возвратит abc
  2.  3, возвратит ab
  3.  3, возвратит a
  4.  5, возвратит a

Вопрос 10

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