Junior Python-разработчик

- Основы языка Python: синтаксис, типы данных, переменные, операторы.
- Базовые принципы объектно-ориентированного программирования (ООП).
- Методы работы со строками, списками, словарями и множествами.
- Основы работы с файловой системой (чтение/запись файлов).
- Принципы обработки исключений и отладки кода.
- Базовые алгоритмы и структуры данных (циклы, условные операторы, рекурсия).
- Правила написания чистого и понятного кода (PEP 8).
- Писать простые программы на Python для решения практических задач.
- Создавать и использовать функции для повторного использования кода.
- Работать с файлами: читать данные, записывать результаты, обрабатывать ошибки.
- Применять базовые принципы ООП для организации кода.
- Отлаживать программы и находить ошибки с помощью инструментов разработчика.
- Создавать консольные приложения с пользовательским интерфейсом.
- Документировать свой код и готовить его к презентации.
Билет 1
Теория 1: Что такое переменная в Python?
Теория 2: Какие типы данных поддерживаются в Python?
Практика: Напишите программу, которая выводит на экран числа от 1 до 10 с помощью цикла for.
Ответы:
1. Переменная — это именованное место в памяти, которое хранит значение.
2. В Python поддерживаются следующие типы данных: int, float, str, bool, list, tuple, dict, set.
3. Пример программы:
for i in range(1, 11):
print(i)
Билет 2
Теория 1: Что такое условный оператор if?
Теория 2: Как работает оператор elif?
Практика: Напишите программу, которая проверяет, является ли число положительным, отрицательным или нулем.
Ответы:
1. Условный оператор if используется для выполнения блока кода при выполнении условия.
2. Оператор elif позволяет проверять дополнительные условия, если предыдущие не выполнились.
3. Пример программы:
num = int(input("Введите число: "))
if num > 0:
print("Число положительное")
elif num < 0:
print("Число отрицательное")
else:
print("Число равно нулю")
Билет 3
Теория 1: Что такое цикл while?
Теория 2: В чем разница между циклами for и while?
Практика: Напишите программу, которая вычисляет сумму всех чисел от 1 до 100 с помощью цикла while.
Ответы:
1. Цикл while выполняет блок кода, пока указанное условие истинно.
2. Цикл for используется для перебора элементов последовательности, а while — для выполнения кода, пока условие истинно.
3. Пример программы:
total = 0
i = 1
while i <= 100:
total += i
i += 1
print(total)
Билет 4
Теория 1: Что такое функция в Python?
Теория 2: Как передаются аргументы в функцию?
Практика: Напишите функцию, которая принимает два числа и возвращает их сумму.
Ответы:
1. Функция — это блок кода, который выполняет определенную задачу и может быть вызван многократно.
2. Аргументы передаются в функцию через скобки после имени функции. Они могут быть обязательными или иметь значения по умолчанию.
3. Пример программы:
def add(a, b):
return a + b
result = add(5, 7)
print(result)
Билет 5
Теория 1: Что такое список в Python?
Теория 2: Как добавить элемент в конец списка?
Практика: Создайте список из 5 элементов и удалите из него третий элемент.
Ответы:
1. Список — это упорядоченная коллекция элементов, которая может содержать данные разных типов.
2. Элемент добавляется в конец списка с помощью метода append().
3. Пример программы:
my_list = [1, 2, 3, 4, 5]
del my_list[2]
print(my_list)
Билет 6
Теория 1: Что такое словарь в Python?
Теория 2: Как получить значение по ключу из словаря?
Практика: Создайте словарь с информацией о студенте (имя, возраст, группа) и выведите его содержимое.
Ответы:
1. Словарь — это неупорядоченная коллекция пар "ключ-значение".
2. Значение можно получить с помощью квадратных скобок (dictionary[key]) или метода get().
3. Пример программы:
student = {"name": "Alice", "age": 20, "group": "A"}
print(student)
Билет 7
Теория 1: Что такое множество в Python?
Теория 2: Как создать пустое множество?
Практика: Создайте два множества: {1, 2, 3} и {3, 4, 5}. Найдите их пересечение.
Ответы:
1. Множество — это коллекция уникальных элементов.
2. Пустое множество создается с помощью set().
3. Пример программы:
set1 = {1, 2, 3}
set2 = {3, 4, 5}
intersection = set1 & set2
print(intersection)
Билет 8
Теория 1: Что такое строка в Python?
Теория 2: Как преобразовать строку в верхний регистр?
Практика: Напишите программу, которая принимает строку от пользователя и выводит ее в обратном порядке.
Ответы:
1. Строка — это последовательность символов, заключенная в кавычки.
2. Для преобразования строки в верхний регистр используется метод upper().
3. Пример программы:
text = input("Введите строку: ")
reversed_text = text[::-1]
print(reversed_text)
Билет 9
Теория 1: Что такое исключения в Python?
Теория 2: Как обработать исключение с помощью try-except?
Практика: Напишите программу, которая запрашивает у пользователя число и обрабатывает ошибку, если введено не число.
Ответы:
1. Исключения — это ошибки, которые возникают во время выполнения программы.
2. Исключение обрабатывается с помощью блока try-except.
3. Пример программы:
try:
num = int(input("Введите число: "))
print(f"Вы ввели: {num}")
except ValueError:
print("Ошибка: введено не число.")
Билет 10
Теория 1: Что такое PEP 8?
Теория 2: Почему важно соблюдать стандарты оформления кода?
Практика: Исправьте следующий код, чтобы он соответствовал PEP 8:
def add(a,b):return a+b
Ответы:
1. PEP 8 — это стандарт оформления кода на Python, который определяет правила написания читаемого и удобного кода.
2. Соблюдение стандартов помогает сделать код более читаемым и поддерживаемым, особенно в командной работе.
3. Исправленный код:
def add(a, b):
return a + b
Билет 11
Теория 1: Что такое класс в Python?
Теория 2: Как объявляется класс?
Практика: Создайте класс Car, который имеет атрибуты model и year, и метод для вывода информации о машине.
Ответы:
1. Класс — это шаблон для создания объектов.
2. Класс объявляется с помощью ключевого слова class.
3. Пример программы:
class Car:
def __init__(self, model, year):
self.model = model
self.year = year
def info(self):
print(f"Модель: {self.model}, Год выпуска: {self.year}")
car = Car("Toyota", 2020)
car.info()
Билет 12
Теория 1: Что такое наследование в ООП?
Теория 2: Как создать класс, который наследуется от другого класса?
Практика: Создайте класс ElectricCar, который наследуется от класса Car (см. билет 11) и добавляет атрибут battery_capacity.
Ответы:
1. Наследование — это механизм, позволяющий создавать новый класс на основе существующего.
2. Наследование осуществляется указанием родительского класса в скобках после имени класса.
3. Пример программы:
class ElectricCar(Car):
def __init__(self, model, year, battery_capacity):
super().__init__(model, year)
self.battery_capacity = battery_capacity
electric_car = ElectricCar("Tesla", 2023, "100 kWh")
electric_car.info()
print(f"Емкость батареи: {electric_car.battery_capacity}")
Билет 13
Теория 1: Что такое полиморфизм в ООП?
Теория 2: Приведите пример полиморфизма.
Практика: Переопределите метод info() в классе ElectricCar (см. билет 12), чтобы он выводил дополнительную информацию о батарее.
Ответы:
1. Полиморфизм — это возможность использования одного интерфейса для разных типов объектов.
2. Пример: один метод может работать с объектами разных классов, если они реализуют общий интерфейс.
3. Пример программы:
class ElectricCar(Car):
def __init__(self, model, year, battery_capacity):
super().__init__(model, year)
self.battery_capacity = battery_capacity
def info(self):
print(f"Модель: {self.model}, Год выпуска: {self.year}, Батарея: {self.battery_capacity}")
electric_car = ElectricCar("Tesla", 2023, "100 kWh")
electric_car.info()
Билет 14
Теория 1: Что такое инкапсуляция в ООП?
Теория 2: Как скрыть атрибуты класса?
Практика: Создайте класс BankAccount с закрытым атрибутом balance и методами для пополнения и снятия средств.
Ответы:
1. Инкапсуляция — это механизм сокрытия внутренней реализации класса.
2. Атрибуты скрываются с помощью префикса _ или __.
3. Пример программы:
class BankAccount:
def __init__(self):
self.__balance = 0
def deposit(self, amount):
self.__balance += amount
print(f"Баланс пополнен на {amount}. Текущий баланс: {self.__balance}")
def withdraw(self, amount):
if amount <= self.__balance:
self.__balance -= amount
print(f"Снято {amount}. Текущий баланс: {self.__balance}")
else:
print("Недостаточно средств.")
account = BankAccount()
account.deposit(100)
account.withdraw(50)
Билет 15
Теория 1: Что такое модуль в Python?
Теория 2: Как импортировать модуль?
Практика: Создайте файл math_operations.py, содержащий функцию для сложения двух чисел. Импортируйте этот модуль и используйте функцию.
Ответы:
1. Модуль — это файл, содержащий код Python, который можно повторно использовать.
2. Модуль импортируется с помощью ключевого слова import.
3. Пример программы:
math_operations.py:
def add(a, b):
return a + b
Основной файл:
import math_operations
result = math_operations.add(5, 7)
print(result)
Билет 16
Теория 1: Что такое JSON?
Теория 2: Как преобразовать объект Python в JSON?
Практика: Преобразуйте словарь {"name": "Alice", "age": 25} в JSON-строку и выведите ее.
Ответы:
1. JSON — это формат данных для хранения и передачи информации.
2. Преобразование выполняется с помощью метода json.dumps().
3. Пример программы:
import json
data = {"name": "Alice", "age": 25}
json_data = json.dumps(data)
print(json_data)
Билет 17
Теория 1: Что такое HTTP-запрос?
Теория 2: Как отправить GET-запрос в Python?
Практика: Отправьте GET-запрос к сайту https://jsonplaceholder.typicode.com/posts и выведите ответ.
Ответы:
1. HTTP-запрос — это запрос к серверу через протокол HTTP.
2. Запрос отправляется с помощью библиотеки requests и метода get().
3. Пример программы:
import requests
response = requests.get("https://jsonplaceholder.typicode.com/posts")
print(response.json())
Билет 18
Теория 1: Что такое базы данных?
Теория 2: Как создать таблицу в SQLite?
Практика: Создайте базу данных SQLite, добавьте таблицу users с полями id и name, и запишите в нее несколько записей.
Ответы:
1. Базы данных — это системы для хранения и управления данными.
2. Таблица создается с помощью SQL-запроса CREATE TABLE.
3. Пример программы:
import sqlite3
conn = sqlite3.connect("example.db")
cursor = conn.cursor()
cursor.execute("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT)")
cursor.execute("INSERT INTO users (name) VALUES ('Alice')")
cursor.execute("INSERT INTO users (name) VALUES ('Bob')")
conn.commit()
conn.close()
Билет 19
Теория 1: Что такое Git?
Теория 2: Как создать коммит в Git?
Практика: Создайте репозиторий, добавьте файл README.md и сделайте коммит.
Ответы:
1. Git — это система контроля версий для отслеживания изменений в коде.
2. Коммит создается с помощью команды git commit -m "Сообщение".
3. Пример действий:
git init
echo "# My Project" > README.md
git add README.md
git commit -m "Добавлен README"
Билет 20
Теория 1: Что такое Docker?
Теория 2: Как создать контейнер из образа?
Практика: Напишите команду для запуска контейнера из официального образа Python.
Ответы:
1. Docker — это платформа для создания и управления контейнерами.
2. Контейнер создается с помощью команды docker run.
3. Пример команды:
docker run -it python:3.9-slim python –version
Билет 21
Теория 1: Что такое рекурсия?
Теория 2: Приведите пример рекурсивной функции.
Практика: Напишите рекурсивную функцию для вычисления факториала числа.
Ответы:
1. Рекурсия — это функция, которая вызывает саму себя.
2. Пример: функция для вычисления факториала.
3. Пример программы:
def factorial(n):
if n == 0 or n == 1:
return 1
return n * factorial(n - 1)
print(factorial(5))
Билет 22
Теория 1: Что такое лямбда-функция?
Теория 2: Где используется лямбда-функция?
Практика: Используйте лямбда-функцию для сортировки списка слов по длине.
Ответы:
1. Лямбда-функция — это анонимная функция, определяемая с помощью ключевого слова lambda.
2. Лямбда-функции используются для кратких операций, например, в сортировке или фильтрации.
3. Пример программы:
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words, key=lambda x: len(x))
print(sorted_words)
Билет 23
Теория 1: Что такое генератор списков?
Теория 2: В чем его преимущество перед циклом?
Практика: Создайте список квадратов чисел от 1 до 10 с помощью генератора списков.
Ответы:
1. Генератор списков — это компактный способ создания списков на основе выражений.
2. Преимущество: более читаемый и компактный код.
3. Пример программы:
squares = [x**2 for x in range(1, 11)]
print(squares)
Билет 24
Теория 1: Что такое декораторы?
Теория 2: Приведите пример использования декоратора.
Практика: Напишите декоратор, который выводит время выполнения функции.
Ответы:
1. Декоратор — это функция, которая расширяет поведение другой функции.
2. Пример: декоратор для измерения времени выполнения.
3. Пример программы:
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"Время выполнения: {end - start} секунд")
return result
return wrapper
@timer
def example():
time.sleep(2)
example()
Билет 25
Теория 1: Что такое модульное тестирование?
Теория 2: Как писать тесты в Python?
Практика: Напишите тест для функции, которая складывает два числа, используя модуль unittest.
Ответы:
1. Модульное тестирование — это проверка отдельных частей программы.
2. Тесты пишутся с использованием модуля unittest.
3. Пример программы:
import unittest
def add(a, b):
return a + b
class TestAddFunction(unittest.TestCase):
def test_add(self):
self.assertEqual(add(2, 3), 5)
if __name__ == "__main__":
unittest.main()
Билет 26
Теория 1: Что такое Flask?
Теория 2: Как создать простое приложение на Flask?
Практика: Создайте приложение, которое выводит "Hello, World!" на главной странице.
Ответы:
1. Flask — это микрофреймворк для создания веб-приложений.
2. Приложение создается с помощью метода app.route().
3. Пример программы:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def home():
return "Hello, World!"
if __name__ == "__main__":
app.run()
Билет 27
Теория 1: Что такое REST API?
Теория 2: Как создать эндпоинт в Flask?
Практика: Создайте REST API с одним эндпоинтом, который возвращает JSON.
Ответы:
1. REST API — это архитектурный стиль для взаимодействия между клиентом и сервером.
2. Эндпоинт создается с помощью декоратора @app.route().
3. Пример программы:
from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/api/data", methods=["GET"])
def get_data():
return jsonify({"message": "Hello, API!"})
if __name__ == "__main__":
app.run()
Билет 28
Теория 1: Что такое FastAPI?
Теория 2: В чем его преимущества перед Flask?
Практика: Создайте простое приложение на FastAPI с одним эндпоинтом.
Ответы:
1. FastAPI — это современный фреймворк для создания REST API.
2. Преимущества: высокая производительность и автоматическая генерация документации.
3. Пример программы:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, FastAPI!"}
Билет 29
Теория 1: Что такое WebSocket?
Теория 2: Для чего он используется?
Практика: Напишите простой сервер WebSocket, который отправляет сообщения клиенту.
Ответы:
1. WebSocket — это протокол для двусторонней связи между клиентом и сервером.
2. WebSocket используется для реального обмена данными.
3. Пример программы:
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(f"Echo: {message}")
start_server = websockets.serve(echo, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Билет 30
Теория 1: Что такое Celery?
Теория 2: Как настроить Celery для выполнения фоновой задачи?
Практика: Настройте Celery для выполнения задачи add(a, b).
Ответы:
1. Celery — это инструмент для выполнения фоновых задач.
2. Celery настраивается с помощью брокера сообщений, например, Redis.
3. Пример программы:
tasks.py:
from celery import Celery
app = Celery("tasks", broker="redis://localhost:6379/0")
@app.task
def add(a, b):
return a + b
Запуск:
celery -A tasks worker --loglevel=info
Билет 31
Теория 1: Что такое Redis?
Теория 2: Как использовать Redis в Python?
Практика: Напишите программу, которая сохраняет данные в Redis и читает их обратно.
Ответы:
1. Redis — это in-memory база данных, используемая для хранения данных в виде ключей и значений.
2. Redis используется через библиотеку redis.
3. Пример программы:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('key', 'value')
print(r.get('key'))
Билет 32
Теория 1: Что такое RabbitMQ?
Теория 2: Для чего он используется?
Практика: Настройте RabbitMQ для отправки и получения сообщений.
Ответы:
1. RabbitMQ — это брокер сообщений, который управляет очередями сообщений.
2. RabbitMQ используется для асинхронной передачи данных между приложениями.
3. Пример программы:
producer.py:
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print("Sent 'Hello World!'")
connection.close()
consumer.py:
import pika
def callback(ch, method, properties, body):
print(f"Received {body}")
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_consume(queue='hello', on_message_callback=callback, auto_ack=True)
print('Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
Билет 33
Теория 1: Что такое NumPy?
Теория 2: Как создать массив NumPy?
Практика: Создайте массив NumPy и выполните сложение двух массивов.
Ответы:
1. NumPy — это библиотека для работы с массивами и математическими вычислениями.
2. Массив создается с помощью функции numpy.array().
3. Пример программы:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
result = arr1 + arr2
print(result)
Билет 34
Теория 1: Что такое Pandas?
Теория 2: Как создать DataFrame?
Практика: Создайте DataFrame из словаря и отфильтруйте строки, где значение больше 5.
Ответы:
1. Pandas — это библиотека для анализа данных.
2. DataFrame создается с помощью функции pandas.DataFrame().
3. Пример программы:
import pandas as pd
data = {'A': [1, 6, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
filtered_df = df[df['A'] > 5]
print(filtered_df)
Билет 35
Теория 1: Что такое Matplotlib?
Теория 2: Как построить график функции?
Практика: Постройте график функции y = x^2 на интервале [-10, 10].
Ответы:
1. Matplotlib — это библиотека для создания графиков.
2. График строится с помощью функции plot().
3. Пример программы:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 100)
y = x**2
plt.plot(x, y)
plt.show()
Билет 36
Теория 1: Что такое TensorFlow?
Теория 2: Для чего он используется?
Практика: Создайте простую нейросеть с одним слоем.
Ответы:
1. TensorFlow — это фреймворк для машинного обучения.
2. TensorFlow используется для создания и обучения моделей машинного обучения.
3. Пример программы:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mean_squared_error')
print(model.summary())
Билет 37
Теория 1: Что такое Scrapy?
Теория 2: Для чего он используется?
Практика: Напишите паука Scrapy для сбора заголовков страницы.
Ответы:
1. Scrapy — это фреймворк для веб-скрапинга.
2. Scrapy используется для автоматического сбора данных с веб-сайтов.
3. Пример программы:
my_spider.py:
import scrapy
class ExampleSpider(scrapy.Spider):
name = "example"
start_urls = ['https://example.com']
def parse(self, response):
for title in response.css('h1::text').getall():
yield {'title': title}
Билет 38
Теория 1: Что такое Selenium?
Теория 2: Для чего он используется?
Практика: Напишите скрипт Selenium для автоматизации ввода текста в поле поиска Google.
Ответы:
1. Selenium — это инструмент для автоматизации браузера.
2. Selenium используется для тестирования веб-приложений и автоматизации действий в браузере.
3. Пример программы:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.google.com")
search_box = driver.find_element("name", "q")
search_box.send_keys("Python")
search_box.submit()
driver.quit()
Билет 39
Теория 1: Что такое Beautiful Soup?
Теория 2: Для чего он используется?
Практика: Напишите программу, которая парсит HTML-страницу и выводит все ссылки.
Ответы:
1. Beautiful Soup — это библиотека для парсинга HTML и XML.
2. Beautiful Soup используется для извлечения данных из HTML-документов.
3. Пример программы:
from bs4 import BeautifulSoup
html = "<html><a href='https://example.com'>Link</a></html>"
soup = BeautifulSoup(html, 'html.parser')
for link in soup.find_all('a'):
print(link.get('href'))
Билет 40
Теория 1: Что такое SQLAlchemy?
Теория 2: Для чего он используется?
Практика: Создайте таблицу в базе данных и добавьте в нее запись с помощью SQLAlchemy.
Ответы:
1. SQLAlchemy — это ORM для работы с базами данных.
2. SQLAlchemy используется для взаимодействия с базами данных через Python.
3. Пример программы:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
new_user = User(name="Alice")
session.add(new_user)
session.commit()
Билет 41
Теория 1: Что такое Docker Compose?
Теория 2: Как его использовать?
Практика: Напишите файл docker-compose.yml для запуска нескольких контейнеров.
Ответы:
1. Docker Compose — это инструмент для запуска нескольких контейнеров.
2. Docker Compose используется для управления многосервисными приложениями.
3. Пример файла:
version: '3'
services:
web:
image: nginx:latest
ports:
- "8080:80"
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
Билет 42
Теория 1: Что такое Kubernetes?
Теория 2: Для чего он используется?
Практика: Напишите манифест Kubernetes для запуска приложения.
Ответы:
1. Kubernetes — это платформа для управления контейнерами.
2. Kubernetes используется для автоматизации развертывания, масштабирования и управления приложениями.
3. Пример манифеста:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
Билет 43
Теория 1: Что такое CI/CD?
Теория 2: Как настроить его для Python-проекта?
Практика: Напишите конфигурацию GitHub Actions для автоматического тестирования проекта.
Ответы:
1. CI/CD — это процесс автоматизации сборки, тестирования и развертывания.
2. Настройка выполняется с помощью файлов конфигурации, например, .github/workflows/ci.yml.
3. Пример конфигурации:
name: Python CI
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: '3.9'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run tests
run: pytest
Билет 44
Теория 1: Что такое машинное обучение?
Теория 2: Какие основные этапы ML-проекта?
Практика: Обучите модель линейной регрессии с помощью Scikit-learn.
Ответы:
1. Машинное обучение — это процесс обучения моделей на основе данных.
2. Основные этапы: подготовка данных, выбор модели, обучение, оценка.
3. Пример программы:
from sklearn.linear_model import LinearRegression
import numpy as np
X = np.array([[1], [2], [3], [4]])
y = np.array([2, 4, 6, 8])
model = LinearRegression()
model.fit(X, y)
print(model.predict([[5]]))
Билет 45
Теория 1: Что такое PyTorch?
Теория 2: Для чего он используется?
Практика: Создайте простую нейросеть с помощью PyTorch.
Ответы:
1. PyTorch — это фреймворк для машинного обучения.
2. PyTorch используется для создания и обучения моделей глубокого обучения.
3. Пример программы:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(1, 1)
)
print(model)
Билет 46
Теория 1: Что такое многопоточность в Python?
Теория 2: Как создать поток с помощью модуля threading?
Практика: Напишите программу, которая выполняет два потока: один выводит числа от 1 до 5, другой — буквы от 'A' до 'E'.
Ответы:
1. Многопоточность — это возможность выполнять несколько задач одновременно.
2. Поток создается с помощью класса Thread из модуля threading.
3. Пример программы:
import threading
import time
def print_numbers():
for i in range(1, 6):
print(i)
time.sleep(1)
def print_letters():
for letter in 'ABCDE':
print(letter)
time.sleep(1)
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_letters)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
Билет 47
Теория 1: Что такое асинхронное программирование?
Теория 2: Как использовать asyncio для асинхронных задач?
Практика: Напишите асинхронную программу, которая выполняет две задачи: одна ждет 2 секунды, другая — 3 секунды.
Ответы:
1. Асинхронное программирование — это выполнение задач без блокировки основного потока.
2. Задачи выполняются с помощью ключевых слов async и await.
3. Пример программы:
import asyncio
async def task1():
await asyncio.sleep(2)
print("Task 1 completed")
async def task2():
await asyncio.sleep(3)
print("Task 2 completed")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())
Билет 48
Теория 1: Что такое контекстный менеджер?
Теория 2: Как создать собственный контекстный менеджер?
Практика: Создайте контекстный менеджер, который измеряет время выполнения блока кода.
Ответы:
1. Контекстный менеджер управляет ресурсами в блоке with.
2. Собственный контекстный менеджер создается с помощью методов __enter__ и __exit__.
3. Пример программы:
import time
class Timer:
def __enter__(self):
self.start = time.time()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time.time()
print(f"Время выполнения: {self.end - self.start} секунд")
with Timer():
time.sleep(2)
Билет 49
Теория 1: Что такое миксины в Python?
Теория 2: Для чего они используются?
Практика: Создайте миксин для добавления функциональности "логирования" в класс.
Ответы:
1. Миксины — это классы, которые добавляют функциональность другим классам.
2. Миксины используются для повторного использования кода.
3. Пример программы:
class LoggerMixin:
def log(self, message):
print(f"[LOG]: {message}")
class MyClass(LoggerMixin):
def do_something(self):
self.log("Doing something")
obj = MyClass()
obj.do_something()
Билет 50
Теория 1: Что такое абстрактные классы?
Теория 2: Как создать абстрактный класс в Python?
Практика: Создайте абстрактный класс Animal с методом make_sound, который должен быть реализован в дочерних классах.
Ответы:
1. Абстрактные классы — это классы, которые не могут быть созданы напрямую.
2. Абстрактный класс создается с помощью модуля abc.
3. Пример программы:
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
print("Woof!")
dog = Dog()
dog.make_sound()
Билет 51
Теория 1: Что такое интерфейсы в Python?
Теория 2: Как их реализовать?
Практика: Создайте интерфейс Drawable с методом draw, который реализуют классы Circle и Square.
Ответы:
1. Интерфейсы определяют методы, которые должны быть реализованы в классах.
2. Интерфейсы реализуются через абстрактные классы или протоколы.
3. Пример программы:
from abc import ABC, abstractmethod
class Drawable(ABC):
@abstractmethod
def draw(self):
pass
class Circle(Drawable):
def draw(self):
print("Drawing a circle")
class Square(Drawable):
def draw(self):
print("Drawing a square")
shapes = [Circle(), Square()]
for shape in shapes:
shape.draw()
Билет 52
Теория 1: Что такое метаклассы?
Теория 2: Для чего они используются?
Практика: Создайте метакласс, который добавляет атрибут created_by в класс.
Ответы:
1. Метаклассы — это классы, которые создают другие классы.
2. Метаклассы используются для изменения поведения классов.
3. Пример программы:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['created_by'] = "MetaClass"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.created_by)
Билет 53
Теория 1: Что такое дескрипторы?
Теория 2: Как их использовать?
Практика: Создайте дескриптор для проверки значений атрибутов.
Ответы:
1. Дескрипторы управляют доступом к атрибутам класса.
2. Дескрипторы реализуются через методы __get__, __set__, __delete__.
3. Пример программы:
class PositiveNumber:
def __init__(self):
self.value = None
def __get__(self, instance, owner):
return self.value
def __set__(self, instance, value):
if value < 0:
raise ValueError("Value must be positive")
self.value = value
class MyClass:
x = PositiveNumber()
obj = MyClass()
obj.x = 10
print(obj.x)
Билет 54
Теория 1: Что такое замыкания?
Теория 2: Приведите пример использования замыканий.
Практика: Напишите функцию, которая создает счетчик с помощью замыкания.
Ответы:
1. Замыкания — это функции, которые сохраняют доступ к переменным из внешней области видимости.
2. Пример: функция-счетчик.
3. Пример программы:
def counter():
count = 0
def increment():
nonlocal count
count += 1
return count
return increment
cnt = counter()
print(cnt()) # 1
print(cnt()) # 2
Билет 55
Теория 1: Что такое генераторы?
Теория 2: Как их использовать?
Практика: Напишите генератор, который возвращает числа Фибоначчи.
Ответы:
1. Генераторы — это функции, которые возвращают значения по одному с помощью yield.
2. Генераторы используются для создания последовательностей.
3. Пример программы:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for _ in range(10):
print(next(fib))
Билет 56
Теория 1: Что такое итераторы?
Теория 2: Как создать собственный итератор?
Практика: Создайте итератор, который возвращает квадраты чисел от 1 до 5.
Ответы:
1. Итераторы — это объекты, которые позволяют перебирать элементы коллекции.
2. Итератор создается с помощью методов __iter__ и __next__.
3. Пример программы:
class Squares:
def __init__(self, limit):
self.limit = limit
self.current = 1
def __iter__(self):
return self
def __next__(self):
if self.current > self.limit:
raise StopIteration
result = self.current ** 2
self.current += 1
return result
squares = Squares(5)
for square in squares:
print(square)
Билет 57
Теория 1: Что такое магические методы?
Теория 2: Приведите пример использования магических методов.
Практика: Создайте класс с магическим методом __str__, который выводит информацию о объекте.
Ответы:
1. Магические методы — это методы, которые начинаются и заканчиваются двойными подчеркиваниями.
2. Пример: метод __str__ для строкового представления объекта.
3. Пример программы:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, {self.age} years old"
person = Person("Alice", 25)
print(person)
Билет 58
Теория 1: Что такое декораторы?
Теория 2: Приведите пример декоратора.
Практика: Напишите декоратор, который логирует вызовы функции.
Ответы:
1. Декораторы — это функции, которые расширяют поведение других функций.
2. Пример: декоратор для логирования.
3. Пример программы:
def logger(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__} with {args} and {kwargs}")
return func(*args, **kwargs)
return wrapper
@logger
def add(a, b):
return a + b
print(add(2, 3))
Билет 59
Теория 1: Что такое логирование?
Теория 2: Как настроить логирование в Python?
Практика: Настройте логирование для записи сообщений в файл.
Ответы:
1. Логирование — это процесс записи информации о работе программы.
2. Логирование настраивается с помощью модуля logging.
3. Пример программы:
import logging
logging.basicConfig(filename='app.log', level=logging.INFO)
logging.info("This is an info message")
logging.error("This is an error message")
Билет 60
Теория 1: Что такое профилирование кода?
Теория 2: Как его выполнить в Python?
Практика: Профилируйте простую функцию с помощью модуля cProfile.
Ответы:
1. Профилирование — это анализ производительности программы.
2. Профилирование выполняется с помощью модуля cProfile.
3. Пример программы:
import cProfile
def slow_function():
total = 0
for i in range(1000000):
total += i
return total
cProfile.run('slow_function()')
Билет 61
Теория 1: Что такое модульное тестирование?
Теория 2: Как писать тесты в Python?
Практика: Напишите тест для функции, которая вычисляет среднее значение списка чисел.
Ответы:
1. Модульное тестирование — это проверка отдельных частей программы.
2. Тесты пишутся с использованием модуля unittest.
3. Пример программы:
import unittest
def average(numbers):
return sum(numbers) / len(numbers)
class TestAverage(unittest.TestCase):
def test_average(self):
self.assertEqual(average([1, 2, 3]), 2)
if __name__ == "__main__":
unittest.main()
Билет 62
Теория 1: Что такое интеграционное тестирование?
Теория 2: В чем разница между модульным и интеграционным тестированием?
Практика: Напишите интеграционный тест для проверки взаимодействия двух функций.
Ответы:
1. Интеграционное тестирование — это проверка взаимодействия между компонентами программы.
2. Модульное тестирование проверяет отдельные части, а интеграционное — их взаимодействие.
3. Пример программы:
import unittest
def add(a, b):
return a + b
def multiply(a, b):
return a * b
class TestIntegration(unittest.TestCase):
def test_integration(self):
result = multiply(add(2, 3), 4)
self.assertEqual(result, 20)
if __name__ == "__main__":
unittest.main()
Билет 63
Теория 1: Что такое REST API?
Теория 2: Какие HTTP-методы используются в REST API?
Практика: Создайте эндпоинт Flask для добавления данных через POST-запрос.
Ответы:
1. REST API — это архитектурный стиль для взаимодействия между клиентом и сервером.
2. Основные методы: GET, POST, PUT, DELETE.
3. Пример программы:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/data', methods=['POST'])
def add_data():
data = request.json
return jsonify({"message": "Data received", "data": data}), 201
if __name__ == "__main__":
app.run()
Билет 64
Теория 1: Что такое WebSocket?
Теория 2: В чем его преимущество перед HTTP?
Практика: Напишите сервер WebSocket, который отправляет клиенту текущее время каждую секунду.
Ответы:
1. WebSocket — это протокол для двусторонней связи между клиентом и сервером.
2. Преимущество: постоянное соединение и меньшие накладные расходы.
3. Пример программы:
import asyncio
import websockets
from datetime import datetime
async def time_server(websocket, path):
while True:
current_time = datetime.now().strftime("%H:%M:%S")
await websocket.send(current_time)
await asyncio.sleep(1)
start_server = websockets.serve(time_server, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Билет 65
Теория 1: Что такое Celery?
Теория 2: Для чего он используется?
Практика: Настройте Celery для выполнения фоновой задачи send_email.
Ответы:
1. Celery — это инструмент для выполнения фоновых задач.
2. Celery используется для обработки длительных операций без блокировки основного потока.
3. Пример программы:
tasks.py:
from celery import Celery
app = Celery("tasks", broker="redis://localhost:6379/0")
@app.task
def send_email(to, subject, body):
print(f"Sending email to {to}: {subject} - {body}")
Запуск: celery -A tasks worker --loglevel=info
Билет 66
Теория 1: Что такое RabbitMQ?
Теория 2: Как он работает с Celery?
Практика: Настройте RabbitMQ как брокер сообщений для Celery.
Ответы:
1. RabbitMQ — это брокер сообщений, который управляет очередями.
2. RabbitMQ используется Celery для передачи задач между производителями и потребителями.
3. Пример настройки:
Измените tasks.py:
from celery import Celery
app = Celery("tasks", broker="pyamqp://guest@localhost//")
Запуск RabbitMQ: rabbitmq-server
Билет 67
Теория 1: Что такое Redis?
Теория 2: Как его использовать в Python?
Практика: Напишите программу, которая сохраняет счетчик в Redis и увеличивает его значение.
Ответы:
1. Redis — это in-memory база данных, используемая для хранения данных в виде ключей и значений.
2. Redis используется через библиотеку redis.
3. Пример программы:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('counter', 0)
r.incr('counter')
print(r.get('counter'))
Билет 68
Теория 1: Что такое Kubernetes?
Теория 2: Как создать Deployment в Kubernetes?
Практика: Напишите манифест Kubernetes для запуска приложения с 3 репликами.
Ответы:
1. Kubernetes — это платформа для управления контейнерами.
2. Deployment создается с помощью манифеста YAML.
3. Пример манифеста:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
Билет 69
Теория 1: Что такое CI/CD?
Теория 2: Как настроить его для Python-проекта?
Практика: Напишите конфигурацию GitHub Actions для автоматической сборки Docker-образа.
Ответы:
1. CI/CD — это процесс автоматизации сборки, тестирования и развертывания.
2. Настройка выполняется с помощью файлов конфигурации, например, .github/workflows/ci.yml.
3. Пример конфигурации:
name: Docker Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Docker image
run: docker build -t my-app .
Билет 70
Теория 1: Что такое машинное обучение?
Теория 2: Какие этапы ML-проекта?
Практика: Обучите модель классификации с помощью Scikit-learn.
Ответы:
1. Машинное обучение — это процесс обучения моделей на основе данных.
2. Этапы: подготовка данных, выбор модели, обучение, оценка.
3. Пример программы:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier()
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(accuracy_score(y_test, y_pred))
Билет 71
Теория 1: Что такое PyTorch?
Теория 2: Для чего он используется?
Практика: Создайте простую нейросеть с одним скрытым слоем.
Ответы:
1. PyTorch — это фреймворк для машинного обучения.
2. PyTorch используется для создания и обучения моделей глубокого обучения.
3. Пример программы:
import torch
import torch.nn as nn
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(10, 5)
self.fc2 = nn.Linear(5, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
net = Net()
print(net)
Билет 72
Теория 1: Что такое TensorFlow?
Теория 2: Для чего он используется?
Практика: Создайте модель линейной регрессии с помощью TensorFlow.
Ответы:
1. TensorFlow — это фреймворк для машинного обучения.
2. TensorFlow используется для создания и обучения моделей.
3. Пример программы:
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(1, input_shape=(1,))
])
model.compile(optimizer='sgd', loss='mean_squared_error')
print(model.summary())
Билет 73
Теория 1: Что такое Scrapy?
Теория 2: Для чего он используется?
Практика: Напишите паука Scrapy для сбора заголовков новостей с сайта.
Ответы:
1. Scrapy — это фреймворк для веб-скрапинга.
2. Scrapy используется для автоматического сбора данных с веб-сайтов.
3. Пример программы:
my_spider.py:
import scrapy
class NewsSpider(scrapy.Spider):
name = "news"
start_urls = ['https://example.com']
def parse(self, response):
for title in response.css('h1::text').getall():
yield {'title': title}
Билет 74
Теория 1: Что такое Selenium?
Теория 2: Для чего он используется?
Практика: Напишите скрипт Selenium для автоматизации заполнения формы регистрации.
Ответы:
1. Selenium — это инструмент для автоматизации браузера.
2. Selenium используется для тестирования веб-приложений и автоматизации действий.
3. Пример программы:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://example.com/register")
driver.find_element("id", "username").send_keys("testuser")
driver.find_element("id", "password").send_keys("password123")
driver.find_element("id", "submit").click()
driver.quit()
Билет 75
Теория 1: Что такое Beautiful Soup?
Теория 2: Для чего он используется?
Практика: Напишите программу, которая парсит HTML-страницу и выводит все теги <a>.
Ответы:
1. Beautiful Soup — это библиотека для парсинга HTML и XML.
2. Beautiful Soup используется для извлечения данных из HTML-документов.
3. Пример программы:
from bs4 import BeautifulSoup
html = "<html><a href='https://example.com'>Link</a></html>"
soup = BeautifulSoup(html, 'html.parser')
for link in soup.find_all('a'):
print(link.get('href'))
Билет 76
Теория 1: Что такое SQLAlchemy?
Теория 2: Как создать таблицу в базе данных?
Практика: Создайте таблицу с помощью SQLAlchemy и выполните запрос SELECT.
Ответы:
1. SQLAlchemy — это ORM для работы с базами данных.
2. Таблица создается с помощью класса и декларативного стиля.
3. Пример программы:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
engine = create_engine('sqlite:///example.db')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
users = session.query(User).all()
for user in users:
print(user.name)
Билет 77
Теория 1: Что такое Docker Compose?
Теория 2: Как его использовать?
Практика: Напишите файл docker-compose.yml для запуска приложения и базы данных.
Ответы:
1. Docker Compose — это инструмент для запуска нескольких контейнеров.
2. Docker Compose используется для управления многосервисными приложениями.
3. Пример файла:
version: '3'
services:
app:
image: python:3.9
volumes:
- .:/app
working_dir: /app
command: python app.py
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
Билет 78
Теория 1: Что такое многопоточность в Python?
Теория 2: Как создать поток?
Практика: Напишите программу, которая выполняет два потока: один выводит числа, другой — буквы.
Ответы:
1. Многопоточность — это возможность выполнять несколько задач одновременно.
2. Поток создается с помощью класса Thread.
3. Пример программы:
import threading
import time
def print_numbers():
for i in range(1, 6):
print(i)
time.sleep(1)
def print_letters():
for letter in 'ABCDE':
print(letter)
time.sleep(1)
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_letters)
thread1.start()
thread2.start()
thread1.join()
thread2.join()
Билет 79
Теория 1: Что такое асинхронное программирование?
Теория 2: Как использовать asyncio?
Практика: Напишите асинхронную программу, которая выполняет две задачи: одна ждет 2 секунды, другая — 3 секунды.
Ответы:
1. Асинхронное программирование — это выполнение задач без блокировки основного потока.
2. Задачи выполняются с помощью ключевых слов async и await.
3. Пример программы:
import asyncio
async def task1():
await asyncio.sleep(2)
print("Task 1 completed")
async def task2():
await asyncio.sleep(3)
print("Task 2 completed")
async def main():
await asyncio.gather(task1(), task2())
asyncio.run(main())
Билет 80
Теория 1: Что такое контекстный менеджер?
Теория 2: Как создать собственный контекстный менеджер?
Практика: Создайте контекстный менеджер, который измеряет время выполнения блока кода.
Ответы:
1. Контекстный менеджер управляет ресурсами в блоке with.
2. Собственный контекстный менеджер создается с помощью методов __enter__ и __exit__.
3. Пример программы:
import time
class Timer:
def __enter__(self):
self.start = time.time()
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.end = time.time()
print(f"Время выполнения: {self.end - self.start} секунд")
with Timer():
time.sleep(2)
Билет 81
Теория 1: Что такое миксины в Python?
Теория 2: Для чего они используются?
Практика: Создайте миксин для добавления функциональности "логирования" в класс.
Ответы:
1. Миксины — это классы, которые добавляют функциональность другим классам.
2. Миксины используются для повторного использования кода.
3. Пример программы:
class LoggerMixin:
def log(self, message):
print(f"[LOG]: {message}")
class MyClass(LoggerMixin):
def do_something(self):
self.log("Doing something")
obj = MyClass()
obj.do_something()
Билет 82
Теория 1: Что такое абстрактные классы?
Теория 2: Как создать абстрактный класс?
Практика: Создайте абстрактный класс Vehicle с методом drive, который должен быть реализован в дочерних классах.
Ответы:
1. Абстрактные классы — это классы, которые не могут быть созданы напрямую.
2. Абстрактный класс создается с помощью модуля abc.
3. Пример программы:
from abc import ABC, abstractmethod
class Vehicle(ABC):
@abstractmethod
def drive(self):
pass
class Car(Vehicle):
def drive(self):
print("Driving a car")
car = Car()
car.drive()
Билет 83
Теория 1: Что такое интерфейсы в Python?
Теория 2: Как их реализовать?
Практика: Создайте интерфейс Drawable с методом draw, который реализуют классы Circle и Square.
Ответы:
1. Интерфейсы определяют методы, которые должны быть реализованы в классах.
2. Интерфейсы реализуются через абстрактные классы или протоколы.
3. Пример программы:
from abc import ABC, abstractmethod
class Drawable(ABC):
@abstractmethod
def draw(self):
pass
class Circle(Drawable):
def draw(self):
print("Drawing a circle")
class Square(Drawable):
def draw(self):
print("Drawing a square")
shapes = [Circle(), Square()]
for shape in shapes:
shape.draw()
Билет 84
Теория 1: Что такое метаклассы?
Теория 2: Для чего они используются?
Практика: Создайте метакласс, который добавляет атрибут created_by в класс.
Ответы:
1. Метаклассы — это классы, которые создают другие классы.
2. Метаклассы используются для изменения поведения классов.
3. Пример программы:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['created_by'] = "MetaClass"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.created_by)
Билет 85
Теория 1: Что такое дескрипторы?
Теория 2: Как их использовать?
Практика: Создайте дескриптор для проверки значений атрибутов.
Ответы:
1. Дескрипторы управляют доступом к атрибутам класса.
2. Дескрипторы реализуются через методы __get__, __set__, __delete__.
3. Пример программы:
class PositiveNumber:
def __init__(self):
self.value = None
def __get__(self, instance, owner):
return self.value
def __set__(self, instance, value):
if value < 0:
raise ValueError("Value must be positive")
self.value = value
class MyClass:
x = PositiveNumber()
obj = MyClass()
obj.x = 10
print(obj.x)
Билет 86
Теория 1: Что такое замыкания?
Теория 2: Приведите пример использования замыканий.
Практика: Напишите функцию, которая создает счетчик с помощью замыкания.
Ответы:
1. Замыкания — это функции, которые сохраняют доступ к переменным из внешней области видимости.
2. Пример: функция-счетчик.
3. Пример программы:
def counter():
count = 0
def increment():
nonlocal count
count += 1
return count
return increment
cnt = counter()
print(cnt()) # 1
print(cnt()) # 2
Билет 87
Теория 1: Что такое генераторы?
Теория 2: Как их использовать?
Практика: Напишите генератор, который возвращает числа Фибоначчи.
Ответы:
1. Генераторы — это функции, которые возвращают значения по одному с помощью yield.
2. Генераторы используются для создания последовательностей.
3. Пример программы:
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
fib = fibonacci()
for _ in range(10):
print(next(fib))
Билет 88
Теория 1: Что такое итераторы?
Теория 2: Как создать собственный итератор?
Практика: Создайте итератор, который возвращает квадраты чисел от 1 до 5.
Ответы:
1. Итераторы — это объекты, которые позволяют перебирать элементы коллекции.
2. Итератор создается с помощью методов __iter__ и __next__.
3. Пример программы:
class Squares:
def __init__(self, limit):
self.limit = limit
self.current = 1
def __iter__(self):
return self
def __next__(self):
if self.current > self.limit:
raise StopIteration
result = self.current ** 2
self.current += 1
return result
squares = Squares(5)
for square in squares:
print(square)
Билет 89
Теория 1: Что такое магические методы?
Теория 2: Приведите пример использования магических методов.
Практика: Создайте класс с магическим методом __str__, который выводит информацию о объекте.
Ответы:
1. Магические методы — это методы, которые начинаются и заканчиваются двойными подчеркиваниями.
2. Пример: метод __str__ для строкового представления объекта.
3. Пример программы:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}, {self.age} years old"
person = Person("Alice", 25)
print(person)
Билет 90
Теория 1: Что такое декораторы?
Теория 2: Приведите пример декоратора.
Практика: Напишите декоратор, который логирует вызовы функции.
Ответы:
1. Декораторы — это функции, которые расширяют поведение других функций.
2. Пример: декоратор для логирования.
3. Пример программы:
def logger(func):
def wrapper(*args, **kwargs):
print(f"Calling {func.__name__} with {args} and {kwargs}")
return func(*args, **kwargs)
return wrapper
@logger
def add(a, b):
return a + b
print(add(2, 3))
Билет 91
Теория 1: Что такое логирование?
Теория 2: Как настроить логирование в Python?
Практика: Настройте логирование для записи сообщений в файл.
Ответы:
1. Логирование — это процесс записи информации о работе программы.
2. Логирование настраивается с помощью модуля logging.
3. Пример программы:
import logging
logging.basicConfig(filename='app.log', level=logging.INFO)
logging.info("This is an info message")
logging.error("This is an error message")
Билет 92
Теория 1: Что такое профилирование кода?
Теория 2: Как его выполнить в Python?
Практика: Профилируйте простую функцию с помощью модуля cProfile.
Ответы:
1. Профилирование — это анализ производительности программы.
2. Профилирование выполняется с помощью модуля cProfile.
3. Пример программы:
import cProfile
def slow_function():
total = 0
for i in range(1000000):
total += i
return total
cProfile.run('slow_function()')
Билет 93
Теория 1: Что такое модульное тестирование?
Теория 2: Как писать тесты в Python?
Практика: Напишите тест для функции, которая вычисляет среднее значение списка чисел.
Ответы:
1. Модульное тестирование — это проверка отдельных частей программы.
2. Тесты пишутся с использованием модуля unittest.
3. Пример программы:
import unittest
def average(numbers):
return sum(numbers) / len(numbers)
class TestAverage(unittest.TestCase):
def test_average(self):
self.assertEqual(average([1, 2, 3]), 2)
if __name__ == "__main__":
unittest.main()
Билет 94
Теория 1: Что такое интеграционное тестирование?
Теория 2: В чем разница между модульным и интеграционным тестированием?
Практика: Напишите интеграционный тест для проверки взаимодействия двух функций.
Ответы:
1. Интеграционное тестирование — это проверка взаимодействия между компонентами программы.
2. Модульное тестирование проверяет отдельные части, а интеграционное — их взаимодействие.
3. Пример программы:
import unittest
def add(a, b):
return a + b
def multiply(a, b):
return a * b
class TestIntegration(unittest.TestCase):
def test_integration(self):
result = multiply(add(2, 3), 4)
self.assertEqual(result, 20)
if __name__ == "__main__":
unittest.main()
Билет 95
Теория 1: Что такое REST API?
Теория 2: Какие HTTP-методы используются в REST API?
Практика: Создайте эндпоинт Flask для добавления данных через POST-запрос.
Ответы:
1. REST API — это архитектурный стиль для взаимодействия между клиентом и сервером.
2. Основные методы: GET, POST, PUT, DELETE.
3. Пример программы:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/data', methods=['POST'])
def add_data():
data = request.json
return jsonify({"message": "Data received", "data": data}), 201
if __name__ == "__main__":
app.run()
Билет 96
Теория 1: Что такое WebSocket?
Теория 2: В чем его преимущество перед HTTP?
Практика: Напишите сервер WebSocket, который отправляет клиенту текущее время каждую секунду.
Ответы:
1. WebSocket — это протокол для двусторонней связи между клиентом и сервером.
2. Преимущество: постоянное соединение и меньшие накладные расходы.
3. Пример программы:
import asyncio
import websockets
from datetime import datetime
async def time_server(websocket, path):
while True:
current_time = datetime.now().strftime("%H:%M:%S")
await websocket.send(current_time)
await asyncio.sleep(1)
start_server = websockets.serve(time_server, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
Билет 97
Теория 1: Что такое Celery?
Теория 2: Для чего он используется?
Практика: Настройте Celery для выполнения фоновой задачи send_email.
Ответы:
1. Celery — это инструмент для выполнения фоновых задач.
2. Celery используется для обработки длительных операций без блокировки основного потока.
3. Пример программы:
tasks.py:
from celery import Celery
app = Celery("tasks", broker="redis://localhost:6379/0")
@app.task
def send_email(to, subject, body):
print(f"Sending email to {to}: {subject} - {body}")
Билет 98
Теория 1: Что такое RabbitMQ?
Теория 2: Как он работает с Celery?
Практика: Настройте RabbitMQ как брокер сообщений для Celery.
Ответы:
1. RabbitMQ — это брокер сообщений, который управляет очередями.
2. RabbitMQ используется Celery для передачи задач между производителями и потребителями.
3. Пример настройки:
Измените tasks.py:
from celery import Celery
app = Celery("tasks", broker="pyamqp://guest@localhost//")
Запуск RabbitMQ: rabbitmq-server
Билет 99
Теория 1: Что такое Redis?
Теория 2: Как его использовать в Python?
Практика: Напишите программу, которая сохраняет счетчик в Redis и увеличивает его значение.
Ответы:
1. Redis — это in-memory база данных, используемая для хранения данных в виде ключей и значений.
2. Redis используется через библиотеку redis.
3. Пример программы:
import redis
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('counter', 0)
r.incr('counter')
print(r.get('counter'))
Билет 100
Теория 1: Что такое Kubernetes?
Теория 2: Как создать Deployment в Kubernetes?
Практика: Напишите манифест Kubernetes для запуска приложения с 3 репликами.
Ответы:
1. Kubernetes — это платформа для управления контейнерами.
2. Deployment создается с помощью манифеста YAML.
3. Пример манифеста:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80
Тест 1
Что такое Python?
a) Язык программирования высокого уровня
b) Система управления базами данных
c) Операционная система
Правильный ответ: a
________________________________________
Тест 2
Какой тип данных используется для хранения целых чисел в Python?
a) float
b) int
c) str
Правильный ответ: b
________________________________________
Тест 3
Что делает оператор == в Python?
a) Проверяет, равны ли значения двух объектов
b) Проверяет, являются ли два объекта одним и тем же объектом
c) Присваивает значение переменной
Правильный ответ: a
________________________________________
Тест 4
Какой из следующих циклов используется для перебора элементов списка?
a) for
b) while
c) if
Правильный ответ: a
________________________________________
Тест 5
Что такое функция в Python?
a) Блок кода, который выполняет определенную задачу
b) Тип данных для хранения текста
c) Метод для работы с файлами
Правильный ответ: a
________________________________________
Тест 6
Какой метод используется для добавления элемента в конец списка?
a) append()
b) insert()
c) remove()
Правильный ответ: a
________________________________________
Тест 7
Что такое словарь в Python?
a) Неупорядоченная коллекция пар "ключ-значение"
b) Упорядоченный список элементов
c) Множество уникальных элементов
Правильный ответ: a
________________________________________
Тест 8
Какой из следующих типов данных является неизменяемым?
a) Список (list)
b) Кортеж (tuple)
c) Словарь (dict)
Правильный ответ: b
________________________________________
Тест 9
Что делает оператор in в Python?
a) Проверяет, содержится ли элемент в последовательности
b) Добавляет элемент в список
c) Создает новую переменную
Правильный ответ: a
________________________________________
Тест 10
Какой модуль используется для работы с регулярными выражениями?
a) re
b) regex
c) string
Правильный ответ: a
________________________________________
Тест 11
Что такое PEP 8?
a) Стандарт оформления кода на Python
b) Библиотека для работы с файлами
c) Модуль для создания графиков
Правильный ответ: a
________________________________________
Тест 12
Какой метод используется для чтения содержимого файла в Python?
a) read()
b) write()
c) open()
Правильный ответ: a
________________________________________
Тест 13
Что такое класс в Python?
a) Шаблон для создания объектов
b) Встроенная функция
c) Тип данных для хранения чисел
Правильный ответ: a
________________________________________
Тест 14
Какой оператор используется для обработки исключений?
a) try-except
b) if-else
c) for-in
Правильный ответ: a
________________________________________
Тест 15
Что такое JSON?
a) Формат для хранения и передачи данных
b) Язык программирования
c) База данных
Правильный ответ: a
________________________________________
Тест 16
Какой метод используется для преобразования строки в число?
a) int()
b) str()
c) float()
Правильный ответ: a
________________________________________
Тест 17
Что делает функция len()?
a) Возвращает длину последовательности
b) Сортирует список
c) Конвертирует строку в нижний регистр
Правильный ответ: a
________________________________________
Тест 18
Какой метод используется для удаления элемента из списка?
a) remove()
b) append()
c) insert()
Правильный ответ: a
________________________________________
Тест 19
Что такое рекурсия?
a) Функция, которая вызывает саму себя
b) Цикл, который выполняется бесконечно
c) Метод для работы с файлами
Правильный ответ: a
________________________________________
Тест 20
Какой модуль используется для работы с датой и временем?
a) datetime
b) time
c) date
Правильный ответ: a
________________________________________
Тест 21
Что такое генератор списков?
a) Конструкция для создания списков
b) Метод для сортировки списков
c) Тип данных для хранения чисел
Правильный ответ: a
________________________________________
Тест 22
Какой оператор используется для выхода из цикла?
a) break
b) continue
c) return
Правильный ответ: a
________________________________________
Тест 23
Что такое декоратор в Python?
a) Функция, которая расширяет поведение другой функции
b) Метод для работы с файлами
c) Тип данных для хранения строк
Правильный ответ: a
________________________________________
Тест 24
Какой метод используется для сортировки списка?
a) sort()
b) sorted()
c) reverse()
Правильный ответ: a
________________________________________
Тест 25
Что такое лямбда-функция?
a) Анонимная функция
b) Встроенная функция
c) Метод для работы с файлами
Правильный ответ: a
________________________________________
Тест 26
Какой метод используется для конвертации строки в верхний регистр?
a) upper()
b) lower()
c) capitalize()
Правильный ответ: a
________________________________________
Тест 27
Что делает оператор is в Python?
a) Проверяет, являются ли два объекта одним и тем же объектом
b) Проверяет равенство значений двух объектов
c) Присваивает значение переменной
Правильный ответ: a
________________________________________
Тест 28
Какой модуль используется для отправки HTTP-запросов?
a) requests
b) http
c) urllib
Правильный ответ: a
________________________________________
Тест 29
Что такое SQLite?
a) Встроенная база данных
b) Язык программирования
c) Библиотека для работы с файлами
Правильный ответ: a
________________________________________
Тест 30
Какой метод используется для добавления элемента в множество?
a) add()
b) append()
c) insert()
Правильный ответ: a
________________________________________
Тест 31
Что делает функция range()?
a) Создает последовательность чисел
b) Преобразует строку в число
c) Сортирует список
Правильный ответ: a
________________________________________
Тест 32
Какой метод используется для удаления всех элементов из списка?
a) clear()
b) remove()
c) pop()
Правильный ответ: a
________________________________________
Тест 33
Что такое Git?
a) Система контроля версий
b) База данных
c) Язык программирования
Правильный ответ: a
________________________________________
Тест 34
Какая команда используется для клонирования репозитория с GitHub?
a) git clone
b) git pull
c) git push
Правильный ответ: a
________________________________________
Тест 35
Что такое Docker?
a) Платформа для создания контейнеров
b) Система управления базами данных
c) Язык программирования
Правильный ответ: a
________________________________________
Тест 36
Какой командой запускается контейнер в Docker?
a) docker run
b) docker start
c) docker build
Правильный ответ: a
________________________________________
Тест 37
Что такое REST API?
a) Архитектурный стиль для взаимодействия между клиентом и сервером
b) Библиотека для работы с файлами
c) Метод для работы с базами данных
Правильный ответ: a
________________________________________
Тест 38
Какой метод HTTP используется для получения данных?
a) GET
b) POST
c) DELETE
Правильный ответ: a
________________________________________
Тест 39
Что такое Flask?
a) Фреймворк для создания веб-приложений
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 40
Какой метод используется для запуска приложения Flask?
a) app.run()
b) app.start()
c) app.launch()
Правильный ответ: a
________________________________________
Тест 41
Что такое NumPy?
a) Библиотека для работы с массивами и математическими вычислениями
b) Библиотека для создания графиков
c) Фреймворк для машинного обучения
Правильный ответ: a
________________________________________
Тест 42
Какой метод используется для создания массива NumPy?
a) numpy.array()
b) numpy.create()
c) numpy.list()
Правильный ответ: a
________________________________________
Тест 43
Что такое Pandas?
a) Библиотека для анализа данных
b) Библиотека для работы с графиками
c) Фреймворк для создания веб-приложений
Правильный ответ: a
________________________________________
Тест 44
Какой метод используется для чтения CSV-файла в Pandas?
a) read_csv()
b) load_csv()
c) csv_read()
Правильный ответ: a
________________________________________
Тест 45
Что такое Matplotlib?
a) Библиотека для создания графиков
b) Библиотека для работы с базами данных
c) Фреймворк для машинного обучения
Правильный ответ: a
________________________________________
Тест 46
Какой метод используется для построения графика в Matplotlib?
a) plot()
b) draw()
c) graph()
Правильный ответ: a
________________________________________
Тест 47
Что такое TensorFlow?
a) Фреймворк для машинного обучения
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 48
Что такое Scrapy?
a) Фреймворк для веб-скрапинга
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 49
Что такое Selenium?
a) Инструмент для автоматизации браузера
b) Библиотека для работы с базами данных
c) Фреймворк для машинного обучения
Правильный ответ: a
________________________________________
Тест 50
Какой метод используется для нахождения элемента на веб-странице в Selenium?
a) find_element()
b) search_element()
c) locate_element()
Правильный ответ: a
Тест 51
Что такое Beautiful Soup?
a) Библиотека для парсинга HTML и XML
b) Инструмент для работы с базами данных
c) Фреймворк для машинного обучения
Правильный ответ: a
________________________________________
Тест 52
Какой метод используется для поиска всех элементов с определенным тегом в Beautiful Soup?
a) find_all()
b) search_all()
c) locate_all()
Правильный ответ: a
________________________________________
Тест 53
Что такое SQLAlchemy?
a) ORM для работы с базами данных
b) Библиотека для создания графиков
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 54
Какой метод используется для создания таблицы в SQLAlchemy?
a) Table()
b) CreateTable()
c) BuildTable()
Правильный ответ: a
________________________________________
Тест 55
Что такое PyTorch?
a) Фреймворк для машинного обучения
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 56
Какой метод используется для создания тензора в PyTorch?
a) torch.tensor()
b) torch.create()
c) torch.array()
Правильный ответ: a
________________________________________
Тест 57
Что такое FastAPI?
a) Фреймворк для создания REST API
b) Библиотека для работы с графиками
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 58
Какой декоратор используется для определения эндпоинта в FastAPI?
a) @app.get()
b) @app.route()
c) @app.endpoint()
Правильный ответ: a
________________________________________
Тест 59
Что такое Redis?
a) In-memory база данных
b) Фреймворк для машинного обучения
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 60
Какой тип данных в Redis используется для хранения строк?
a) String
b) List
c) Set
Правильный ответ: a
________________________________________
Тест 61
Что такое RabbitMQ?
a) Брокер сообщений
b) База данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 62
Какой протокол используется для взаимодействия с RabbitMQ?
a) AMQP
b) HTTP
c) FTP
Правильный ответ: a
________________________________________
Тест 63
Что такое Kubernetes?
a) Платформа для управления контейнерами
b) База данных
c) Фреймворк для машинного обучения
Правильный ответ: a
________________________________________
Тест 64
Какой объект в Kubernetes используется для описания приложения?
a) Pod
b) Node
c) Cluster
Правильный ответ: a
________________________________________
Тест 65
Что такое CI/CD?
a) Процесс автоматизации сборки, тестирования и развертывания
b) Методология разработки программного обеспечения
c) Библиотека для работы с базами данных
Правильный ответ: a
________________________________________
Тест 66
Какой инструмент используется для настройки CI/CD в GitHub?
a) GitHub Actions
b) Jenkins
c) Travis CI
Правильный ответ: a
________________________________________
Тест 67
Что такое Scikit-learn?
a) Библиотека для машинного обучения
b) Фреймворк для веб-разработки
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 68
Какой метод используется для обучения модели в Scikit-learn?
a) fit()
b) train()
c) learn()
Правильный ответ: a
________________________________________
Тест 69
Что такое Celery?
a) Инструмент для выполнения фоновых задач
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 70
Какой брокер сообщений чаще всего используется с Celery?
a) RabbitMQ
b) Redis
c) Kafka
Правильный ответ: a
________________________________________
Тест 71
Что такое Docker Compose?
a) Инструмент для запуска нескольких контейнеров
b) Система контроля версий
c) Библиотека для работы с базами данных
Правильный ответ: a
________________________________________
Тест 72
Какой файл используется для настройки Docker Compose?
a) docker-compose.yml
b) dockerfile
c) compose.json
Правильный ответ: a
________________________________________
Тест 73
Что такое WebSocket?
a) Протокол для двусторонней связи между клиентом и сервером
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 74
Какой метод используется для установления соединения WebSocket?
a) connect()
b) open()
c) start()
Правильный ответ: a
________________________________________
Тест 75
Что такое Click?
a) Библиотека для создания CLI-приложений
b) Фреймворк для веб-разработки
c) Инструмент для тестирования кода
Правильный ответ: a
________________________________________
Тест 76
Какой декоратор используется для определения команды в Click?
a) @click.command()
b) @click.run()
c) @click.execute()
Правильный ответ: a
________________________________________
Тест 77
Что такое многопоточность в Python?
a) Возможность выполнять несколько задач одновременно
b) Методология разработки программного обеспечения
c) Библиотека для работы с базами данных
Правильный ответ: a
________________________________________
Тест 78
Какой модуль используется для реализации многопоточности в Python?
a) threading
b) multiprocessing
c) asyncio
Правильный ответ: a
________________________________________
Тест 79
Что такое асинхронное программирование?
a) Метод выполнения задач без блокировки основного потока
b) Методология разработки программного обеспечения
c) Библиотека для работы с базами данных
Правильный ответ: a
________________________________________
Тест 80
Какой модуль используется для реализации асинхронного программирования в Python?
a) asyncio
b) threading
c) multiprocessing
Правильный ответ: a
________________________________________
Тест 81
Что такое контекстный менеджер?
a) Объект, который управляет ресурсами в блоке with
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 82
Какой метод используется для создания контекстного менеджера?
a) __enter__ и __exit__
b) __init__ и __del__
c) __start__ и __stop__
Правильный ответ: a
________________________________________
Тест 83
Что такое миксины в Python?
a) Классы, которые добавляют функциональность другим классам
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 84
Что такое абстрактные классы?
a) Классы, которые не могут быть созданы напрямую
b) Классы, которые содержат только методы
c) Классы, которые используются для хранения данных
Правильный ответ: a
________________________________________
Тест 85
Какой модуль используется для создания абстрактных классов?
a) abc
b) abstract
c) base
Правильный ответ: a
________________________________________
Тест 86
Что такое интерфейсы в Python?
a) Классы, которые определяют методы, но не реализуют их
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 87
Что такое метаклассы?
a) Классы, которые создают другие классы
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 88
Что такое дескрипторы?
a) Объекты, которые управляют доступом к атрибутам класса
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 89
Что такое замыкания?
a) Функции, которые сохраняют доступ к переменным из внешней области видимости
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 90
Что такое генераторы?
a) Функции, которые возвращают значения по одному с помощью yield
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 91
Что такое итераторы?
a) Объекты, которые позволяют перебирать элементы коллекции
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 92
Что такое магические методы?
a) Методы, которые начинаются и заканчиваются двойными подчеркиваниями
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 93
Что такое декораторы?
a) Функции, которые расширяют поведение других функций
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 94
Что такое логирование?
a) Процесс записи информации о работе программы
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 95
Какой модуль используется для логирования в Python?
a) logging
b) log
c) logger
Правильный ответ: a
________________________________________
Тест 96
Что такое профилирование кода?
a) Анализ производительности программы
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 97
Какой модуль используется для профилирования кода в Python?
a) cProfile
b) profile
c) profiler
Правильный ответ: a
________________________________________
Тест 98
Что такое модульное тестирование?
a) Тестирование отдельных частей программы
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
________________________________________
Тест 99
Какой модуль используется для модульного тестирования в Python?
a) unittest
b) pytest
c) test
Правильный ответ: a
________________________________________
Тест 100
Что такое интеграционное тестирование?
a) Тестирование взаимодействия между компонентами программы
b) Библиотека для работы с базами данных
c) Фреймворк для веб-разработки
Правильный ответ: a
Вопрос 1
Какой оператор используется для вывода данных в консоль?
a) print()
b) output()
c) display()
Правильный ответ: a
Вопрос 2
Что делает оператор input()
?
a) Получает данные от пользователя
b) Выводит данные на экран
c) Считывает данные из файла
Правильный ответ: a
Вопрос 3
Какой тип данных используется для хранения текста в Python?
a) str
b) int
c) float
Правильный ответ: a
Вопрос 4
Что такое условный оператор if
?
a) Конструкция для выполнения кода при выполнении условия
b) Цикл для перебора элементов
c) Функция для работы с файлами
Правильный ответ: a
Вопрос 5
Какой цикл используется для повторения блока кода определенное количество раз?
a) for
b) while
c) repeat
Правильный ответ: a
Вопрос 6
Что делает оператор break
?
a) Прерывает выполнение цикла
b) Продолжает выполнение цикла
c) Завершает программу
Правильный ответ: a
Вопрос 7
Что такое функция в Python?
a) Блок кода, который выполняет определенную задачу
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 8
Как объявляется функция в Python?
a) def function_name():
b) function function_name():
c) create function_name():
Правильный ответ: a
Вопрос 9
Что такое список в Python?
a) Упорядоченная коллекция элементов
b) Неупорядоченная коллекция пар "ключ-значение"
c) Множество уникальных элементов
Правильный ответ: a
Вопрос 10
Как добавить элемент в конец списка?
a) append()
b) insert()
c) add()
Правильный ответ: a
Вопрос 11
Что такое словарь в Python?
a) Неупорядоченная коллекция пар "ключ-значение"
b) Упорядоченный список элементов
c) Множество уникальных элементов
Правильный ответ: a
Вопрос 12
Как получить значение из словаря по ключу?
a) dictionary[key]
b) dictionary.get(key)
c) Оба варианта верны
Правильный ответ: c
Вопрос 13
Что такое множество в Python?
a) Коллекция уникальных элементов
b) Упорядоченный список элементов
c) Неупорядоченная коллекция пар "ключ-значение"
Правильный ответ: a
Вопрос 14
Как создать пустое множество?
a) set()
b) {}
c) []
Правильный ответ: a
Вопрос 15
Что такое строка в Python?
a) Последовательность символов
b) Коллекция чисел
c) Список объектов
Правильный ответ: a
Вопрос 16
Как преобразовать строку в нижний регистр?
a) lower()
b) upper()
c) capitalize()
Правильный ответ: a
Вопрос 17
Что такое исключение в Python?
a) Ошибка, которая возникает во время выполнения программы
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 18
Как обработать исключение в Python?
a) try-except
b) if-else
c) for-in
Правильный ответ: a
Вопрос 19
Что такое PEP 8?
a) Стандарт оформления кода на Python
b) Библиотека для работы с файлами
c) Модуль для создания графиков
Правильный ответ: a
Вопрос 20
Как открыть файл в Python?
a) open()
b) file()
c) read()
Правильный ответ: a
Вопрос 21
Какой метод используется для записи данных в файл?
a) write()
b) read()
c) append()
Правильный ответ: a
Вопрос 22
Что такое класс в Python?
a) Шаблон для создания объектов
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 23
Как объявляется класс в Python?
a) class ClassName:
b) def ClassName:
c) create ClassName:
Правильный ответ: a
Вопрос 24
Что такое объект в Python?
a) Экземпляр класса
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 25
Что такое наследование в ООП?
a) Возможность создания нового класса на основе существующего
b) Создание объекта класса
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 26
Что такое полиморфизм в ООП?
a) Возможность использовать один интерфейс для разных типов объектов
b) Создание объекта класса
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 27
Что такое инкапсуляция в ООП?
a) Скрытие внутренней реализации класса
b) Создание объекта класса
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 28
Что такое модуль в Python?
a) Файл, содержащий код Python
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 29
Как импортировать модуль в Python?
a) import module_name
b) include module_name
c) require module_name
Правильный ответ: a
Вопрос 30
Что такое JSON?
a) Формат для хранения и передачи данных
b) Язык программирования
c) База данных
Правильный ответ: a
Вопрос 31
Как преобразовать объект Python в JSON?
a) json.dumps()
b) json.loads()
c) json.parse()
Правильный ответ: a
Вопрос 32
Что такое HTTP-запрос?
a) Запрос к серверу через протокол HTTP
b) Тип данных для хранения чисел
c) Метод для работы с файлами
Правильный ответ: a
Вопрос 33
Как отправить GET-запрос в Python?
a) requests.get()
b) http.get()
c) urllib.get()
Правильный ответ: a
Вопрос 34
Что такое база данных?
a) Система для хранения и управления данными
b) Язык программирования
c) Библиотека для работы с файлами
Правильный ответ: a
Вопрос 35
Какой метод используется для выполнения SQL-запроса в SQLite?
a) execute()
b) run()
c) query()
Правильный ответ: a
Вопрос 36
Что такое Git?
a) Система контроля версий
b) База данных
c) Язык программирования
Правильный ответ: a
Вопрос 37
Какая команда используется для создания коммита в Git?
a) git commit
b) git push
c) git pull
Правильный ответ: a
Вопрос 38
Что такое Docker?
a) Платформа для создания контейнеров
b) Система управления базами данных
c) Язык программирования
Правильный ответ: a
Вопрос 39
Какой командой запускается контейнер в Docker?
a) docker run
b) docker start
c) docker build
Правильный ответ: a
Вопрос 40
Что такое REST API?
a) Архитектурный стиль для взаимодействия между клиентом и сервером
b) Библиотека для работы с файлами
c) Метод для работы с базами данных
Правильный ответ: a
Вопрос 41
Какой метод HTTP используется для отправки данных?
a) POST
b) GET
c) DELETE
Правильный ответ: a
Вопрос 42
Что такое Flask?
a) Фреймворк для создания веб-приложений
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
Вопрос 43
Какой метод используется для запуска приложения Flask?
a) app.run()
b) app.start()
c) app.launch()
Правильный ответ: a
Вопрос 44
Что такое NumPy?
a) Библиотека для работы с массивами и математическими вычислениями
b) Библиотека для создания графиков
c) Фреймворк для машинного обучения
Правильный ответ: a
Вопрос 45
Какой метод используется для создания массива NumPy?
a) numpy.array()
b) numpy.create()
c) numpy.list()
Правильный ответ: a
Вопрос 46
Что такое Pandas?
a) Библиотека для анализа данных
b) Библиотека для работы с графиками
c) Фреймворк для машинного обучения
Правильный ответ: a
Вопрос 47
Какой метод используется для чтения CSV-файла в Pandas?
a) read_csv()
b) load_csv()
c) csv_read()
Правильный ответ: a
Вопрос 48
Что такое Matplotlib?
a) Библиотека для создания графиков
b) Библиотека для работы с базами данных
c) Фреймворк для машинного обучения
Правильный ответ: a
Вопрос 49
Какой метод используется для построения графика в Matplotlib?
a) plot()
b) draw()
c) graph()
Правильный ответ: a
Вопрос 50
Что такое TensorFlow?
a) Фреймворк для машинного обучения
b) Библиотека для работы с базами данных
c) Инструмент для тестирования кода
Правильный ответ: a
Вы работаете в компании, которая разрабатывает приложение для управления задачами (Task Manager). Ваша задача — реализовать базовую функциональность приложения, включая создание задач, их хранение, обновление и удаление. Также необходимо добавить возможность фильтрации задач по статусу и приоритету.
Задачи кейса:
-
Создание класса для управления задачами
Реализуйте классTaskManager
, который будет управлять задачами. Каждая задача должна содержать следующие поля:id
(уникальный идентификатор),title
(название задачи),description
(описание задачи),status
(статус: "To Do", "In Progress", "Done"),priority
(приоритет: "Low", "Medium", "High").
-
Методы для работы с задачами
Реализуйте следующие методы:add_task(title, description, priority)
— добавляет новую задачу.update_task(task_id, title=None, description=None, status=None, priority=None)
— обновляет задачу по еёid
.delete_task(task_id)
— удаляет задачу по еёid
.get_tasks_by_status(status)
— возвращает список задач с указанным статусом.get_tasks_by_priority(priority)
— возвращает список задач с указанным приоритетом.
-
Хранение данных
Используйте словарь для хранения задач. Ключом будетid
, а значением — объект задачи. -
Дополнительная функциональность
Добавьте возможность вывода всех задач в форматированном виде (например, в виде таблицы). -
Тестирование
Напишите тесты для проверки функциональности вашего класса.
Решение:
# Класс Task для представления задачи
class Task:
def __init__(self, task_id, title, description, status, priority):
self.task_id = task_id
self.title = title
self.description = description
self.status = status
self.priority = priority
def __str__(self):
return f"ID: {self.task_id}, Title: {self.title}, Status: {self.status}, Priority: {self.priority}"
# Класс TaskManager для управления задачами
class TaskManager:
def __init__(self):
self.tasks = {}
self.next_id = 1
def add_task(self, title, description, priority):
task = Task(self.next_id, title, description, "To Do", priority)
self.tasks[self.next_id] = task
self.next_id += 1
print(f"Task '{title}' added successfully.")
def update_task(self, task_id, title=None, description=None, status=None, priority=None):
if task_id not in self.tasks:
print(f"Task with ID {task_id} not found.")
return
task = self.tasks[task_id]
if title:
task.title = title
if description:
task.description = description
if status:
task.status = status
if priority:
task.priority = priority
print(f"Task with ID {task_id} updated successfully.")
def delete_task(self, task_id):
if task_id not in self.tasks:
print(f"Task with ID {task_id} not found.")
return
del self.tasks[task_id]
print(f"Task with ID {task_id} deleted successfully.")
def get_tasks_by_status(self, status):
result = [task for task in self.tasks.values() if task.status == status]
if not result:
print(f"No tasks found with status '{status}'.")
return result
def get_tasks_by_priority(self, priority):
result = [task for task in self.tasks.values() if task.priority == priority]
if not result:
print(f"No tasks found with priority '{priority}'.")
return result
def list_all_tasks(self):
if not self.tasks:
print("No tasks available.")
return
print("All Tasks:")
for task in self.tasks.values():
print(task)
# Тестирование
if __name__ == "__main__":
# Создаем экземпляр TaskManager
manager = TaskManager()
# Добавляем задачи
manager.add_task("Task 1", "Description for Task 1", "High")
manager.add_task("Task 2", "Description for Task 2", "Medium")
manager.add_task("Task 3", "Description for Task 3", "Low")
# Выводим все задачи
manager.list_all_tasks()
# Обновляем задачу
manager.update_task(1, status="In Progress")
manager.list_all_tasks()
# Фильтруем задачи по статусу
print("\nTasks with status 'To Do':")
for task in manager.get_tasks_by_status("To Do"):
print(task)
# Фильтруем задачи по приоритету
print("\nTasks with priority 'Medium':")
for task in manager.get_tasks_by_priority("Medium"):
print(task)
# Удаляем задачу
manager.delete_task(2)
manager.list_all_tasks()
Объяснение кода:
-
Класс
Task
:- Представляет одну задачу с атрибутами
task_id
,title
,description
,status
иpriority
. - Метод
__str__
используется для удобного вывода информации о задаче.
- Представляет одну задачу с атрибутами
-
Класс
TaskManager
:- Управляет задачами через словарь
tasks
, где ключ — этоid
, а значение — объект классаTask
. - Методы:
add_task
: Добавляет новую задачу.update_task
: Обновляет данные задачи по еёid
.delete_task
: Удаляет задачу по еёid
.get_tasks_by_status
: Возвращает задачи с указанным статусом.get_tasks_by_priority
: Возвращает задачи с указанным приоритетом.list_all_tasks
: Выводит все задачи в читаемом формате.
- Управляет задачами через словарь
-
Тестирование:
- В блоке
if __name__ == "__main__":
выполняется тестирование всех методов:- Добавление задач.
- Обновление задачи.
- Фильтрация задач по статусу и приоритету.
- Удаление задачи.
- В блоке
Пример вывода программы:
Task 'Task 1' added successfully.
Task 'Task 2' added successfully.
Task 'Task 3' added successfully.
All Tasks:
ID: 1, Title: Task 1, Status: To Do, Priority: High
ID: 2, Title: Task 2, Status: To Do, Priority: Medium
ID: 3, Title: Task 3, Status: To Do, Priority: Low
Task with ID 1 updated successfully.
All Tasks:
ID: 1, Title: Task 1, Status: In Progress, Priority: High
ID: 2, Title: Task 2, Status: To Do, Priority: Medium
ID: 3, Title: Task 3, Status: To Do, Priority: Low
Tasks with status 'To Do':
ID: 2, Title: Task 2, Status: To Do, Priority: Medium
ID: 3, Title: Task 3, Status: To Do, Priority: Low
Tasks with priority 'Medium':
ID: 2, Title: Task 2, Status: To Do, Priority: Medium
Task with ID 2 deleted successfully.
All Tasks:
ID: 1, Title: Task 1, Status: In Progress, Priority: High
ID: 3, Title: Task 3, Status: To Do, Priority: Low
Дополнительные возможности для расширения:
-
Интеграция с базой данных:
Замените словарь на базу данных SQLite или PostgreSQL для хранения задач. -
REST API:
Создайте REST API с помощью Flask или FastAPI для управления задачами через HTTP-запросы. -
Веб-интерфейс:
Разработайте веб-интерфейс с использованием HTML, CSS и JavaScript для взаимодействия с Task Manager. -
Асинхронность:
Добавьте поддержку асинхронных операций для обработки большого количества задач. -
Логирование:
Настройте логирование для записи всех действий пользователя в файл.
30 ролевых игр для изучения Python и задач разработчика
1. "Junior Developer: Первая задача"
Описание:
Вы — начинающий разработчик в компании, которая создает приложение для управления задачами. Ваш первый проект — реализовать функцию добавления задачи в систему. Начальник дал вам базовый код, но он содержит ошибки. Вам нужно исправить их и протестировать функциональность.
Задание:
Исправьте ошибки в предоставленном коде и добавьте тесты с использованием unittest
.
2. "Code Reviewer: Проверка кода"
Описание:
Вы — старший разработчик, который проверяет код младшего коллеги. Код работает, но его можно улучшить. Ваша задача — провести code review и предложить улучшения.
Задание:
Проанализируйте предоставленный код и напишите комментарии по улучшению читаемости, производительности и структуры.
3. "Bug Hunter: Поиск ошибок"
Описание:
Пользователи сообщают о странном поведении приложения. Ваша задача — найти и исправить баг.
Задание:
Найдите ошибку в коде, который отвечает за обновление задач. Исправьте её и напишите тесты для проверки.
4. "Team Leader: Разработка архитектуры"
Описание:
Вы — лидер команды, которая разрабатывает новое приложение. Ваша задача — спроектировать классы и методы для системы управления задачами.
Задание:
Создайте диаграмму классов и опишите их взаимодействие.
5. "Database Engineer: Работа с базой данных"
Описание:
Ваша задача — интегрировать SQLite в приложение для хранения задач. Вам нужно создать таблицы и написать запросы для CRUD-операций.
Задание:
Реализуйте базу данных с помощью SQLite и подключите её к приложению.
6. "API Developer: Создание REST API"
Описание:
Компания хочет добавить API для мобильного приложения. Ваша задача — создать эндпоинты для работы с задачами.
Задание:
Разработайте REST API с помощью Flask или FastAPI.
7. "Frontend Developer: Создание интерфейса"
Описание:
Вы — фронтенд-разработчик, который создает интерфейс для Task Manager. Ваша задача — разработать простую HTML-страницу для добавления и просмотра задач.
Задание:
Создайте HTML-форму и подключите её к API.
8. "DevOps Engineer: Настройка Docker"
Описание:
Ваша задача — настроить Docker для развертывания приложения. Вам нужно создать Dockerfile
и docker-compose.yml
.
Задание:
Напишите конфигурацию Docker для запуска приложения.
9. "Data Scientist: Анализ задач"
Описание:
Компания хочет анализировать данные о задачах. Ваша задача — написать скрипт для анализа частоты статусов и приоритетов.
Задание:
Используйте Pandas для анализа данных и Matplotlib для визуализации.
10. "Security Specialist: Защита данных"
Описание:
Ваша задача — обеспечить безопасность данных пользователей. Вам нужно добавить шифрование паролей и защитить API.
Задание:
Добавьте шифрование паролей с помощью hashlib
и настройте аутентификацию в API.
11. "QA Engineer: Тестирование приложения"
Описание:
Вы — тестировщик, который проверяет работу приложения. Ваша задача — написать автоматизированные тесты для всех функций.
Задание:
Напишите тесты с использованием pytest
или unittest
.
12. "Scrum Master: Планирование спринта"
Описание:
Вы — Scrum-мастер, который планирует следующий спринт. Ваша задача — распределить задачи между разработчиками.
Задание:
Создайте список задач и назначьте их участникам команды.
13. "Product Owner: Определение требований"
Описание:
Вы — владелец продукта, который определяет требования для нового функционала. Ваша задача — составить список требований для системы уведомлений.
Задание:
Опишите требования и предложите возможные решения.
14. "Backend Developer: Реализация логики"
Описание:
Ваша задача — реализовать бизнес-логику для системы уведомлений. Уведомления должны отправляться при изменении статуса задачи.
Задание:
Напишите код для отправки уведомлений через Celery.
15. "UX Designer: Улучшение интерфейса"
Описание:
Пользователи жалуются на сложный интерфейс. Ваша задача — улучшить UX.
Задание:
Создайте новый дизайн интерфейса и опишите изменения.
16. "Machine Learning Engineer: Предсказание дедлайнов"
Описание:
Компания хочет внедрить систему предсказания дедлайнов для задач. Ваша задача — обучить модель на основе исторических данных.
Задание:
Обучите модель с использованием Scikit-learn или TensorFlow.
17. "Web Scraper: Сбор данных"
Описание:
Ваша задача — собрать данные о задачах с конкурентных платформ для анализа.
Задание:
Используйте Scrapy или Beautiful Soup для сбора данных.
18. "Automation Engineer: Автоматизация тестов"
Описание:
Вы — инженер по автоматизации, который пишет скрипты для тестирования интерфейса.
Задание:
Используйте Selenium для автоматизации тестов UI.
19. "Cloud Engineer: Развертывание в облаке"
Описание:
Ваша задача — развернуть приложение в AWS или другом облачном сервисе.
Задание:
Настройте облачное окружение и разверните приложение.
20. "Full Stack Developer: Полная разработка"
Описание:
Вы — универсальный разработчик, который создает приложение с нуля. Ваша задача — реализовать все компоненты: backend, frontend и базу данных.
Задание:
Разработайте полное приложение Task Manager.
21. "Support Specialist: Решение проблем"
Описание:
Пользователь сообщает о проблеме с удалением задач. Ваша задача — воспроизвести и решить проблему.
Задание:
Найдите и исправьте ошибку в коде.
22. "Performance Engineer: Оптимизация"
Описание:
Приложение работает медленно. Ваша задача — проанализировать производительность и оптимизировать код.
Задание:
Используйте cProfile
для анализа и оптимизации.
23. "Documentation Writer: Создание документации"
Описание:
Ваша задача — написать документацию для API и пользовательского интерфейса.
Задание:
Создайте файлы документации в формате Markdown или Sphinx.
24. "Microservices Architect: Разделение на микросервисы"
Описание:
Компания хочет перейти на микросервисную архитектуру. Ваша задача — разделить приложение на микросервисы.
Задание:
Спроектируйте архитектуру микросервисов.
25. "CI/CD Engineer: Настройка CI/CD"
Описание:
Ваша задача — настроить автоматическую сборку и деплой приложения.
Задание:
Напишите конфигурацию GitHub Actions для CI/CD.
26. "Mobile Developer: Создание мобильного приложения"
Описание:
Компания хочет мобильное приложение для Task Manager. Ваша задача — разработать простое приложение.
Задание:
Используйте Flutter или React Native для создания приложения.
27. "Kubernetes Engineer: Оркестрация контейнеров"
Описание:
Ваша задача — настроить Kubernetes для управления контейнерами приложения.
Задание:
Напишите манифесты Kubernetes для развертывания.
28. "Data Engineer: Интеграция с Big Data"
Описание:
Компания хочет интегрировать Task Manager с системой Big Data для анализа больших объемов задач.
Задание:
Настройте интеграцию с Apache Kafka или Spark.
29. "Game Developer: Геймификация"
Описание:
Компания хочет добавить геймификацию в Task Manager (например, награды за выполненные задачи). Ваша задача — реализовать эту функцию.
Задание:
Добавьте систему очков и наград в приложение.
30. "AI Assistant Developer: Интеграция ИИ"
Описание:
Компания хочет добавить ИИ-ассистента, который поможет пользователям создавать задачи с помощью голосовых команд.
Задание:
Используйте библиотеку SpeechRecognition для реализации голосового ввода.
Нет элементов для просмотра