~/root@quiz $ cat guides/python.md

Python & SDLC Study Guide

Before a single line of Python gets written on the job, there's a process behind it. Understanding that process is what separates "I can code" from "I can build software."

Practice with a quiz → ← Back home

ProcessThe Software Development Lifecycle (SDLC)

The SDLC breaks software projects into distinct phases: analysis, design, implementation, testing, and deployment. It exists because "just start coding" is how small ideas turn into unmaintainable messes. Each phase answers a different question:

⚠️ The mix-up everyone makes Students constantly confuse testing with debugging. Debugging happens during implementation, when you're fixing your own code as you write it. Testing is a distinct, later phase focused specifically on verifying the finished program actually meets its original requirements — not just "does it run without crashing."

FundamentalsVariables, Types & Control Flow

Python is a great first language because it reads almost like plain English. A variable is just a labeled container for a value:

gpa = 3.8 name = "Alex" is_honor_roll = gpa >= 3.5 if is_honor_roll: print(f"{name} made the honor roll!") else: print(f"{name} did not make the honor roll.")

Notice there's no step where you declare "gpa is a decimal number" — Python figures that out automatically from the value you assign. That's convenient for beginners, but it's also exactly why testing matters so much in real projects: nothing stops you from accidentally assigning a name where a number was expected until the program actually runs into it.

Try it yourself: what prints?
score = 72 if score >= 90: print("A") elif score >= 70: print("B") else: print("C")
Answer: B — 72 fails the first check (not ≥ 90) but passes the second (≥ 70), so Python stops there and never reaches the "else."

Building blocksFunctions & Reuse

A function is a named, reusable block of code — instead of copy-pasting the same GPA-checking logic everywhere in a program, you write it once:

def check_honor_roll(gpa): return gpa >= 3.5 print(check_honor_roll(3.9)) # True print(check_honor_roll(2.1)) # False
💡 Why this connects back to the SDLC Breaking logic into small, well-named functions is design in miniature. It's also what makes testing realistic — it's far easier to verify one small function does exactly what it should than to test one giant block of tangled code all at once.
Ad space

Key takeaways

Quiz: Python & SDLC Basics →