0% нашли этот документ полезным (0 голосов)
4 просмотров6 страниц

Python Interview Cheatsheet

Документ представляет собой шпаргалку по Python для подготовки к собеседованию на позицию Junior. Он охватывает основные концепции языка, такие как переменные, условия, циклы, функции, коллекции, обработка ошибок и декораторы, а также включает советы для собеседования и сравнения с Java. В конце документа содержится информация о FastAPI и его аналогах в Java, а также рекомендации по общению с командой.

Загружено:

Айжан Кахарман
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd
0% нашли этот документ полезным (0 голосов)
4 просмотров6 страниц

Python Interview Cheatsheet

Документ представляет собой шпаргалку по Python для подготовки к собеседованию на позицию Junior. Он охватывает основные концепции языка, такие как переменные, условия, циклы, функции, коллекции, обработка ошибок и декораторы, а также включает советы для собеседования и сравнения с Java. В конце документа содержится информация о FastAPI и его аналогах в Java, а также рекомендации по общению с командой.

Загружено:

Айжан Кахарман
Авторское право
© All Rights Reserved
Мы серьезно относимся к защите прав на контент. Если вы подозреваете, что это ваш контент, заявите об этом здесь.
Доступные форматы
Скачать в формате PDF, TXT или читать онлайн в Scribd

Python — Шпаргалка

Подготовка к Junior собеседованию · Avrora Holding

1. Переменные и типы данных

Переменная — коробка с именем, внутри которой хранятся данные. Содержимое можно менять.

name = 'Айдана' # str — текст


age = 25 # int — целое число
pi = 3.14 # float — дробное число
ok = True # bool — True или False

print(f'Привет, {name}!') # f-строка


user = input('Имя: ') # ввод от пользователя

На собеседовании: «Переменная — именованное место в памяти. Содержимое можно менять — отсюда и название.»

2. Условия — if / elif / else

Python проверяет условия сверху вниз. Как только одно сработало — остальные игнорируются.

if temperature > 30:


print('Жарко!') # выполнится это
elif temperature > 20:
print('Тепло') # сюда не дойдёт
else:
print('Прохладно')

На собеседовании: «Как только одно условие сработало — Python выходит, остальные не проверяет.»

3. Циклы — for / while

for i in range(5): # 0 1 2 3 4
print(i)

n = 0
while n < 3: # пока условие верно
print(n)
n += 1

4. Функции — def / return

def — объявить функцию. return — вернуть результат вызывающему коду.

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

print(greet('Алия')) # Привет, Алия!

def power(x, n=2): # n=2 — значение по умолчанию


return x ** n

На собеседовании: «def объявляет, return возвращает результат вызывающему коду.»


5. Коллекции — list, tuple, set, dict

Тип Синтаксис Аналог Java Особенность

list [] ArrayList Изменяемый, с порядком, дубликаты OK

tuple () неизм. List Неизменяемый, с порядком

set {} HashSet Уникальные элементы, без порядка

dict {k: v} HashMap Ключ — значение

fruits = ['яблоко', 'груша'] # list


[Link]('банан')
print(fruits[0]) # яблоко (индекс с 0!)

tags = {'python', 'java', 'python'}


# результат: {'python', 'java'} — дубликат удалён

person = {'name': 'Дана', 'age': 30}


print(person['name']) # Дана

# Убрать дубликаты из списка:


unique = list(set([1, 2, 2, 3, 3])) # [1, 2, 3]

На собеседовании: «list — меняется. tuple — фиксирован. set — уникальность. dict — ключ-значение как HashMap.»
6. List Comprehension

Создать список в одну строку. Аналог stream().map().collect() в Java / .map() в Kotlin.

nums = [1, 2, 3, 4, 5]

squares = [x**2 for x in nums] # [1, 4, 9, 16, 25]


even = [x for x in nums if x % 2 == 0] # [2, 4]

# Формула: [что_делаем for элемент in список if условие]

На собеседовании: «Короткая замена циклу for. Аналог .map() и .filter() в Kotlin.»

7. Duck Typing

В Python не важен тип — важно есть ли нужный метод. Проверка во время выполнения, не при
компиляции.

class Dog:
def sound(self): return 'Woof'

class Cat:
def sound(self): return 'Meow'

def make_sound(animal):
print([Link]()) # неважно кто — главное есть метод!

make_sound(Dog()) # Woof
make_sound(Cat()) # Meow

На собеседовании: «В Java нужен интерфейс. В Python — просто наличие метода. Тип не важен.»

8. Классы и self

self = this в Java, но обязательный — пишем явно первым аргументом в каждом методе. __init__ =
конструктор.

class Cat:
def __init__(self, name, age): # конструктор
[Link] = name
[Link] = age

def speak(self):
return 'Мяу!'

c = Cat('Барсик', 3) # new не нужен!


print([Link]) # Барсик
print([Link]()) # Мяу!

На собеседовании: «__init__ = конструктор. self = this, но обязательный. new не пишем.»

9. try / except — обработка ошибок

Как try/catch в Java. Отличие: блок else — выполняется только если ошибки не было.

try:
result = 10 / 2
except ZeroDivisionError:
print('Нельзя делить на ноль!')
else:
print(f'Результат: {result}') # только если нет ошибки
finally:
print('Выполнится всегда') # как в Java

Java Python Что делает

try { } try: Код который может сломаться

catch (Exception) except Exception: Поймать ошибку

finally { } finally: Выполнится всегда

— (нет) else: Только если ошибки НЕ было


10. with — менеджер контекста

Аналог try-with-resources в Java. Гарантирует закрытие ресурса даже при ошибке.

# БЕЗ with — файл может не закрыться при ошибке


f = open('[Link]')
data = [Link]()
[Link]()

# С with — закроется автоматически в любом случае


with open('[Link]') as f:
data = [Link]()
# файл закрыт — даже если была ошибка

На собеседовании: «with гарантирует закрытие ресурса даже при ошибке. Используется с файлами и соединениями с
БД.»

11. Декораторы (@)

Обёртка вокруг функции. Добавляет поведение до и после — не меняя саму функцию.

def my_decorator(func):
def wrapper():
print('До')
func() # вызов оригинала
print('После')
return wrapper

@my_decorator
def say_hello():
print('Привет!')

say_hello()
# До / Привет! / После

# В FastAPI декораторы — это роуты:


@[Link]('/users')
def get_users():
return users

На собеседовании: «Декоратор = обёртка. Используется для логирования, проверки прав, роутов FastAPI.»

12. None

None = нет значения, как null в Java. Отличие: None — полноценный объект типа NoneType. Проверять
через is None.

name = None

if name is None: # правильно!


print('Пусто')

# Функция без return — возвращает None


def do_nothing():
pass
print(do_nothing()) # None

На собеседовании: «None = нет значения. Всегда проверяй через is None, не через ==.»

13. FastAPI + стек Avrora

FastAPI = Spring Boot в мире Python. Роуты через декораторы. Цепочка: Клиент → FastAPI → SQLAlchemy
→ PostgreSQL

from fastapi import FastAPI

app = FastAPI()

@[Link]('/users') # GET — получить данные


def get_users():
return users

@[Link]('/users') # POST — создать новое


def create_user(user):
return user

Технология Аналог Java Что делает

FastAPI Spring Boot Принимает HTTP запросы, роутинг

SQLAlchemy Hibernate / JPA Работа с базой данных из Python

Alembic Flyway / Liquibase Миграции базы данных

PostgreSQL PostgreSQL Хранение данных (то же самое!)

Docker Docker Контейнер с приложением

Redis Redis Быстрый кэш в памяти

14. Советы для созвона с Adil (тимлид)

О себе: «Есть опыт Java/Kotlin backend — API, БД, логика. Python учу, концепции понимаю. Готова влиться
за 2-3 недели.»
Как быстро вольёшься? «FastAPI похож на Spring Boot, SQLAlchemy — аналог Hibernate. За 2-3 недели
смогу делать реальные задачи.»
REST API: «Интерфейс общения клиента и сервера по HTTP. GET, POST, PUT, DELETE, данные в JSON.»
Docker: «Контейнер с приложением и зависимостями. Работает одинаково на любом сервере.»
Если не знаешь ответ: Скажи «не знаю точно, но понимаю так...» и рассуждай вслух. Тимлиды ценят ход
мысли.

Удачи на собеседовании! Ты готова! 💪

Вам также может понравиться