Их приоритет отличается, поэтому они не эквивалентны.
Мое эмпирическое правило таково: используйте &&
для логических выражений и and
для потока управления.
Примеры
# logical expressions
if user.first_name == 'Bob' && user.last_name == 'Jones'
# control flow
worker.do_this and worker.and_also_do_this_if_that_went_well