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

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

Вариант 425124649.


Ваше имя*:


Вопрос 1

Класс имеет метод __call__(). Какому классу он может "подражать" и как пользоваться этим методом?

 
class A:
  #...
  def __call__(self, *params, **kws):
    #...
a = A()
 


  1.  кортеж. Пользоваться можно так: a = (1, 2, 3)
  2.  список. Пользоваться можно так: a[0] = 5
  3.  кодовый объект. Пользоваться можно так: eval(a)
  4.  функция. Пользоваться можно так: b = a(2,3,4)

Вопрос 2

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

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

Вопрос 3

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

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

Вопрос 4

Какие из перечисленных функций имеют побочные эффекты:

import os
global v
v = 0
 
def A(x, y):
  return abs(x + y)
 
B = lambda k, v: os.environ.setdefault(k, v)
 
def C(x):
  global v
  v = v + 1
  return v + x


  1.  только B и C
  2.  только A и C
  3.  никакие
  4.  только C
  5.  A, B, C

Вопрос 5

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

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

Вопрос 6

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

import re
from re import compile
  1.  только имена re и compile
  2.  нельзя одновременно делать import и «from … import»
  3.  все имена из re (импорт compile был лишним)
  4.  только имя compile

Вопрос 7

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

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

Вопрос 8

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

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

Вопрос 9

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

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

Вопрос 10

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

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