Oii, Samuel.
A sua lógica tá corretíssima e a sua abordagem de estudo foi muito perspicaz.
Respondendo diretamente à sua dúvida: sim, escrever a condição dessa forma contribui muito para o entendimento da Tabela-Verdade e da Lógica Booleana.
Embora o Python ofereça aquele "açúcar sintático" (a forma abreviada 8 <= horas < 18), ele esconde o que realmente está acontecendo no processador. Ao escrever horas >= 8 and horas < 18, você está explicitando o funcionamento do operador lógico E (AND).
Para o seu código entrar no bloco if, ele precisa consultar a tabela-verdade do AND, que funciona assim:
- Condição A: A hora é maior ou igual a 8? (Verdadeiro/Falso)
- Condição B: A hora é menor que 18? (Verdadeiro/Falso)
- Resultado: Só entra se A e B forem Verdadeiros.
Se você digitar "19", por exemplo:
- A primeira parte é Verdadeira (19 \geq 8).
- A segunda parte é Falsa (19 < 18).
- Na tabela-verdade do E, Verdadeiro com Falso resulta em Falso. Logo, vai para o
else.
Compreender isso é vital, pois a maioria das outras linguagens de programação (como Java, C# e JavaScript) não aceita a forma abreviada do Python. Elas exigem exatamente a estrutura que você montou. Portanto, você está aprendendo uma lógica universal.
Parabéns pela iniciativa de ir além da sintaxe e buscar o fundamento lógico. Bons estudos.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!