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

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

Вариант 3787774311.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

Имеется массив c, для которого shape(c) равна (2, 2, 2).

Какие из приведенных ниже операций получения среза вызовут ошибку?

  1.  c[...,1]
  2.  c[::2,1]
  3.  c[:,-1]
  4.  c[1,2]

Вопрос 3

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

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

Вопрос 4

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

import numpy as np
print(np.size(np.ones((2, 5))))
  1.  (5, 2)
  2.  array([2, 5])
  3.  10
  4.  (2, 5)

Вопрос 5

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

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

Вопрос 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, position
  2.   _length, __len
  3.   __len, xy, x, y, self
  4.   xy, x, y, self, _length, position

Вопрос 7

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

l = [1, 2, 3]
l[1] = l[1:2]
print(l[1])
  1.  [1]
  2.  сообщение об ошибке
  3.  [2]
  4.  2
  5.  [1, 2]

Вопрос 8

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

def f(x, y, z):
  global d1, d2
  # 1
  d1[(x, y)] = z
  # 2
  d2[z] = (x, y)
  # 3
  res = len(d2)
  # 4
  return res 


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

Вопрос 9

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

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

Вопрос 10

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

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