4
respostas

Por que está errado?

Oi pessoas!

No exercício de fixação (02 Módulos e Funções - Item 08 Compreendendo condicionais), não entendi o porquê da alternativa "C" estar correta e a "D" não (como no print). Dado que a narrativa da questão pede um intervalo entre 25-45 minutos, então menos que 25 e mais que 45, não serve, logo na alternativa "C", temos: SE 25 <=** (*MENOR OU IGUAL*) a tempo....... Já na alternativa "D", temos: *SE* 25 **>= (MAIOR OU IGUAL) a tempo........

Onde estaria o erro que eu não vi? Por que a alternativa "C" é a correta e não a "D"?

Agradeço

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Oi Nicholas! Tudo bem?

Vamos analisar as alternativas "C" e "D" para entender o motivo pelo qual a "C" está correta e a "D" não.

Alternativa "C":

def configurar_tempo_foco():
    tempo = int(input("Digite o tempo de foco (25-45 min): "))
    if 25 <= tempo <= 45:
        print("Tempo configurado para", tempo, "minutos.")
    else:
        print("Valor inválido. Configure um tempo entre 25 e 45 minutos.")

Alternativa "D":

def configurar_tempo_foco():
    tempo = input("Digite o tempo de foco (25-45 min): ")
    if tempo >= 25 and tempo <= 45:
        print("Tempo configurado para", tempo, "minutos.")
    else:
        print("Valor inválido. Configure um tempo entre 25 e 45 minutos.")

Principais diferenças dos códigos das alternativas mostradas acima:

  1. Conversão de Tipo (Casting):

    • Na alternativa "C", o valor recebido do input é convertido para um inteiro com int(). Isso é essencial porque o input() em Python retorna uma string, e para fazer comparações numéricas, precisamos trabalhar com inteiros.
    • Na alternativa "D", não há conversão de tipo. O valor de tempo permanece como uma string, o que faz com que as comparações tempo >= 25 e tempo <= 45 não funcionem corretamente, pois estamos comparando strings com inteiros.
  2. Comparação Correta:

    • Na alternativa "C", a condição 25 <= tempo <= 45 verifica se o valor de tempo está dentro do intervalo desejado de 25 a 45 minutos.
    • Na alternativa "D", mesmo que a conversão de tipo estivesse correta, a condição tempo >= 25 and tempo <= 45 está invertida. Deveria ser 25 <= tempo <= 45 para verificar corretamente o intervalo.

Portanto, o erro principal na alternativa "D" é a falta de conversão do valor de input para inteiro, o que impede a comparação correta. Por isso, a alternativa "C" está correta.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Olá Armano! Beleza?

Percebi algo assim na "D" tal como você me disse de comparação entre strings e inteiros, porém ignorei já que foquei nos sinais matemáticos. Mas o que me intriga é justamente isso: o intervalo. É esquisito que, se o exercício pede um valor entre 25 e 45 minutos (incluindo 25 e 45), então tem que ser 25,26,27,28,29,30... 45. Ou seja igual ou maior que 25 e igual ou menor que 45 sinais >, < respectivamente. Nesse caso, então, só uma alternativa deveria estar correta, pois os sinais estariam errados ou trocados, a menos que há uma regra na programação que isso não se aplica (como, em uma lista, o zero/0 sempre é o primeiro item e não o 1, como falamos na linguagem coloquial ou falada).

Agradeço a atenção

Opa, Nicholas! Peço desculpa pela demora em retornar.

Entendo o seu ponto, mas imagino que você está interpretando a condição if 25 <= tempo <= 45: de forma errada. Em Python, essa condição é avaliada corretamente porque a linguagem permite a comparação encadeada, onde a expressão 25 <= tempo <= 45 é interpretada como:

  1. Primeira Comparação: Verifica se 25 <= tempo. Isso significa que a variável tempo deve ser maior ou igual a 25.

  2. Segunda Comparação: Verifica se tempo <= 45. Isso significa que a variável tempo deve ser menor ou igual a 45.

Essas duas comparações são combinadas usando uma lógica de conjunção, que exige que ambas as comparações sejam verdadeiras para que a condição inteira seja verdadeira. Em outras palavras, a expressão completa verifica se o valor de tempo está dentro do intervalo fechado [25, 45].

Espero ter esclarecido e bons estudos!

Fala Armando! Tranquilo?

Cara, não esquenta com relação ao tempo de resposta, pois cada um tem suas agendas e compromissos.

Acho que isso: " Em outras palavras, a expressão completa verifica se o valor de tempo está dentro do intervalo fechado [25, 45]." pode ilustrar melhor; nesse sentido acredito que as váriáveis devem ter sido ajustadas anteriormente, certo?

Abraços!