2
respostas

[Dúvida] Questão 4 (Estruturas Condicionais)

Na questão 4, está pedindo para comparar os valores e ver quais seriam os valores mais altos e mais baixos. Até aí, consegui fazer o código certinho, mas fiquei pensando como poderia ser colocado caso dois ou todos os valores fossem iguais, tentei fazer e testei o seguinte código:

valor_ano1 = float(input('Digite o valor do primeiro ano: '))
valor_ano2 = float(input('Digite o valor do segundo ano: '))
valor_ano3 = float(input('Digite o valor do terceiro ano: '))

if valor_ano1 == valor_ano2 == valor_ano3:
    print(f"Todos os valores são iguais: R$ {valor_ano1}.")
elif valor_ano1 == valor_ano2 or valor_ano1 == valor_ano3 or valor_ano2 == valor_ano3:
    print("Dois valores são iguais.")
else:
    maior = valor_ano1
    if valor_ano2 > maior:
        maior = valor_ano2
    if valor_ano3 > maior:
        maior = valor_ano3

    menor = valor_ano1
    if valor_ano2 < menor:
        menor = valor_ano2
    if valor_ano3 < menor:
        menor = valor_ano3

    print(f'O preço mais alto foi de R$ {maior}.')
    print(f'O preço mais baixo foi de R$ {menor}.')

Fazendo dessa forma, me retornava alguma dessas três saídas: 1° - Todos os valores são iguais. 2° - Dois valores são iguais. 3° - O preço mais alto foi de R$ X. O preço mais baixo foi de R$ Y.

Porém a minha ideia inicial seria que a saída dos valores semelhantes (caso houvesse) ficasse junto à saída das prints de maior e menor valor. Ex.: Dois valores são iguais. O preço mais alto foi de R$1000.00. O preço mais baixo foi de R$500.00.

Acredito que o problema esteja no else, mas não consegui pensar em como alterar. Conseguem me ajudar? =D

2 respostas

Tente dessa forma:

valor_ano1 = float(input('Digite o valor do primeiro ano: ')) valor_ano2 = float(input('Digite o valor do segundo ano: ')) valor_ano3 = float(input('Digite o valor do terceiro ano: '))

Determinar maior e menor valores

valores = [valor_ano1, valor_ano2, valor_ano3] maior = max(valores) menor = min(valores)

Verificar valores iguais

valores_unicos = set(valores) if len(valores_unicos) == 1: mensagem_iguais = f"Todos os valores são iguais: R$ {valores[0]:.2f}." elif len(valores_unicos) == 2: mensagem_iguais = f"Dois valores são iguais." else: mensagem_iguais = "Não há valores iguais."

Exibir resultados

print(mensagem_iguais) print(f"O preço mais alto foi de R$ {maior:.2f}.") print(f"O preço mais baixo foi de R$ {menor:.2f}.")

valor_ano1 = float(input('Digite o valor do primeiro ano: '))
valor_ano2 = float(input('Digite o valor do segundo ano: '))
valor_ano3 = float(input('Digite o valor do terceiro ano: '))

maior = valor_ano1
menor = valor_ano1

# Verificação do maior valor
if valor_ano2 > maior:
    maior = valor_ano2
if valor_ano3 > maior:
    maior = valor_ano3

# Verificação do menor valor
if valor_ano2 < menor:
    menor = valor_ano2
if valor_ano3 < menor:
    menor = valor_ano3

# Verificação dos valores iguais
iguais = []
if valor_ano1 == valor_ano2 or valor_ano1 == valor_ano3:
    iguais.append(valor_ano1)
if valor_ano2 == valor_ano3 and valor_ano2 not in iguais:
    iguais.append(valor_ano2)

if len(iguais) == 1:
    print(f"Dois valores são iguais: R$ {iguais[0]:.2f}.")
elif len(iguais) > 1:
    print(f"Todos os valores são iguais: R$ {iguais[0]:.2f}.")
print(f"O preço mais alto foi de R$ {maior:.2f}.")
print(f"O preço mais baixo foi de R$ {menor:.2f}.")