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: «Контейнер с приложением и зависимостями. Работает одинаково на любом сервере.»
Если не знаешь ответ: Скажи «не знаю точно, но понимаю так...» и рассуждай вслух. Тимлиды ценят ход
мысли.
Удачи на собеседовании! Ты готова! 💪