Будет ли Python понимать приведенный выше код в точности как: если my_age> 20 и окрестность> 20:?
Нет, не будет. Python интерпретирует это так:
if (my_age) and (neighborhood_age > 20)
Если вы хотите сравнить два значения с третьим, вы должны сделать это так:
if (my_age > 20 and neighborhood_age > 20): ...
Или с группировкой для полной ясности:
if ((my_age > 20) and (neighborhood_age > 20)): ...
Если у вас есть много значений для сравнения, вы можете использовать все :
if all(age > 20 for age in (my_age, neighborhood_age)): ...
Что касается вашего последнего примера, я, вероятно, написал бы его так, используя несколько строк и скобки для устранения неоднозначности:
if ((my_age > 20 and neighborhood_age > 20) and
(father_age < 60) and
(cousin_age < my age)
) or (girlfriend_age > 18):
...
Практически во всех случаях, кроме самых простых, вы должны использовать круглые скобки, чтобы прояснить свое намерение.