Skip to content

Latest commit

 

History

History
181 lines (147 loc) · 8.41 KB

intermediate.md

File metadata and controls

181 lines (147 loc) · 8.41 KB

Python — средний уровень

🏆 Правильных ответов: 11 из 13.

Q1. Что произойдет, если попытаться вывести значение переменной my_var, которая не была предварительно определена в программе, написанной на Python?

  • Возникнет ошибка ValueError
  • Выводится пустая строка
  • Выводится значение None
  • Возникнет ошибка NameError
  • Возникнет ошибка SyntaxError

Q2. Ваша команда разрабатывает систему управления задачами. Какой тип данных лучше всего подходит для представления статуса выполнения задачи, например, «выполнено», «ожидание», «отменено»?

  • Список (list)
  • Множество (set)
  • Класс enum.Enum
  • Класс collections.namedtuple
  • Словарь (dict)

Q3. Вы разрабатываете программу для игры в крестики-нолики. Ваша программа проверяет, завершилась ли игра победой одного из игроков. Ниже представлен фрагмент кода, который должен проверить, есть ли победа в горизонтальном направлении (то есть содержит ли строка все элементы, равные символу игрока). Какой из вариантов ниже решит эту задачу?

def horizontal (board, player):
  for row in board:
    if ___:
      return True
  return False
board = [
  ['x', 'o', 'X'], 
  ['O', 'X', 'X'], 
  ['','', '0']
]
if horizontal(board, 'X'):
  print ("Игрок Х выиграл!")
  • row[0] == player or row[1] == player or row[2] == player
  • row.all() == player
  • all(cell == player for cell in row)
  • row.count(player)
  • board[0][0] == player and board[0][1] == player and board[0][2] == player

Q4. Вы разрабатываете скрипт для управления контрольно-кассовой техникой в магазине. Каждое устройство имеет числовой номер. Ниже представлен фрагмент кода, который должен производить проверку подключения устройств. Какие устройства и в каком порядке будут проверены?

for device_id in range(1, 4):
    if device_id == 2:
        continue
    print ("Проверка устройства", device_id)
print ("Проверка завершена")
  • 1 и 3
  • 1, 3 и 4
  • 1, 2 и 3
  • 1, 3 и 2
  • Только 2

Q5. Что вернет функция, если она не имеет оператора return?

  • Функция выдаст ошибку ValueError
  • Функция ничего не вернет
  • Функция вернет None
  • Функция будет выполняться бесконечно
  • Функция вернет False

Q6. Что по смыслу возвращает функция calculate() в коде ниже?

def calculate (price, discount_rate):
    discount_amount = price * (discount_rate / 100)
    return price - discount_amount
calculate (1000, 20)
  • Итоговую цену на товар после применения скидки
  • Процент итоговой стоимости товара от изначальной цены после применения скидки
  • Размер скидки в процентах
  • Разницу между изначальной и итоговой ценой после применения скидки
  • Изначальную цену на товар до применения скидки

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

  • map
  • sort
  • sorted
  • reversed
  • filter

Q8. Вы создали объект my_car класса Car, который описан ниже. Что изменится, если использовать my_car.accelerate()?

class Car:
  def __init__(self):
    self.speed = 0
    self.fuel_level = 100

  def add_data (self):
    self.speed = 10
    self.fuel_level -= 5
  • Скорость автомобиля увеличится на 10 км/ч, а уровень топлива уменьшится на 5%
  • Скорость автомобиля увеличится на 10 км/ч, а уровень топлива останется 100%
  • Ничего не изменится, так как метод accelerate() не привязан к объекту
  • Скорость автомобиля останется 10 км/ч, а уровень топлива уменьшится на 5
  • Скорость автомобиля увеличится на 10 км/ч, а уровень топлива уменьшится на 5

Q9. Какой из вариантов позволяет создать список, содержащий квадраты всех четных чисел в ряде от 1 до 10?

  • [x**2 for x in range(1, 11) if x % 2 == 0]
  • [x**2 if x % 2 != True for x in range(1, 11)]
  • [x**2 for x in range(1, 11) if x % 2 != 0]
  • [x**2 if x % 2 == 0 for x in range(1, 11)]
  • [x**2 for x in range(1, 11) % 2 == 0]

Q10. Код ниже предназначен для записи списка чисел в файл numbers.txt, каждое число должно быть на новой строке. Какой из вариантов корректно описывает поведение кода?

numbers =[1, 2, 3, 4, 5]
with open ('numbers.txt', 'w') as file:
  for number in numbers:
file.write(str(number))
  • Код неэффективен, но выполнит задачу без ошибок
  • Код вызовет ошибку выполнения, так как число не может быть напрямую записано в файл
  • Код работает корректно и записывает каждое число на новой строке
  • Код вызовет ошибку, так как файл открыт в неправильном режиме
  • Код не выполнит задачу, так как записывает все числа без разделителей в одну строку

Q11. Какой модуль Python позволяет определить платформу, на которой запущен интерпретатор Python?

  • win
  • version
  • re
  • os
  • sys

Q12. Вы работаете над анализом данных из файла JSON и нужно отфильтровать данные для людей старше 30, после чего сохранить результат в новом файле. Какая строка кода правильно выполнит эту задачу?

data = json.loads('data.json');
filtered = filter(lambda x: x['age'] > 30, data);
json.dumps(filtered, 'result.json')
data = json.load(open('data.json'));
result = [item for item in data if item['age'] > 30];
json.dump(result, open('result.json', 'w'))
data = json.load(open('data.json', 'r'));
result = [x for x in data if x['age'] > 30];
open('result.json', 'w').write(json.dumps(result))
data = pd.read_json('data.json');
result = data[data['age'] > 30];
result.to_json('result.json')
data = open('data.json').read();
result = json.loads(data, lambda x: x['age'] > 30);
json.dumps(result, open('result.json', 'w'))

Q13. Какой паттерн регулярного выражения подходит для поиска всех доменных имен (веб-адресов) в тексте?

  • r'[A-Z][a-z]+'
  • r'[a-z0-9]+(-[a-z0-9]+)*\.[a-z]{2,}'
  • r'[\w.-]+@[a-z]+\.(com|net|org)'
  • r'\d{3}-\d{2}-\d{4}'
  • r'https://(\w+\.)+[a-z]{2,}'