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

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

Вариант 3318815048.


Ваше имя*:


Вопрос 1

Какую роль играет xx в следующей Python-программе

 
def xx(func):
  class X(object):
    pass
  setattr(X, func.__name__, func)
  return X
 
  1.  метакласс
  2.  функция-фабрика классов
  3.  функция-фабрика
  4.  метод класса

Вопрос 2

Каким из приведенных ниже способов можно привести латинские символы строки s к нижнему регистру?

  1.  s.lower()
  2.  s.islower()
  3.  s.replace('A-Z', 'a-z')
  4.  s.tolower()

Вопрос 3

Какую роль играет xx в следующей Python-программе

 
class M(object):
  def xx(self):
    print "self:", self
 
  1.  функция-фабрика
  2.  метафункция
  3.  статистический метод
  4.  метод класса

Вопрос 4

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

import threading
l = threading.Lock()
 
def proc(nm, n=0):
  l.acquire()
  try:
    if n < 5:
      print("*", end='')
      return proc(nm, n+1)
    else:
      return nm
  finally:
    l.release() 
 
for i in range(5):
  threading.Thread(target=proc, args=(str(i),)).start()
  1.  беспрерывно печатает звездочки
  2.  аварийно завершается при попытке выполнить l.acquire() во второй раз
  3.  печатает 5 звездочек
  4.  печатает 1 звездочку и зависает
  5.  печатает 25 звездочек

Вопрос 5

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

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

Вопрос 6

Дан массив:

>>>c = array([[1,2], [2,3], [4,5]])

Чему равен срез c[:,1]?

  1.  array([2, 3, 5])
  2.  array([2, 3])
  3.  array([1, 2, 4])
  4.  array([1, 2])

Вопрос 7

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

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

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

Сколько общедоступных методов будет иметь экземпляр класса 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.  5, возвратит a
  2.  3, возвратит abc
  3.  3, возвратит ab
  4.  3, возвратит a