The only way to get good at programming is to practice. This includes small exercises like those on REPL, small projects, and larger projects. Completing a project that you find interesting and is only one or two steps beyond your comfort zone is the best way to learn.
See also the Python Specific resources
Ryan's Tutorials: Programming Challenges
A nice site
A wide range of problems (filter by easy!)
Classic site for programming challenges - can get difficult!
Some challenges from a Stanford lecturer. On the harder side.
Again, on the harder side!
a site that provides a Read-Evaluate-Print-Loop for lots of different programming languages and lots more. It has regular competitions and supports courses full of exercises
this last feature is no longer free :'(Python Courses:
that every Student would benefit from completing...
In past VCE and trial exams (TODO: Go through old exams and find all examples) there have often been programs that students are required to analyse, create, etc... This is a list of such and similar programs. Complete as many as possible before your exams (preferably earlier!)
Division by repeated subtraction to get quotient and remainder
Fibonacci Sequence - print out first n terms
Pascal's triangle - print out first n rows
Change number base (using repeated division with remainder)
Binary ⇆ Denary
Anything ⇆ Anything
Login Systems (sequenced in increasing complexity)
Single user (name & password)
Multiple users: array/dict of usernames & passwords
Hashed passwords (built-in hash, passlib.hash)
File or DB storage of accounts
Palindrome Checker - check if two words are palindromes.
Disemvoweler (remove vowels from text)
Caesar Cipher
"Rotate" the alphabet by using Unicode character values and modular arithmetic
Substitution Cipher
Searching and indexing arrays or similar
XOR based bitwise encryption
Luhn's Algorithm (for credit cards)
ISBN 10 and ISBN 13 Check Digits
URL Validator
1D Array
Given a short 1D array of small positive integers, print out a bar chart using ASCII or in a GUI.
All of the required searching and sorting algorithms
Array of records
Contact List: Add, Remove, Edit, View, Search
Student Markbook - sort and filter by different columns/fields
2D Array
Tic-Tac-Toe (Naughts and Crosses)
Add an AI
Custom Hash Table