Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resultado diferente do esperado

Boa noite,

Escrevi o programa teve copa, a principio é impresso corretamente, todos os anos que tiveram copas. Eu gostaria que ao final, também fosse impresso a quantidades de copas, até o ano informado. Porém, a resposta final, mostra: Houveram 1539.5 copas até 2022. Estou com essa dúvida, onde está a o erro?

print ("***Teve Copa***")

copa_inicial = 1930

limite = input ("Digite o ano de pesquisa")
limite = int (limite)

while (copa_inicial <= limite):
    print ("Teve copa em:", copa_inicial )

    copa_inicial = copa_inicial +4
else:


    total_copas = limite - 1930 / 4
    print ("Houveram", total_copas, "copas até",limite)
2 respostas
solução!

Olá, Otacilio. Tudo bem?

Para imprimir corretamente a quantidade de copas até o ano informado você precisa alterar a forma que você está calculando esse total.

Aonde está escrito:

total_copas = limite - 1930 / 4

Você deve substituir por:

total_copas = int((limite - 1930) / 4 + 1)

O uso de parênteses entre 'limite - 1930' é necessário porque existe uma ordem de prioridade na execução de operações matemáticas. Divisões e multiplicações são feitas antes de somas e subtrações. Para fazer com que essa subtração seja feita antes da divisão por 4, devemos colocar esse trecho entre parênteses.

Além disso, para que o resultado seja o esperado precisamos somar 1 ao fim dessa conta. Caso contrário, o resultado sempre será 1 a menos do que estamos esperando.

Por fim, a divisão feita com o operador '/' irá resultar em um número com vírgula. Já que a quantidade de copas sempre será um número inteiro, devemos fazer algo para que o resultado seja um inteiro. Então convertamos o resultado para um inteiro, utilizando o 'int()'.

Espero que sua dúvida tenha sido solucionada.

Abraços. Bons estudos!

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

Oi Gabrielle boa tarde, Estou bem, obrigado!

Agora eu entendi esse pequeno detalhe que faltava. Valeu pela dica! abraços!