Oii Laercio, como você está? Espero que esteja bem ^-^
A diferença será mínima, quase que imperceptível, pois em ambos os casos a expressão terá que ser avaliada, com a diferença que em uma das abordagens a expressão será avaliada e atribuída a uma variável. Por isso, para casos assim fica a critério.
Como confirmar que a diferença entre os casos será mínima?
Podemos utilizar a biblioteca timeit (não é necessário instalar, pois ela é padrão do python) para executarmos um trecho de código um determinado número de vezes e após toda essa execução, essa biblioteca nos fornecerá o tempo mínimo gasto. Por padrão, a biblioteca define uma execução de 1 milhão de vezes para o trecho passado como parâmetro. Veja:
import timeit
def com_variaveis():
numero_secreto = 42
chute = 1000
correto = numero_secreto == chute
maior = chute > numero_secreto
menor = chute < numero_secreto
if (correto):
...
else:
if (maior):
...
elif (menor):
...
def sem_variaveis():
numero_secreto = 42
chute = 100
if (numero_secreto == chute):
...
else:
if (chute > numero_secreto):
...
elif (chute < numero_secreto):
...
timeit.timeit(stmt=com_variaveis)
Resultado: 0.1472199470003943 milisegundos
timeit.timeit(stmt=sem_variaveis)
Resultado: 0.12230607399988003 milisegundos
Observe que tivemos uma diferença mínima nas duas abordagens. Obs: os prints foram retirados para não impactar na performance, pois, para imprimir uma mensagem na tela leva-se um tempo.
Vale lembrar que quando atribuímos a expressão a uma variável fica explícito o que estamos testando. Em um cenário geral, por vezes, quando priorizamos a otimização deixamos de lado a legibilidade, mas nem sempre esse é o objetivo, principalmente em casos onde não teremos tanta diferença de um caso para o outro. Fora isso, pode ter situações onde precisaremos utilizar variáveis para reutilizá-la em mais trechos.
Deixo como referência a documentação da biblioteca timeit (em inglês):
Qualquer dúvida estou por aqui, tá? A gente vai conversando.
Grande abraço!