A real access-review finding: an account that's suspended, or belongs to zero groups, with no clear owner. Ten labs on Module 6 — loops, accumulators, filtering, nested loops — over the real 12-person fixture.
Loop all of USERS, printing "FIRSTNAME -- STATUS" for each — 12 lines.
Julio -- ACTIVE ... Pat -- DEPROVISIONEDLoop all USERS. For each, print "FIRSTNAME: ACTIVE" if their status is ACTIVE, otherwise "FIRSTNAME: not active".
Loop all USERS, building a list of first names of every SUSPENDED user (accumulator pattern: empty list, append inside an if). Print the list.
['Bina', 'Rosa']Rewrite Lab 3 as a single list comprehension.
['Bina', 'Rosa'] — identical resultLoop all USERS, counting how many are DEPROVISIONED using a counter variable. Print the count.
2Loop the first two users (USERS[:2]), and for each, loop their groups, printing "FIRSTNAME belongs to GROUPNAME" for every membership.
Loop all USERS, building a list of first names of every user with len(groups) == 0. Print the list — these are your orphan candidates.
['Dana', 'Tri', 'Pat']Loop all USERS, building a list of first names of anyone who's SUSPENDED or has zero groups (single if with or). Print the list.
['Bina', 'Dana', 'Tri', 'Rosa', 'Pat']Loop all USERS, printing "FIRSTNAME: DEPARTMENT" for each, guarding the missing department with .get(..., "Unknown") — confirm no crash on Layla.
Layla: UnknownLoop all USERS, flagging anyone SUSPENDED or with zero groups (Lab 8's condition), guarding department (Lab 9), building formatted lines "FIRST LAST -- STATUS -- DEPARTMENT". Print "Flagged accounts: N" first, then every flagged line.
Flagged accounts: 5Bina Patel -- SUSPENDED -- SalesDana Morris -- ACTIVE -- ITTri Nguyen -- DEPROVISIONED -- SalesRosa Gomez -- SUSPENDED -- ITPat Hogan -- DEPROVISIONED -- Sales
Open problems/tier04_orphan_finder.py and do all 10 problems locally. Uses fixture.py -- type it in first from DAY1_01_FIXTURE.md if it's not already in this folder. Run python check.py in problems/ to grade everything.