Python собеседования
1.94K 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 объявление переменной осуществляется простым присвоением значения имени переменной с помощью оператора =. Тип данных указывать не требуется
Синтаксис:имя_переменной = значение


Примеры:

# Целое число
age = 25

# Строка
name = "Анна"

# Вещественное число
height = 1.68

# Логическое значение
is_student = True

Правила именования переменных:
1. Имя должно начинаться с буквы или символа подчёркивания (_).
2. Могут содержать буквы, цифры и символы подчёркивания.
3. Чувствительны к регистру (age и Age — разные переменные).
4. Не использовать зарезервированные слова Python (например, for, if, class).

Советы:
- Использовать понятные и описательные имена переменных.
- Следовать стилю snake_case для именования (например, user_age).

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

Строка (str) — это основной тип данных для работы с текстовой информацией в Python. Строки можно создавать с помощью одинарных ' ', двойных " " или тройных кавычек ''' '''/""" """.

Примеры использования:
# Создание строк
text = "Привет, мир!"
multiline = """Это
многострочная
строка."""

# Операции со строками
print(text.upper()) # ПРИВЕТ, МИР!
print(len(text)) # 11

# Форматирование строк
name = "Иван"
greeting = f"Привет, {name}!"
print(greeting) # Привет, Иван!


Полезные методы:
- str.lower() / str.upper() – преобразование регистра
- str.split() – разделение строки по разделителю
- str.replace() – замена подстроки
- str.strip() – удаление пробелов по краям

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

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

Примеры использования:

# Присваивание None переменной
result = None

# Функция без явного return возвращает None
def greet(name):
print(f"Привет, {name}!")

output = greet("Анна")
print(output) # Выведет: None

# Использование None как значения по умолчанию
def add(a, b=None):
if b is None:
b = 0
return a + b

print(add(5)) # Выведет: 5
print(add(5, 3)) # Выведет: 8


Использование is или is not для проверки переменной на None:


if result is None:
print("Результат отсутствует")


Применение:
- Значения по умолчанию в функциях
- Инициализация переменных, которые позже получат значения
- Возврат из функций, когда нет значения для возвращения

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

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

Синтаксис:
def название_функции(параметры):
"""
Описание функции (опционально)
"""
# Тело функции
return значение # опционально


Пример использования:

def greeting(name):
return f"Привет, {name}!"

# Вызов функции
message = greeting("Анна")
print(message) # Выведет: Привет, Анна!


Преимущества функций:
- Повторное использование кода
- Улучшение читаемости
- Упрощение отладки

Ставь 👍, если было полезно
Еще больше материалов для подготовки к собеседованиям тут 👈
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
🔥 Что такое модуль в 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