-
Notifications
You must be signed in to change notification settings - Fork 28
Programming Patterns
Lindsay Ward edited this page Aug 19, 2016
·
66 revisions
This page contains standard 'patterns' that you should get used to. When you need to perform one of these tasks, follow the standard pattern.
<priming read - do something the loop depends on>
while <condition based on something from above>:
display error message
<same as the priming read again>
do next thing now that you know the 'something' is valid
Example:
SECRET = 6
guess = int(input("? "))
while guess != SECRET:
print("Guess again!")
guess = int(input("? "))
print("You got it!")
Example:
valid_input = False
while not valid_input:
try:
age = int(input("Age: "))
valid_input = True
except ValueError: # or just except:
print("Invalid (not an integer)")
print("Next year you will be", age + 1)
for each item in items
if item matches what we're looking for
return result or set value and break
(note no need for else or continue, it will move to the next item)
filtered_items
for each item in items
if item matches what we want
add item to filtered_items
(note no need for else or continue, it will move to the next item)
Note that Python (and many languages) have neat shortcuts for filtering, e.g. using list comprehensions:
filtered_items = [item for item in items if item matches what we want]
...
You never need to compare to True or False. E.g. instead of:
if condition == True:
... or
if condition == False:
You can just use:
if condition:
... or
if not condition:
If you are ever returning (or setting a variable to) True/False depending on a condition, you can just return (or set) to the condition. So, instead of:
if condition:
return True
else:
return False
You can just use:
return condition