Working with Python
Control Flow
Conditionals
Basic if conditionals
The basic if
syntax in Python, with elif
(else if) and else
:
x = 5
if x > 0:
print(f"{x} is positive")
elif x < 0:
print(f"{x} is negative")
else:
print("Zero. Your number is zero.")
Ternary operator
Python doesn't have a specific ternary operator instead you can use if-else
inline in the form a if condition else b
Note: the else portion is required.
x = 5
is_negative: False if x >= 0 else True
Match statement
The match
statement was introduced in Python 3.10 and can match patterns given in one or more case blocks.
match num:
case 1:
print("One - Not prime by definition")
case 2 | 3 | 5 | 7:
print("Prime number")
case 4 | 6 | 8 | 9:
print("Not prime")
case _:
print("Shrug")
The case _
is a catch all and will match anything not yet matched.
Multiple values can be included in a case separated by the |
for or.
The objects being compared and matched don't have to be simple values.
# Rock-paper-scissor tuple
match throw:
case ("r", "r") | ("p", "p") | ("s", "s"):
print("Tie")
case ("r", "s") | ("p", "r") | ("s", "p"):
print("Win")
case ("r", "p") | ("p", "s") | ("s", "r"):
print("Lose")
case _:
print("Bad throw")
Loops
Use the range()
function to create a for loop iterator:
for x in range(3):
print(x)
>>> 0
>>> 1
>>> 2
Pass two parameters to range()
to specify a start, stop:
for x in range(5, 8):
print(x)
>>> 5
>>> 6
>>> 7
Pass three parameters to range()
to specify a start, stop, and step:
for x in range(1, 10, 3):
print(x)
>>> 1
>>> 4
>>> 7
If you want to count backward using range()
using a negative step:
for x in range(5, -1, -1):
print(x)
>>> 5
>>> 4
>>> 3
>>> 2
>>> 1
>>> 0
Iterators
Many Python objects are iterable, these include strings, lists, dicts, and sets.
s = "abc"
for ch in s:
print(ch)
>>> a
>>> b
>>> c
Iterating over lists in Python:
v = ["a", "b", "c"]
for el in v:
print(el)
>>> a
>>> b
>>> c
Use .items()
method to iterate over dicts in Python with key, value pair:
d = { 'a': 'apple', 'b': 'banana', 'c': 'cherry' }
for k,v in d.items():
print(k, v)
>>> a apple
>>> b banana
>>> c cherry
Enumerate
Use the enumerate()
function to iterate with an index:
a = ["a", "b", "c"]
for idx, item in enumerate(a):
print(f"{idx} -> {item}")
0 -> a
1 -> b
2 -> c
>>>