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

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

Вариант 4206605182.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

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

Вопрос 3

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

 
import numpy as np
print( np.shape(np.transpose(np.ones((2, 3, 4)), [1, 0, 2])) )
 
  1.  (3, 4, 2)
  2.  (3, 2, 4)
  3.  (4, 3, 2)
  4.  (2, 4, 3)

Вопрос 4

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

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

Вопрос 5

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

def f(x):
  # 1
  fc = open("file.txt", "w+")
  # 2
  fc.write(x)
  # 3
  fc.write("\n")
  # 4
  fc.close()
  # 5


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

Вопрос 6

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

S = 0
for i in range(1, 10):
  if i % 2 == 0:
    S = S + i 
print(S)


  1.  30
  2.  1024
  3.  20
  4.  10
  5.  сообщение об ошибке
  6.  0

Вопрос 7

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

a = 1
b = 2
a, b = b, a
print(a, b, a)
  1.  1 1 1 1 2 1
  2.  2 1 2
  3.  1 1 1
  4.  1 2 1

Вопрос 8

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

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', 'b': 'BBBB'}
  3.  {'a': 'AAAA', 'b': 'B', 'c': }
  4.  {'a': 'AAAA', 'c': 'C', 'b': 'B'}

Вопрос 9

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

 
import threading
 
class PR(threading.Thread):
  def __init__(self, n):
    threading.Thread.__init__(self, name="t" + n)
    self.n = n
  def run(self):
    import time
    time.sleep(1)
    print "*"
 
p1 = PR("1")
p2 = PR("2")
p1.start()
p2.start()
 
  1.  через секунду выводит звездочку, а затем через секунду — еще одну
  2.  выводит одну звездочку и завершается
  3.  выводит одну звездочку и зависает
  4.  выводит две звездочки спустя секунду после запуска

Вопрос 10

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

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