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

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

Вариант 577575994.


Ваше имя*:


Вопрос 1

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

a = "A"
b = "B"
a, b = b + a
print(a + b)
  1.  сообщение об ошибке в третьей строке
  2.  АВА
  3.  ВА
  4.  АВ

Вопрос 2

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

a = "AB"
b = "BC"
print("%sa, b" % a, b)
  1.  сообщение об ошибке
  2.  ('AB', 'BC')a, b
  3.  ABa, b BC
  4.  "AB", "BC"a, b
  5.  (AB, BC)a, b

Вопрос 3

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

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

Вопрос 4

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

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

Вопрос 5

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

L = []
L.extend([1,2,3])
L.insert(1, "abc")
del L[0][0]
  1.  3
  2.  сообщение об ошибке
  3.  1
  4.  4
  5.  2

Вопрос 6

Укажите набор атрибутов, которые считаются приватными, для экземпляров следующего класса:

 
class Ex:
  def __init__(self, x, y):
    xy = x, y
    self.position = xy
    self._length = self.__len(x, y)
  def __len(self, x, y):
    return abs(x) + abs(y)
  def getlen(self):
    return self._length
 


  1.   _length, __len
  2.   __len, xy, x, y, self
  3.   _length, __len, position
  4.   xy, x, y, self, _length, position

Вопрос 7

С помощью функций какого модуля проще всего исследовать содержимое стека при обработке исключения в части except?

  1.  traceback
  2.  dis
  3.  inspect
  4.  tb

Вопрос 8

Имеется следующий генератор для слияния двух отсортированных последовательностей:

def merge(a1, a2):
 a1 = list(a1)
 a2 = list(a2)
 while a1 or a2:
   if a1 and (not a2 or a1[0] < a2[0]):
     r = a1
   else:
     r = a2
   yield r[0]
   del r[0]

Какие ошибки или особенности имеет эта программа?


  1.  в последней строке каждый раз удаляется элемент из временного списка, а не из «a1» или «a2»: генератор зациклится
  2.  ошибок нет
  3.  генератор будет портить переданные ему списки
  4.  генератор оставит за собой временный список, так как «del» происходит после «yield»

Вопрос 9

Что обычно делается для возврата более одного значения из функции?

  1.  ничего; возвратить можно только одно значение
  2.  возвращается список значений
  3.  значения можно вернуть через объекты, заданные в списке аргументов (как в C/C++)
  4.  возвращается кортеж значений

Вопрос 10

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

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