Practice
Exercise library
All 811 graded exercises. Each opens in its lesson, where the examples that teach it are right above.
811 exercises · page 5 of 14
- Apply a price update fileTrack 6 · Dictionaries: looking things up by keyEdge cases · ●●●Members
- Count the votesTrack 6 · Dictionary patterns: count, group, invertGuided · ●●Members
- Spending per categoryTrack 6 · Dictionary patterns: count, group, invertChallenge · ●●Members
- Group students by gradeTrack 6 · Dictionary patterns: count, group, invertChallenge · ●●●Members
- Clearing out empty productsTrack 6 · Dictionary patterns: count, group, invertDebugging · ●●●Members
- Who has this extension?Track 6 · Dictionary patterns: count, group, invertEdge cases · ●●Members
- Count unique visitorsTrack 6 · Sets: unique values and group comparisonsGuided · ●Members
- Compare two course rostersTrack 6 · Sets: unique values and group comparisonsChallenge · ●●Members
- Spot the duplicate ticketTrack 6 · Sets: unique values and group comparisonsEdge cases · ●●●Members
- The allergen checker that missed everythingTrack 6 · Sets: unique values and group comparisonsDebugging · ●●Members
- Who works in this department?Track 6 · Nested structures: records and JSON-like dataGuided · ●●Members
- Total an online orderTrack 6 · Nested structures: records and JSON-like dataChallenge · ●●●Members
- Add a lesson to the timetableTrack 6 · Nested structures: records and JSON-like dataEdge cases · ●●●Members
- Customers with missing addressesTrack 6 · Nested structures: records and JSON-like dataDebugging · ●●●Members
- Convert a price listTrack 6 · Comprehensions: building collections in one lineGuided · ●Members
- Low stock reportTrack 6 · Comprehensions: building collections in one lineChallenge · ●●Members
- Which companies signed up?Track 6 · Comprehensions: building collections in one lineChallenge · ●●Members
- Averages for every studentTrack 6 · Comprehensions: building collections in one lineEdge cases · ●●●Members
- Tidy up the overtime calculationTrack 6 · Comprehensions: building collections in one lineRefactoring · ●●●Members
- Cheapest offers firstTrack 6 · Sorting records with key functionsGuided · ●●Members
- Build a leaderboardTrack 6 · Sorting records with key functionsChallenge · ●●●Members
- The staff list in a strange orderTrack 6 · Sorting records with key functionsDebugging · ●●Members
- Top sellers of the monthTrack 6 · Sorting records with key functionsEdge cases · ●●●Members
- Discounted copy of a price listTrack 6 · Copying and aliasing: when two names share one listGuided · ●●Members
- Weekly rota from a templateTrack 6 · Copying and aliasing: when two names share one listChallenge · ●●●Members
- The seating chart that fills every rowTrack 6 · Copying and aliasing: when two names share one listDebugging · ●●●Members
- Every report remembers the last oneTrack 6 · Copying and aliasing: when two names share one listEdge cases · ●●●Members
- Milestone 1: record a scoreTrack 6 · Choosing a structure: a gradebook projectGuided · ●●Members
- Milestone 2: a student's averageTrack 6 · Choosing a structure: a gradebook projectProject milestone · ●●Members
- Milestone 3: the class reportTrack 6 · Choosing a structure: a gradebook projectProject milestone · ●●●Members
- Milestone 4: rank the classTrack 6 · Choosing a structure: a gradebook projectChallenge · ●●●Members
- Milestone 5: who hasn't submitted?Track 6 · Choosing a structure: a gradebook projectEdge cases · ●●●Members
- Count the vowelsTrack 7 · Strings in depthGuided · ●
- Mask a reference numberTrack 7 · Strings in depthChallenge · ●●
- The broken report pathTrack 7 · Strings in depthDebugging · ●●
- Capitalise without crashingTrack 7 · Strings in depthDebugging · ●●
- Normalise an email addressTrack 7 · Cleaning messy textGuided · ●Members
- Tidy a customer nameTrack 7 · Cleaning messy textChallenge · ●●Members
- Turn a price label into a numberTrack 7 · Cleaning messy textChallenge · ●●Members
- Product codes losing lettersTrack 7 · Cleaning messy textDebugging · ●●●Members
- Parse a tag fieldTrack 7 · Splitting and joining textGuided · ●●Members
- Separate a file name from its extensionTrack 7 · Splitting and joining textChallenge · ●●Members
- Build an export rowTrack 7 · Splitting and joining textChallenge · ●●Members
- Split a record with a free-text messageTrack 7 · Splitting and joining textEdge cases · ●●●Members
- Spot image attachmentsTrack 7 · Searching inside textGuided · ●Members
- Pull the order number out of a messageTrack 7 · Searching inside textChallenge · ●●●Members
- Count keyword mentionsTrack 7 · Searching inside textEdge cases · ●●Members
- The upside-down urgent flagTrack 7 · Searching inside textDebugging · ●●Members
- Validate a locker PINTrack 7 · Validating textGuided · ●●Members
- Validate a product codeTrack 7 · Validating textChallenge · ●●●Members
- A rough email checkTrack 7 · Validating textChallenge · ●●●Members
- Normalise a mobile numberTrack 7 · Validating textEdge cases · ●●●●Members
- Format a receipt lineTrack 7 · Formatting text reportsGuided · ●●Members
- Build a sales tableTrack 7 · Formatting text reportsChallenge · ●●●Members
- Wrap a customer commentTrack 7 · Formatting text reportsChallenge · ●●●Members
- The crashing invoice headerTrack 7 · Formatting text reportsDebugging · ●●●Members
- Parse a settings fileTrack 7 · Parsing structured textGuided · ●●Members
- Parse one log lineTrack 7 · Parsing structured textChallenge · ●●●Members
- Comma-separated text to dictionariesTrack 7 · Parsing structured textChallenge · ●●●Members
- Count log levels, skipping bad linesTrack 7 · Parsing structured textEdge cases · ●●●Members