Одна из причин, по которой присвоения являются незаконными в условиях, состоит в том, что легче совершить ошибку и назначить True или False:
some_variable = 5
# This does not work
# if True = some_variable:
# do_something()
# This only works in Python 2.x
True = some_variable
print True # returns 5
В Python 3 True и False являются ключевыми словами, поэтому больше никакого риска .