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

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

Вариант 2105559770.


Ваше имя*:


Вопрос 1

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

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

Вопрос 2

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

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

Вопрос 3

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

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

Вопрос 4

Даны матрицы a и b.

 
import numpy as np
…
 

Как получить произведение матриц?


  1.  np.vdot(a, b)
  2.  a * b
  3.  np.product(a, b)
  4.  np.dot(a, b)

Вопрос 5

Какой длины строки можно использовать в Python?

  1.  длины строк должны быть не больше, чем при их определении
  2.  256 символов
  3.  длина строк ограничивается имеющейся памятью
  4.  65536 символов

Вопрос 6

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

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

Вопрос 7

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

from sre import *
from string import *
split('a', 'b')
  1.  возникнет ошибка (конфликт имен)
  2.  из sre.string
  3.  из string
  4.  из re

Вопрос 8

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

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

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

Вопрос 9

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

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

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

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

Вопрос 10

Что будет выведено в результате выполнения сопоставления с регулярным выражением?

import re
 
m = re.match("(?P<a>A*?)(?:B+)(?P<b>B+?)(?P<c>C??)", "AAAABBBBC")
print(m.groupdict())
  1.  {'a': 'AAAA', 'c': 'C', 'b': 'B'}
  2.  {'a': 'AAAA', 'b': 'BBBB'}
  3.  {'a': 'AAAA', 'b': 'B'}
  4.  {'a': 'AAAA', 'b': 'B', 'c': }