Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Está conforme a atividade e também contribui para o entendimento do conceito da tabela-verdade?

horas = int(input("Digite a hora atual (formato 24h): "))

# if 8 <= horas <= 18: (também funciona)
if horas >= 8 and horas < 18:  # deixei assim pois também estou praticando tabela-verdade, 
                               #pois ajuda a entender melhor esse conceito de if e else
    print("Você pode entrar no escritório.")
else:
    print("Você não pode entrar no escritório.")
1 resposta
solução!

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:

  1. Condição A: A hora é maior ou igual a 8? (Verdadeiro/Falso)
  2. Condição B: A hora é menor que 18? (Verdadeiro/Falso)
  3. 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.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!