Python собеседования
1.87K subscribers
340 photos
453 links
Подготовка к собеседованиям на позицию Python-разработчик

Еще больше на сайте https://frontview-it.ru

Backend - @frontview_backend
Python работа - @frontview_python_vacancies
Все IT вакансии - @frontview_all_vacancies
Download Telegram
🔥 Что такое модуль в Python?

Модуль в Python — это файл с расширением .py, который содержит набор функций, классов и переменных, объединённых для решения определённых задач. Модули помогают структурировать код, делая его более организованным и переиспользуемым.

Преимущества использования модулей:
1. Повторное использование кода: Один модуль можно использовать в разных проектах.
2. Упрощение разработки: Разделение программы на отдельные части облегчает её понимание и поддержку.
3. Организация пространства имён: Избегание конфликтов имён благодаря изолированным пространствам.

Как использовать модуль:
Чтобы подключить модуль, нужно использовать ключевое слово import. Например:
import math

print(math.sqrt(16)) # Выведет: 4.0


Можно импортировать конкретные функции:
from math import sqrt

print(sqrt(25)) # Выведет: 5.0


Или дать модулю псевдоним для удобства:
import math as m

print(m.pi) # Выведет: 3.141592653589793


Создание собственного модуля:
# my_module.py
def greet(name):
return f"Привет, {name}!"


Импорт и использование его в другом файле:
import my_module

print(my_module.greet("Александр")) # Выведет: Привет, Александр!


Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5
🔥Как обрабатывать исключения с помощью try-except?

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

Синтаксис try-except
Вот базовый пример того, как выглядят блоки try-except в Python:
try:
# код, который может вызвать исключение
x = 10 / 0
except ZeroDivisionError:
# код, который выполняется в случае исключения
print("Ошибка: Деление на ноль!")


Как это работает:
1. try: В этом блоке размещается код, который потенциально может вызвать ошибку.

2. except: В этом блоке обрабатывается конкретное исключение. В данном примере мы ловим ошибку деления на ноль ZeroDivisionError.

3. Если в блоке try возникает ошибка, выполнение программы переходит в блок except.

Обработка нескольких исключений
Можно обрабатывать несколько типов исключений, используя несколько блоков except:
try:
number = int(input("Введите число: "))
result = 10 / number
except ValueError:
print("Ошибка: необходимо ввести число!")
except ZeroDivisionError:
print("Ошибка: деление на ноль невозможно!")


Блоки finally и else
- finally: Код в блоке finally выполнится в любом случае, независимо от того, произошло исключение или нет.
try:
f = open("file.txt", "r")
finally:
f.close()


- else: Блок else выполняется, если в блоке try не возникло исключений.
try:
result = 10 / 5
except ZeroDivisionError:
print("Ошибка: Деление на ноль!")
else:
print(f"Результат: {result}")


Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3👀1
🔥Декораторы в Python: что это и как работают?

Декораторы — инструмент в Python, позволяющий изменять поведение функций или методов без изменения их исходного кода. Представьте их как "оболочку", которая добавляет дополнительный функционал функции.

Как это работает?
Декоратор — это функция, которая принимает другую функцию в качестве аргумента и возвращает новую функцию с расширенным поведением.

Простой пример:
def my_decorator(func):
def wrapper():
print("Что-то происходит до вызова функции.")
func()
print("Что-то происходит после вызова функции.")
return wrapper

@my_decorator
def greet():
print("Привет, мир!")

greet()

Вывод:
Что-то происходит до вызова функции.
Привет, мир!
Что-то происходит после вызова функции.

Плюсы использования декораторов:
- Повторное использование кода: Добавляйте одинаковый функционал к нескольким функциям.
- Читаемость: Ясно видно, что функция обёрнута дополнительным поведением.
- Разделение логики: Отделяете основной функционал от вспомогательных задач (логирование, проверка прав доступа и т.д.).

Когда использовать декораторы?
- Логирование вызовов функций.
- Проверка прав доступа.
- Кеширование результатов.
- Измерение времени выполнения функций.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
🔥 Что такое итераторы в Python?

Итераторы — это объекты, которые позволяют перебрать элементы коллекции (список, кортеж, словарь и т.д.) по одному за раз. Они реализуют два основных метода:
- __iter__(): Возвращает сам себя итератор.
- __next__(): Возвращает следующий элемент последовательности. Если элементов больше нет, вызывает ошибку StopIteration.

Как работают итераторы?
Каждый раз, когда вы используете цикл for, Python создает итератор из коллекции и использует его для доступа к элементам по одному.

Пример создания собственного итератора:
class MyIterator:
def __init__(self, limit):
self.limit = limit
self.current = 0

def __iter__(self):
return self

def __next__(self):
if self.current < self.limit:
self.current += 1
return self.current
else:
raise StopIteration

Использование
for number in MyIterator(5):
print(number)

Вывод:
1 2 3 4 5


Преимущества использования итераторов:
Память: Позволяют работать с большими данными, не загружая всю коллекцию в память сразу.
Гибкость: Легко создавать собственные последовательности и контролировать процесс перебора.
Читаемость: Упрощают код циклов и делают его более понятным.

Встроенные итераторы и полезные функции:
- iter(): Преобразует коллекцию в итератор.
- next(): Получает следующий элемент из итератора.
- Генераторы: Упрощенная форма итераторов с использованием yield.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🔥 Как использовать async и await в Python?

Что такое async и await?
- async: Ключевое слово для определения асинхронной функции.
- await: Используется внутри асинхронной функции для ожидания завершения корутины.

Когда использовать?
- При работе с I/O операциями: сетевые запросы, чтение/запись файлов, базы данных.
- Когда нужно обрабатывать множество задач одновременно без блокировки основного потока.

Пример:
import asyncio

async def fetch_data():
print("Начало загрузки данных...")
await asyncio.sleep(2) # Симуляция I/O операции
print("Данные загружены!")
return {"data": 123}

async def main():
result = await fetch_data()
print(result)

# Запуск
asyncio.run(main())


Преимущества:
Производительность: Улучшают время отклика приложений.
Эффективность: Лучшая работа с ресурсами при множественных I/O задачах.
Читаемость: Код остаётся понятным и структурированным.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥1
🔥 Перечисли виды баз данных и их особенности

1️⃣ Реляционные
Структурированы в таблицы с четкими связями. Отличаются высокой целостностью данных и поддержкой сложных запросов.
Примеры: MySQL, PostgreSQL

2️⃣ Документо-ориентированные (NoSQL)
Хранят данные в формате документов (JSON, BSON). Отличаются гибкой структурой и масштабируемостью.
Примеры: MongoDB, CouchDB

3️⃣ Ключ-значение (NoSQL)
Используют простую модель хранения пар ключ-значение. Идеальны для кэширования и быстрых операций.
Примеры: Redis, DynamoDB

4️⃣ Колонночные (NoSQL)
Оптимизированы для аналитических запросов и работы с большими объемами данных.
Примеры: Cassandra, HBase

5️⃣ Графовые (NoSQL)
Специализируются на хранении и обработке связанных данных и сложных сетей.
Примеры: Neo4j, OrientDB

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
🔥 Как получить текущее время в Python?

Получение текущего времени в Python является распространенной задачей, которая может понадобиться для записи журналов, отметок времени или отображения текущего момента в приложении.

Использование модуля datetime

Модуль datetime предоставляет удобные инструменты для работы с датой и временем. Пример получения текущего времени:

from datetime import datetime

# Получение текущей даты и времени
now = datetime.now()

# Извлечение только времени
current_time = now.strftime("%H:%M:%S")
print("Текущее время:", current_time)


Пояснение к коду:

1. Импорт модуля:

from datetime import datetime


2. Получение текущих

даты и времени:
now = datetime.now()


3. Форматирование времени в удобочитаемый вид

(часы:минуты:секунды):
current_time = now.strftime("%H:%M:%S")


4. Вывод результата:

print("Текущее время:", current_time)

Другие полезные форматы:

- Только дата:

current_date = now.strftime("%Y-%m-%d")
print("Сегодняшняя дата:", current_date)


- Полная дата и время:

full_datetime = now.strftime("%Y-%m-%d %H:%M:%S")
print("Полная дата и время:", full_datetime)



Использование модуля time
Также можно воспользоваться модулем time для получения
текущего времени:


import time


Получение текущего времени


current_time = time.strftime("%H:%M:%S", time.localtime())
print("Текущее время:", current_time)


Пояснение:
- time.localtime() возвращает структуру времени, соответствующую текущему местному времени.
- time.strftime форматирует время в заданном формате.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔥 Какие существуют фреймворки для Python?

1️⃣ Django
Полноценный фреймворк «из коробки». Отлично подходит для больших проектов с готовыми решениями: ORM, аутентификация, панели администрирования.
Особенности:
Быстрая разработка, масштабируемость.

2️⃣ Flask
Легковесный и гибкий микрофреймворк. Идеален для небольших приложений и микросервисов.
Особенности: Простота, расширяемость с помощью плагинов.

3️⃣ FastAPI
Современный фреймворк для создания API. Высокая производительность благодаря асинхронной архитектуре.
Особенности: Автоматическая документация, поддержка асинхронности.

4️⃣ Pyramid
Универсальный фреймворк, подходящий как для простых, так и для сложных проектов.
Особенности: Гибкость в выборе компонентов, масштабируемость.

5️⃣ Tornado
Фреймворк и асинхронная сеть. Подходит для приложений, требующих длительных соединений, например, чаты.
Особенности: Высокая производительность, поддержка WebSockets.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
🔥 Какие типы исключений существуют в Python?

В Python существует множество типов исключений, которые позволяют обрабатывать различные ошибки, возникающие во время выполнения программы. Вот некоторые из наиболее распространенных типов исключений:

1. ValueError: возникает, когда функция получает аргумент правильного типа, но неправильного значения.

int("abc") # вызывает ValueError


2. TypeError: возникает, когда операция выполняется на объекте неподходящего типа.

"2" + 2 # вызывает TypeError


3. IndexError: возникает, когда доступ к элементу списка или строки осуществляется по индексу, который выходит за пределы.

lst = [1, 2, 3]
lst[5] # вызывает IndexError


4. KeyError: возникает, когда доступ к несуществующему ключу в словаре.

d = {"a": 1}
d["b"] # вызывает KeyError


5. ZeroDivisionError: возникает, когда происходит деление на ноль.

1 / 0 # вызывает ZeroDivisionError


6. FileNotFoundError: возникает, когда программа пытается открыть файл, который не существует.

open("non_existent_file.txt") # вызывает FileNotFoundError


7. AttributeError: возникает, когда код пытается обратиться к атрибуту объекта, который не существует.

None.some_method() # вызывает AttributeError


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
🔥 Как сериализовать объекты в JSON в Python?

Для преобразования объектов в JSON можно использовать стандартный модуль json. Основные функции:

- json.dumps(obj) – преобразует Python-объект в строку JSON.
import json

data = {'name': 'Иван', 'age': 30}
json_str = json.dumps(data, ensure_ascii=False)
print(json_str) # {"name": "Иван", "age": 30}


- json.dump(obj, file) – записывает JSON-данные в файл.

with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)


Примечание: Для сериализации кастомных объектов можно определить метод __dict__ или использовать параметр default в json.dumps.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔥 Как использовать многострочные комментарии в Python?

В Python многострочные комментарии можно создавать с помощью тройных кавычек. Вот как это делается:


"""
Это многострочный комментарий.
Он может занимать несколько строк
и использоваться для разных целей.
"""
print("Привет, мир!")


Тройные кавычки могут быть как одинарными ('''), так и двойными ("""). Важно помнить, что многострочные комментарии на самом деле являются строками, которые не присвоены никакой переменной. Если нужно оставить комментарий для кода, такой подход будет очень удобен.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔥 Какие основные типы данных существуют в Python?

В Python существует несколько основных типов данных:

1. Числа (int, float, complex):
- int — целые числа, например, 5, -3, 42.
- float — числа с плавающей точкой, например, 3.14, -0.001.
- complex — комплексные числа, например, 2 + 3j.

2. Строки (str):
- Последовательности символов, например, "Привет", 'Python'.

3. Списки (list):
- Упорядоченные изменяемые коллекции, например, [1, 2, 3], ["яблоко", "банан"].

4. Кортежи (tuple):
- Упорядоченные неизменяемые коллекции, например, (1, 2, 3), ("книга", "ручка").

5. Множества (set):
- Неупорядоченные коллекции уникальных элементов, например, {1, 2, 3}.

6. Словари (dict):
- Неупорядоченные коллекции пар "ключ-значение", например, {"имя": "Алекс", "возраст": 25}.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🔥 Что такое условные конструкции и зачем они нужны?

Условные конструкции в Python — это инструменты, которые позволяют выполнять разные действия в зависимости от выполнения определенных условий. Они позволяют программе принимать решения, изменяя поток выполнения кода. Основные конструкции включают:

1. if: выполняет блок кода, если условие истинно.

if условие:
# действия, если условие истинно


2. elif: позволяет проверять дополнительные условия, если предыдущее условие не истинно.

if условие1:
# действия для условия1
elif условие2:
# действия для условия2


3. else: выполняется, если все предыдущие условия не выполнены.

if условие:
# действия, если условие истинно
else:
# действия, если условие ложно


Условные конструкции нужны для реализации логики программы, которая зависит от пользовательского ввода или других условий. Это позволяет создавать интерактивные приложения и обрабатывать различные сценарии, например: проверка значений, управление потоками выполнения и реализация бизнес-логики.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1
🔥 Что такое параметры и аргументы функции?

Параметры и аргументы функции в Python — это важные концепции, которые помогают передавать данные в функции.

1. Параметры — это переменные, указанные в определении функции, которые принимают значения, когда функция вызывается. Они служат местами для хранения данных, которые будут использоваться внутри функции.

def greet(name): # 'name' — это параметр
print(f"Привет, {name}!")


2. Аргументы — это фактические значения, которые передаются в функцию при её вызове. Аргументы могут быть literals, переменные или выражения.

greet("Алекс") # "Алекс" — это аргумент


Таким образом, когда вызывается функция, аргументы подставляются в соответствующие параметры. Это позволяет делать функции гибкими и повторно используемыми, поскольку они могут обрабатывать разные данные при каждом вызове.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
🔥 Как эффективно читать большие файлы в Python?

В Python существуют методы для эффективного чтения больших файлов без перегрузки системы.

Чтение файла построчно

Один из самых простых и эффективных способов читать большие файлы — обрабатывать их построчно. Это позволяет загружать в память только одну строку за раз.
# Открытие файла для чтения
with open('large_file.txt', 'r', encoding='utf-8') as file:
for line in file:
# Обработка каждой строки
process(line)

Преимущества:
- Минимальное использование памяти.
- Простота реализации.

Использование генераторов
Генераторы позволяют создавать итераторы с ленивыми вычислениями, что особенно полезно при обработке больших объемов данных.
def read_large_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
for line in file:
yield line

# Использование генератора
for line in read_large_file('large_file.txt'):
process(line)


Преимущества:
- Гибкость в обработке данных.
- Возможность прекращения чтения при необходимости.

Буферизированное чтение
Буферизация позволяет читать файл частями определенного размера, что снижает количество операций ввода-вывода и повышает производительность.
def buffered_read(file_path, buffer_size=1024):
with open(file_path, 'r', encoding='utf-8') as file:
while True:
data = file.read(buffer_size)
if not data:
break
process(data)
# Вызов функции с буфером 4KB
buffered_read('large_file.txt', buffer_size=4096)


Преимущества:
- Уменьшение числа операций чтения.
- Повышение скорости обработки.

Использование модуля mmap
Модуль mmap позволяет отображать файл в память, что дает быстрый доступ к его содержимому без необходимости загружать весь файл.
import mmap
def mmap_read(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
with mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) as mm:
for line in iter(mm.readline, b""):
process(line.decode('utf-8'))

# Чтение с использованием mmap
mmap_read('large_file.txt')


Преимущества:
- Высокая скорость доступа к данным.
- Эффективное использование памяти.

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔥 Как открыть файл для чтения в Python?

Чтобы открыть файл для чтения в Python, используется встроенная функция open(). Вот основные шаги:

1. Нужно использовать функцию open(), указав имя файла и режим открытия.
2. Режим чтения обозначается символом 'r'.

Пример кода для открытия файла и чтения его содержимого:


# Открываем файл для чтения
with open('filename.txt', 'r') as file:
content = file.read() # Читаем все содержимое файла

print(content) # Выводим содержимое файла


Используя конструкцию with, файл автоматически закроется после завершения блока кода, что является хорошей практикой. Если файл не существует или не может быть открыт, будет выдано исключение, которое можно обработать с помощью try-except.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
🔥 Как определить класс в Python?

В Python класс можно определить с помощью ключевого слова class. Вот пример простого класса:


class Dog:
# Конструктор класса
def __init__(self, name, age):
self.name = name # Имя собаки
self.age = age # Возраст собаки

# Метод для представления информации о собаке
def bark(self):
return f"{self.name} says Woof!"

# Метод для получения возраста собаки в человекских годах
def human_years(self):
return self.age * 7 # Примерное преобразование возраста


В этом примере определён класс Dog. Он имеет атрибуты name и age, а также два метода: bark, который возвращает звук, который издаёт собака, и human_years, который преобразует возраст собаки в "человеческие" года.

Чтобы создать экземпляр класса и использовать его методы, можно сделать следующее:


my_dog = Dog("Buddy", 3) # Создание экземпляра класса
print(my_dog.bark()) # Выводит: Buddy says Woof!
print(my_dog.human_years()) # Выводит: 21


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
🔥 Какие модули входят в стандартную библиотеку для работы с файлами?

В стандартную библиотеку Python входит несколько полезных модулей для работы с файлами. Вот некоторые из них:

1. os: Модуль для работы с операционной системой, позволяющий управлять файлами и директориями.


import os

# Получение списка файлов в директории
files = os.listdir('.')
print(files) # Выводит список файлов в текущей директории


2. shutil: Модуль для выполнения операций с файлами и директориями, таких как копирование и перемещение.


import shutil

# Копирование файла
shutil.copy('source.txt', 'destination.txt') # Копирует source.txt в destination.txt


3. glob: Модуль для поиска файлов по шаблону.


import glob

# Поиск всех текстовых файлов в текущей директории
txt_files = glob.glob('*.txt')
print(txt_files) # Выводит список всех .txt файлов


4. fileinput: Модуль для работы с несколькими файлами ввода, позволяющий перебор строк из нескольких файлов.


import fileinput

# Чтение строк из файла или нескольких файлов
for line in fileinput.input(('file1.txt', 'file2.txt')):
print(line) # Выводит строки из указанных файлов


5. tempfile: Модуль для работы с временными файлами и директориями.


import tempfile

# Создание временного файла
with tempfile.NamedTemporaryFile(delete=True) as temp_file:
temp_file.write(b'This is a temporary file.') # Запись данных во временный файл
temp_file.seek(0)
print(temp_file.read()) # Чтение данных из временного файла


Эти модули предоставляют широкий спектр возможностей для работы с файлами в Python, упрощая задачи файлового ввода-вывода и управления файловой системой.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔥 Что такое сериализация данных и как её выполнять в Python?

Сериализация данных — это процесс преобразования объекта в формат, который можно легко хранить или передавать (например, в файл или по сети). В Python для сериализации часто используются библиотеки pickle и json.

Сериализация с использованием pickle

Модуль pickle позволяет сериализовать и десериализовать объекты Python.


import pickle

# Пример объекта для сериализации
data = {
'name': 'Alice',
'age': 30,
'is_employee': True
}

# Сериализация объекта в файл
with open('data.pkl', 'wb') as file:
pickle.dump(data, file) # Записываем объект в файл

# Десериализация объекта из файла
with open('data.pkl', 'rb') as file:
loaded_data = pickle.load(file) # Читаем объект из файла

print(loaded_data) # Выводит: {'name': 'Alice', 'age': 30, 'is_employee': True}


Сериализация с использованием json

Модуль json используется для работы с JSON-форматом, который является текстовым форматом и более удобен для межъязыкового обмена данными.


import json

# Пример объекта для сериализации
data = {
'name': 'Alice',
'age': 30,
'is_employee': True
}

# Сериализация объекта в JSON и запись в файл
with open('data.json', 'w') as file:
json.dump(data, file) # Записываем объект в JSON формате

# Десериализация объекта из JSON файла
with open('data.json', 'r') as file:
loaded_data = json.load(file) # Читаем объект из JSON файла

print(loaded_data) # Выводит: {'name': 'Alice', 'age': 30, 'is_employee': True}


С помощью модулей pickle и json можно легко сериализовать и десериализовать объекты в Python, что позволяет сохранять состояние программ или передавать данные между различными системами.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
🔥 Как создать собственный итератор?

Создание собственного итератора в Python включает в себя реализацию метода __iter__() и метода __next__() в классе. Это позволяет объектам вашего класса быть итерируемыми.

Вот пример, как создать свой собственный итератор, который генерирует последовательность квадратов чисел:


class SquareIterator:
def __init__(self, max_num):
self.max_num = max_num # Устанавливаем максимальное число
self.current = 0 # Начальное значение

def __iter__(self):
return self # Возвращаем сам итератор

def __next__(self):
if self.current < self.max_num:
square = self.current ** 2 # Вычисляем квадрат текущего числа
self.current += 1 # Увеличиваем текущее число
return square # Возвращаем квадрат
else:
raise StopIteration # Останавливаем итерацию, если предел достигнут

# Использование созданного итератора
squares = SquareIterator(5) # Создаем итератор для квадратов чисел от 0 до 4

for square in squares:
print(square) # Выводит: 0, 1, 4, 9, 16


Как это работает:

1. Инициализация: Конструктор __init__ принимает максимальное число, до которого будут вычисляться квадраты, и инициализирует текущее число.

2. Метод __iter__Этот метод должен возвращать объект итератора. В данном случае он возвращает сам класс.

3. Метод next В этом методе вычисляется квадрат текущего числа и увеличивается значение текущего числа. Если текущее число достигло максимума, вызывается исключение StopIteration, чтобы сигнализировать об окончании итерации.

Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔥 Как обращаться к REST API с использованием Python?

Для обращения к REST API с использованием Python можно использовать библиотеку requests. Вот пример, как это можно сделать:


import requests

# URL API, к которому мы будем отправлять запрос
url = 'https://api.example.com/data'

# Задаем заголовки запроса (если нужно)
headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN', # Токен авторизации
'Content-Type': 'application/json' # Формат данных
}

# Параметры запроса
params = {
'param1': 'value1', # Пример параметра
'param2': 'value2' # Другой пример параметра
}

# Выполняем GET-запрос
response = requests.get(url, headers=headers, params=params)

# Проверяем статус-код ответа
if response.status_code == 200:
data = response.json() # Парсим JSON-ответ
print(data) # Выводим данные
else:
print(f'Ошибка: {response.status_code}') # Сообщаем об ошибке


Для выполнения POST-запроса можно использовать следующий код:


# Данные, которые мы хотим отправить на сервер
data = {
'key1': 'value1',
'key2': 'value2'
}

# Выполняем POST-запрос
response = requests.post(url, headers=headers, json=data)

# Проверяем статус-код ответа
if response.status_code == 201:
print('Данные успешно отправлены:', response.json()) # Выводим ответ от сервера
else:
print(f'Ошибка: {response.status_code}') # Сообщаем об ошибке


Ставь 👍, если было полезно!
Еще больше ответов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤩2