Olá, Tatiane, como vai?
O código funciona perfeitamente apenas com o nome da variável. Em lógica de programação, o comando condicional avalia se o que está entre o se e os dois pontos resulta em um valor verdadeiro. Como a variável estudante já armazena um valor booleano, o interpretador lê o conteúdo dela diretamente. Se o valor for verdadeiro, a condição é satisfeita sem a necessidade de uma comparação explícita.
Escrever se estudante == True é tecnicamente correto, mas é considerado uma redundância na maioria das linguagens de programação modernas. O computador entende que ao citar a variável booleana, você está perguntando se o estado atual dela é verdadeiro.
Espero ter ajudado.
Siga firme nos seus estudos e conte com o fórum sempre que precisar.
Abraços :)
Caso este post tenha lhe ajudado, por favor, marcar como solucionado