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

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

Вариант 3558499685.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

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

Вопрос 3

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

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

Вопрос 4

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

S = 0
for i in range(1, 10, 2):
  if i % 2 == 0:
    S = S + i 
print(S)
  1.  сообщение об ошибке
  2.  0
  3.  10
  4.  1
  5.  1024
  6.  20

Вопрос 5

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

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

Вопрос 6

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

import sre as re
from re import compile
  1.  имена sre, re и compile
  2.  только имена sre и compile
  3.  только имена re и compile
  4.  нельзя одновременно делать import и «from … import»

Вопрос 7

Что будет выведено в результате выполнения сопоставления с регулярным выражением?

import re
 
m = re.match("(?P<a>A*?)(?:B+)(?P<b>B+?)(?P<c>C??)", "AAAABBBBC")
print(m.groupdict())
  1.  {'a': 'AAAA', 'b': 'B'}
  2.  {'a': 'AAAA', 'c': 'C', 'b': 'B'}
  3.  {'a': 'AAAA', 'b': 'BBBB'}
  4.  {'a': 'AAAA', 'b': 'B', 'c': }

Вопрос 8

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

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

Вопрос 9

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

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


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

Вопрос 10

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

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