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

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

Вариант 3720583603.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

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

Вопрос 3

С помощью какого из приведенных ниже сравнений можно установить, что x и y — это один и тот же объект?

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

Вопрос 4

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

Вопрос 5

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

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

Вопрос 6

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

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

Вопрос 7

Карринг — это...

  1.  получение новой функции на основе заданной функции, при котором часть аргументов получает значение
  2.  перенос параметров функции в ее результат
  3.  передача функции в другую функцию
  4.  возврат объекта-функции из другой функции

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

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

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