Pythonic Idioms

I always seem to find myself having to look up the “right” way to structure a piece of logic in Python so I thought I would create a little cheatsheet for myself (and anyone else for that matter).

Assignment

We can assign a single value to more than one variable.



a = b = c = d = 0
first = second = 'unknown'


Comparison

I have always done explicit, separate comparisons in an if, probably because I came from a C background. Chaining comparisons together is much more natural for a single value.



if 100 >= value >= 0:
    print("value is in the right range!")
    

Ternary Operators

Slightly more arcane to my mind but reminiscent of ruby syntax, ternary operators work a little different from C-like languages



value = 100 if set_to_maximum else 0
    

In With the In Crowd

Testing if a value exists in a set of options, or for iterating through a set of values.


exists = value in {'first', 'second', 'third'}


pet_names = ['rover', 'spot', 'fluffy']

for name in pet_names:
    print(name)

String Placeholders



print('Happy {celebrant.age} Birthday, {celebrant.name} !'.format(celebrant=person)