Boarding pass · Python Beginner
Python · Beginner interview
An AI mock interview for developers new to Python (0–2 years). Practise the core data types, comprehensions, functions, and object-oriented basics — out loud, with a readiness score.
- Voice interview
- Live feedback
- Browser-only
- No installation required
Your report · sample
AI Readiness Score
Finish the mock and get this report — scored on content and English, with concrete tips and a model answer for every question, plus a study plan.
Your flight path
Five steps to interview-ready.
From a quick warm-up to a personalised study plan — here's the whole loop, and what you get at each gate.
Step 01
Preparation
Skim the topics and warm up — you're briefed before takeoff.
Step 02
AI Interview
A realistic AI interviewer asks tailored questions — answer by voice or text.
Step 03
Instant Score
Finish and get a 0–100 readiness score across content and English.
Step 04
AI Feedback
Concrete tips and a rewritten model answer for every response.
Step 05
Study Plan
A personalised plan targets your weakest areas — so the next run scores higher.
Preview the AI demo
See one answer scored, end to end.
The whole loop on sample data — question, your answer, instant feedback and a study plan. Hover to pause.
Interviewer · Question 1
“Tell me about yourself.”
Who it's for
- Developers new to Python
- Engineers switching languages to Python
- Anyone targeting junior Python roles
- Self-taught devs prepping for interviews
What you'll practice
- Choosing the right built-in data type
- Writing list/dict comprehensions
- Functions, *args/**kwargs and defaults
- Classes, self and inheritance basics
Topics covered
What this level expects.
Basics
- Dynamic typing
- Mutable vs immutable
- is vs ==
Data structures
- list/tuple/set/dict
- Comprehensions
- Slicing
Functions
- *args / **kwargs
- Default arguments
- Lambdas & map/filter
OOP
- Classes & self
- __init__
- Inheritance
Practice questions
12 questions, with model answers.
Read them, then run the live mock to answer out loud and get scored. Tap any question to reveal a model answer.
01What kind of language is Python, and what are its key traits?Basics
Python is a high-level, interpreted, dynamically typed language with automatic memory management. You don't declare types and you don't compile to a binary; the interpreter runs your code. Its strengths are readability, a huge standard library and ecosystem, and being multi-paradigm (procedural, OOP, functional). The trade-off is raw speed, which it makes up for with C-backed libraries.
02What's the difference between mutable and immutable types?Basics
Mutable objects can be changed in place — lists, dicts, sets. Immutable ones can't — int, float, str, tuple, frozenset; 'changing' them actually creates a new object. This matters for sharing (mutating a list seen by two names affects both), for dict keys (only immutable, hashable types can be keys), and for the mutable-default-argument bug.
03What's the difference between == and is?Basics
== compares values — whether two objects are equal. is compares identity — whether they're the exact same object in memory. You use == for almost everything and reserve is for singletons like None (if x is None). Small ints and short strings may be cached so is sometimes appears to work on them, but relying on that is a bug.
04When would you use a list, tuple, set, or dict?Data structures
A list is an ordered, mutable sequence for collections you'll change. A tuple is an ordered, immutable sequence — good for fixed records and as dict keys. A set is an unordered collection of unique items with fast membership tests and set operations. A dict is a key→value mapping with fast lookup by key. Pick by whether you need order, mutability, uniqueness, or key lookup.
05What is a list comprehension?Data structures
It's a concise way to build a list by transforming and/or filtering an iterable in one expression. It's usually more readable and a bit faster than the equivalent for-loop with append. The same syntax works for dicts and sets.
squares = [n*n for n in range(10) if n % 2 == 0]
06How does slicing work?Data structures
Slicing extracts a subsequence with [start:stop:step], where stop is exclusive and any part is optional. Negative indices count from the end, and a negative step reverses. It works on lists, tuples, and strings and returns a new object, so it's a quick way to copy (a[:]) or reverse (a[::-1]).
a = [0,1,2,3,4] a[1:4] # [1,2,3] a[::-1] # [4,3,2,1,0]
07What do *args and **kwargs do?Functions
*args collects extra positional arguments into a tuple, and **kwargs collects extra keyword arguments into a dict. They let a function accept a variable number of arguments, and at the call site the same syntax unpacks a sequence or dict into arguments. They're common in wrappers and decorators that forward arguments along.
def log(*args, **kwargs):
print(args, kwargs)08What's the danger of a mutable default argument?Functions
Default arguments are evaluated once when the function is defined, not on each call. So a default like def f(items=[]) shares the same list across all calls, and appending to it leaks between calls. The fix is to default to None and create a fresh list inside the function.
def f(items=None):
if items is None:
items = []09What is a lambda, and how do map and filter relate to comprehensions?Functions
A lambda is a small anonymous function written inline, e.g. lambda x: x*2. map applies a function over an iterable and filter keeps elements matching a predicate. They overlap with comprehensions; in modern Python a comprehension is usually preferred for readability, with map/filter reserved for passing an existing named function.
10What is self in a Python class?OOP
self is the conventional name for the first parameter of instance methods, referring to the specific instance the method was called on. Python passes it automatically when you call obj.method(), so you use self to read and set per-instance attributes. It's explicit in Python where other languages hide it as 'this'.
11What is __init__ and when does it run?OOP
__init__ is the initializer, run automatically right after a new instance is created, to set up its initial attributes from the arguments. It's not strictly the 'constructor' (that's __new__, which actually creates the object), but it's where you put setup code. You assign instance state on self there.
class User:
def __init__(self, name):
self.name = name12How does inheritance work in Python?OOP
A class can inherit from a parent to reuse and extend its behaviour, and override methods by redefining them. You call the parent's version with super(). Python also supports multiple inheritance, resolved by a defined method-resolution order. Inheritance models an 'is-a' relationship; for reuse without that relationship, composition is often better.
class Admin(User):
def __init__(self, name, level):
super().__init__(name)
self.level = levelPreparation tips
Walk in ready.
- Know when to use a dict vs a list vs a set
- Practise rewriting a loop as a comprehension
- Understand the mutable default argument trap
- Be able to write a small class with __init__
Ready for the real thing?
Run a 6-question Python mock interview, answer out loud, and get a readiness score with tips and model answers.
More beginner interviews