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

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

Вариант 2026743626.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

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

Вопрос 3

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

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

Вопрос 4

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

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

Вопрос 5

Что произойдет со старыми объектами модуля, используемыми в программе, при его перезагрузке по reload() (после изменения на диске):

import mdl
a = mdl.a
b = mdl.b()
reload(mdl)
  1.  изменится только mdl
  2.  изменятся только классы, функции и т.п. (a)
  3.  объекты (a, b) изменятся в соответствии с новыми определениями
  4.  имена из модуля (mdl.a, mdl.b) будут ссылаться на другие объекты. Старые объекты (a, b) не изменятся

Вопрос 6

Класс имеет методы «__iter__()» и «next()».

О чем это говорит и как пользоваться этим методом?

 
class A:
  #...
  def __iter__(self): 
    #...
  def next(self):
    #...
a = A(1, 2, 3)
 
  1.  последовательность. Пользоваться можно так: print a[2]
  2.  итератор. Пользоваться можно так: for i in a: print i
  3.  генератор. Пользоваться можно так: for i in a(): print i
  4.  нет особого названия. Пользоваться можно так: print a.next()

Вопрос 7

Имеются следующие определения:

 
class A:
  def am(self):
    print "am"
 
class B:
  def bm(self):
    print "bm"
 
a = A()
b = B()
 


Какой из фрагментов кода содержит ошибки?


  1.   A.am = B.bm; a.am()
  2.   a.am = b.bm; a.bm()
  3.   A.am = b.bm; a.am()
  4.   a.am = b.bm; a.am()

Вопрос 8

Сколько элементов будет содержать список L после выполнения следующего кода:

L = []
L.append([1,2,3])
L = L*2
  1.  7
  2.  2
  3.  6
  4.  сообщение об ошибке
  5.  4
  6.  1

Вопрос 9

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

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.  печатает 25 звездочек
  2.  печатает 5 звездочек
  3.  аварийно завершается при попытке выполнить l.acquire() во второй раз
  4.  печатает 1 звездочку и зависает
  5.  беспрерывно печатает звездочки

Вопрос 10

Начало определения функции «f» выглядит так:

def f(a, b, c=None, d="0"):

Какие из следующих вариантов вызова приведут к ошибке на этапе присваивания фактических параметров формальным?

  1.  «f(1, 2)»
  2.  «f(1, d=3)»
  3.  «f(1, 2, d=3, c=4)»
  4.  «f(1, 2, d=3)»
  5.  «f(1, 2, 3, 4)»