Укажите, каким будет вывод этой программы в случае, если на вход подаются две строки — сначала «Python», потом «exit».
name = ''
while True:
   c = input()
   if c == 'exit':
      break
   name = name + c
print('I’m', name)

I’m
I’mPython
I’m Python
I’m Python exit
Программа уйдет в бесконечный цикл

Следующий код выводит ошибку. Почему?
tuple_ex = ('a', 'b', 'c', {'d': 4})
tuple_ex.append('e', 'f')
new_elements = ('g', 'h')
new_tuple = tuple_ex + new_elements
print(len(tuple_ex))
print(len(new_tuple))

Нельзя конкатенировать кортеж и строку
Кортежи в Python не поддерживают изменение после создания 
Словари в Python не поддерживают операцию конкатенации
Метод append ожидает только один аргумент
Функцию len() можно использовать только на строках

Какой результат выведет этот код?
def add(a=[]):
   a.append('A')
   return a
print(add())
print(add())

[] и []
[] и [‘A’]
[‘A’] и [‘A’]
[‘A’] и [‘A’, ‘A’]
AttributeError: 'set' object has no attribute 'append'

Какая процедура или функция заранее НЕ определена в модуле os?

Рекурсивное удаление директорий
Создание нового потока
Создание символических ссылок (symlink)
Редактирование прав на доступ к файлу
Создание дочернего процесса (форка)

Какой результат выведет этот код?
class A:
   counter = 0
   def meth(self):
      return 'method'
a = A()
a.counter = 100
print('Equals' if a.counter == A.counter else 'Not Equals')
print('Equals' if a.meth() == A.meth(a) else 'Not Equals')

Not Equals и Equals
Equals и Equals
Not Equals и Not Equals
Equals и Not Equals
TypeError: A.meth() missing 1 required positional argument

Какой из утверждений НЕВЕРНО?

Метод seek() используется для перемещения указателя позиции в файле
Как seek(), так и truncate() применимы к файлам, открытым в режиме добавления ('a')
Метод seek() принимает два аргумента: смещение и относительное положение
Как seek(), так и truncate() применимы к файлам в режиме записи ('w')
Метод truncate() используется для обрезки файла до указанной длины

Следующий код выводит результат: ['0: a = x', '1: b = y', '2: c = z']. Что пропущено в print()?
keys = ['a', 'b', 'c']
values = ['x', 'y', 'z']
idxs = enumerate(zip(keys, values))
print(...)

list(f'{idxs}, {keys}, {values}')
list(f'{k} = {v}' for k, v in zip(k, v) in idxs)
list(f'{idxs}: keys = values')
list(" ".join(idxs))
list(f'{i}: {k} = {v}' for i, (k, v) in idxs)

Выберите НЕВЕРНОЕ утверждение.

Reduce больше подходит для изменения размерности последовательности
И map, и reduce принимают в качестве аргумента лямбда-функцию
Map используется для применения функции к каждому элементу исходной последовательности, а reduce — для агрегации элементов последовательности в одно значение
Map больше подходит для преобразования элементов списка
Reduce возвращает массив элементов, а map — одно значение

Выберите верное утверждение о блоке try-except-finally в Python.

Код в блоке finally будет выполнен независимо от того, возникло исключение в блоке try или нет        
Код в блоке finally будет выполнен, только если в блоке try возникло исключение независимо от результата работы блока except
Код в блоке finally будет выполнен, только если в блоке try возникло исключение и оно было успешно обработано блоком except
Код в блоке finally будет выполнен, только если в блоке try не возникло исключение независимо от работы блока except
Код в блоке finally будет выполнен, только если блоки try и except пустые

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

Неизменяемые множества
Словари
Кортежи
Списки
Изменяемые множества

Выберите операцию, которую НЕЛЬЗЯ выполнить с помощью библиотеки requests.

Выполнить Multi-part запрос
Бросить исключение при статусе ответа 4xx (клиентская ошибка) или 5xx (ошибка сервера)
Прочитать cookie из ответа
Автоматически следовать редиректам
Использовать асинхронные HTTP-запросы

Какой функции из модуля itertools соответствует по смыслу код ниже?
def func(*iterables):
   for it in iterables:
      for e in it:
         yield e

chain
compress
cycle
count
takewhile

Укажите, какое число тестов будет завершено c успехом при использовании библиотеки pytest для кода, представленного ниже:
import pytest, unittest
def should_skip():
   return True
class Test(unittest.TestCase):
   def a(self):
      self.assertEqual(1 + 1, 2)
   def test_b(self):
      self.assertEqual(1 + 2, 3)
   @pytest.mark.skip
   def test_c(self):
      self.assertEqual(1 + 3, 4)
   @pytest.mark.skipif('should_skip')
   def test_d(self):
      self.assertEqual(1 + 4, 5)

0
1
2
3
4

Выберите ответ, в котором указаны только те варианты, для которых следующее выражение вернет значение True.
re.match(r"^\+7-(\d{3,5})-\d{3,5}?", text) is not None
A. +7-(123)-45678
B. +7-123-45678
C. +7-12-345678
D. +7-(1234)-5678
E. +7-12345-678

A, D
B, E
C, D, E
B, C, E
A, B

В каком из вариантов генератор реализован НЕВЕРНО?

(i*i for i in range(5))[1]
[i*i for i in range(5)][1:3]
list(i*i for i in range(5))[3]
sum(map(lambda i: i*i, range(5)))
sum(i*i for i in range(5))

Какое утверждение о декораторе lru_cache НЕВЕРНО?

По умолчанию у lru_cache задано максимальное количество элементов в кэше, равное 256
lru_cache основан на алгоритме Least Recently Used
По умолчанию lru_cache предназначен для кэширования результатов функции в пределах одного процесса Python
При использовании lru_cache первыми из кэша вытесняются элементы, неиспользованные дольше всех
lru_cache можно использовать для мемоизации рекурсивных функций