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

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

Вариант 1407424678.


Ваше имя*:


Вопрос 1

Что такое регулярное выражение?

  1.  шаблон для операции форматирования
  2.  синтаксически правильное выражение на языке Python
  3.  шаблон для поиска файлов в каталоге
  4.  шаблон, описывающий множество строк

Вопрос 2

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

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

Вопрос 3

Может ли возникнуть 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_C.release()
   res_B.release()
   res_A.release()
 
def proc2():
   res_A.acquire()
   res_B.acquire()
   res_C.acquire()
   # ...
   res_C.release()
   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.  да, возможно

Вопрос 4

Что является результатом применения функции «enumerate()» к последовательности «s»?

  1.  последовательность кортежей. В каждом кортеже первый элемент — номер элемента исходной последовательности, а второй — соответствующий этому номеру член
  2.  последовательность чисел от нуля до len(s)
  3.  кортеж из двух последовательностей: последовательность чисел от нуля до len(s) и исходная последовательность
  4.  последовательность порядковых чисел в различных форматах (арабском, римском)

Вопрос 5

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

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

Вопрос 6

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

Вопрос 7

Из какого модуля будет работать функция «replace()» в следующем примере:

from sre import sub as replace
from string import replace
  1.  возникнет ошибка (конфликт имен)
  2.  sre.sub
  3.  из sre.string
  4.  из string

Вопрос 8

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

A = B = 1
a = "A" * 5
b = "B" * 5
a = a + b * 5
print(a, b)
  1.  30 5
  2.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB, BBBBB
  3.  AAAAABBBBBBBBBBBBBBBBBBBBBBBBB BBBBB
  4.  AAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBBAAAAABBBBB BBBBB
  5.  сообщение об ошибке в четвертой строке

Вопрос 9

Какие методы необходимо иметь x для задания следующих действий:

>>> x = X(0)
>>> print x + 10
10
>>> print x - 23
-23
>>> print x >> 2
0


  1.  __init__, __add__, __sub__, __rshift__
  2.  __init__, __add__, __sub__, __rshift__, __str__, __repr__
  3.  __init__, __add__, __sub__, __rshift__, __str__
  4.  __init__, __add__, __radd__, __sub__, __rsub__, __rshift__, __rrshift__

Вопрос 10

Как определить функцию в Python?

  1.  с помощью оператора «def»
  2.  с помощью оператора import
  3.  с помощью ключевого слова «function»
  4.  заданием списка строк исходного кода