Gebruik haakjes als je meer dan twee operatoren combineert. Het verschil tussen (A and B) or C en A and (B or C) is groot:
steden = {
"Amsterdam": {"land": "Nederland", "inwoners": 921000, "werelddeel": "Europa"},
"Buenos Aires": {"land": "Argentinië", "inwoners": 2890000, "werelddeel": "Zuid-Amerika"},
"Rome": {"land": "Italië", "inwoners": 2873000, "werelddeel": "Europa"},
"São Paulo": {"land": "Brazilië", "inwoners": 12330000, "werelddeel": "Zuid-Amerika"},
"Tokyo": {"land": "Japan", "inwoners": 13960000, "werelddeel": "Azië"}
}
# (A and B) or C
for stad, gegevens in steden.items():
if (gegevens["inwoners"] < 1000000 and gegevens["werelddeel"] == "Europa") or gegevens["werelddeel"] == "Azië":
print(stad, "— minder dan 1M inwoners EN in Europa, OF in Azië")
# A and (B or C)
for stad, gegevens in steden.items():
if gegevens["inwoners"] < 1000000 and (gegevens["werelddeel"] == "Europa" or gegevens["werelddeel"] == "Azië"):
print(stad, "— minder dan 1M inwoners EN (in Europa OF in Azië)")
De eerste variant levert zowel Amsterdam als Tokyo; de tweede alleen Amsterdam.