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

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

Вариант 3872734555.


Прошло 00:00:03.
Ваше имя*:


Вопрос 1

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

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

Вопрос 2

Какие встроенные функции возвращают в качестве значения словарь (или подобный объект)?

  1.  enumerate()
  2.  locals()
  3.  directory()

Вопрос 3

Что произойдет при повторном импорте модуля (в том же блоке кода) оператором import

  1.  программа завершится по ошибке
  2.  ничего
  3.  модуль будет заново загружен с диска

Вопрос 4

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

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

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

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

Вопрос 5

Сокрытие информации о внутреннем устройстве объекта, при котором вся работа с объектом ведется только через общедоступный интерфейс называется

  1.  агрегацией
  2.  инкапсуляцией
  3.  декомпозицией
  4.  абстракцией

Вопрос 6

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

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

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

Вопрос 7

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

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


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

Вопрос 8

Может ли возникнуть deadlock в следующей программе:

import threading
 
res_A = threading.Lock()
res_B = threading.Lock()
 
def proc1():
   res_A.acquire()
   res_B.acquire()
   # ...
   res_B.release()
   res_A.release()
 
def proc2():
   res_A.acquire()
   res_B.acquire()
   # ...
   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.  да, обязательно

Вопрос 9

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

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

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

Вопрос 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.  3, возвратит ab
  2.  3, возвратит abc
  3.  5, возвратит a
  4.  3, возвратит a