name (non-empty), age (int-parseable, 18+), and email (contains '@'). Write validate(form) — a dict of strings — returning a list of ALL failure messages ('bad name', 'bad age', 'bad email'), not just the first. Use try/except around the age parse; empty list means valid.validate({'name': '', 'age': 'xx', 'email': 'a@b.c'})['bad name', 'bad age']
Two independent failures are both reported.
Each check appends independently — no early return.
The int() call needs its own try/except.