DEV Community

AheadKit
AheadKit

Posted on Originally published at aheadkit.me

Python Interview Prep: Practise With Programs You Can Run, Not Just Read

Most Python interview prep fails in the same place. You read about Fibonacci, decorators and two-sum for a week. Then the interviewer opens a blank editor and says: write it. Reading and writing are different skills, and interviews test the second one.

So when I put together Python Interview Prep, I built it around writing: 140 complete programs in five rounds (warm-ups, logic classics, core Python, OOP, job-level problems) and 100 interview questions. Every program is printed with the real output it produces — each one was actually run, so what you see is what your screen will show.

Here are three programs from the book, exactly as they appear in it.

Program 24 — Print the Fibonacci Sequence With a Loop

What the interviewer is testing: Loop control and updating two variables in step. The simultaneous assignment a, b = b, a + b is the line they are listening for.

count = 10

a = 0
b = 1
print("Fibonacci sequence:")
for i in range(count):
    print(a, end=" ")
    a, b = b, a + b
print()
Enter fullscreen mode Exit fullscreen mode

Output:

Fibonacci sequence:
0 1 1 2 3 5 8 13 21 34
Enter fullscreen mode Exit fullscreen mode

Program 26 — Check Whether a Number Is an Armstrong Number

What the interviewer is testing: Turning a number into digits, and raising each digit to the right power. The classic trap is using power 3 for every number — the power is the number of digits.

number = 153

digits = str(number)
power = len(digits)
total = 0
for ch in digits:
    total = total + int(ch) ** power

print("Number:", number)
if total == number:
    print(number, "is an Armstrong number.")
else:
    print(number, "is not an Armstrong number.")
Enter fullscreen mode Exit fullscreen mode

Output:

Number: 153
153 is an Armstrong number.
Enter fullscreen mode Exit fullscreen mode

Program 60 — FizzBuzz

What the interviewer is testing: Whether you check the combined case first. If you test % 3 before % 15, FizzBuzz never prints — that ordering mistake is the whole point of the question.

for number in range(1, 21):
    if number % 15 == 0:
        print("FizzBuzz")
    elif number % 3 == 0:
        print("Fizz")
    elif number % 5 == 0:
        print("Buzz")
    else:
        print(number)
Enter fullscreen mode Exit fullscreen mode

Output:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Enter fullscreen mode Exit fullscreen mode

Read 25 programs free

The first 25 programs plus 10 of the Part B questions are free to read online, no email needed: aheadkit.me/free-chapter/python-interview-prep

The full book (135 pages, $7.99, one payment) adds rounds 2–5 — comprehensions, decorators, generators, OOP, threads, async, and the algorithm problems that decide offers — plus all 100 questions and a 7-day practice plan for when the interview is already booked: Python Interview Prep on AheadKit

If you have never written Python at all, this book will be too much, too fast — it assumes variables, loops and functions. Start with a beginner book first, then come back and sharpen up.

Good luck in the interview. Practise by writing, and the blank editor stops being the scary part.

Top comments (0)