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

[Sugestão] Gostaria de uma susgestão para melhorar

p1 = float(input('Informe o preço dos produto 1: '))
p2 = float(input('Informe o preço dos produto 2: '))
p3 = float(input('Informe o preço dos produto 3: '))

maior = p1 
if p2 > maior:
  maior = p2 
if p3 > maior:
  maior = p3

menor = p1 
if p2 < menor:
  menor = p2
if p3 < menor:
  menor = p3

print(f'O maior preço é {maior}')
print(f'O menor preço é {menor}')
2 respostas
solução!

Olá, Stenio! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de estruturas condicionais simples para comparar preços, utilizou muito bem as variáveis de controle (maior e menor) para armazenar valores e ainda compreendeu a importância de analisar todas as possibilidades entre os valores inseridos.

Uma dica interessante para o futuro é usar as funções max() e min() do Python, que simplificam esse tipo de operação. Dessa forma:

p1 = float(input('Informe o preço do produto 1: '))
p2 = float(input('Informe o preço do produto 2: '))
p3 = float(input('Informe o preço do produto 3: '))

maior = max(p1, p2, p3)
menor = min(p1, p2, p3)

print(f'O maior preço é {maior}')
print(f'O menor preço é {menor}')

Resultado:

Informe o preço do produto 1: 23
Informe o preço do produto 2: 17
Informe o preço do produto 3: 42
O maior preço é 42.0
O menor preço é 17.0

Isso deixa o código mais legível e eficiente.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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

Olá, boa noite! Tudo bem?

Com um pouco do conhecimento que consegui através do curso "Python: montando minha primeira aplicação" aqui na Alura, recriei o código adicionando algumas melhorias.

Defini algumas funções com ações diferentes para que ficasse mais fácil de organizar e entender o código, criei um menu principal para que seja possível o cadastro de preços, além de poder listar os preços dos produtos já antes cadastrados. Coloquei a opção de análise de preços que utiliza da função max() e min(), mencionadas pelo Daniel Nogueira, para que com base na lista de preços cadastrados(opção 2) ele me retorne o maior preço e o menor preço dessa lista.

Espero ter ajudado! :)


preços = []

def tipo_de_texto(texto): # Essa função serve como a função print, posso escrever qualquer texto dentro do parênteses entre aspas quando for chamada.
    print(texto) 

def linha(): # Defini as linhas que ficam em torno do titulo e subtítulo
    linha = '*' * (len(str(tipo_de_texto)) - 24)
    print(linha) 
    
def titulo_menu(): # Defini o título do menu
    os.system('cls')
    linha()
    tipo_de_texto('Bem vindo ao cadastro') 
    linha()

def menu(): # Criação das opções do menu.
    titulo_menu()
    print("\n1. Cadastrar preços")
    print("2. Listar preços")
    print("3. Análise de preços") # verificar a questão do maior e menor preço.
    print("4. Finalizar Cadastro\n")
    
    escolher_opção()
 
def sub_titulo(texto): # Definindo que cada subtítulo que for escrito venha com as linhas em cima e embaixo do texto.
    linha = '*' * (len((texto)))
    print(linha)
    print(texto)
    print(linha)
    
def escolher_opção(): # Função criada para que a opção escolhida do menu retorne uma ação.
    try:
        opçao = int(input('Escolha uma opção: '))
        
        if opçao == 1:
            cadastro()
        elif opçao == 2:
            listar_preços()
        elif opçao == 3:
            analisar_preços()
        elif opçao == 4:
            sair()
        else:
            print('nenhum opção correspondente')
            input('Aperte qualquer tecla para voltar ao menu principal: ')
            voltar_ao_menu()
    except:
        tipo_de_texto('Erro no programa\n')

def voltar_ao_menu(): # Volta pro menu.
    os.system('cls')
    menu()

def sair(): # Sai do programa.
    os.system('cls')
    tipo_de_texto('Cadastro Finalizado\n')

def cadastro(): # Recebe o preço que o usuário quer cadastra e adiciona a lista.
    os.system('cls')
    sub_titulo('Cadastro de itens')

    preço = float(input('\nDigite o preço do produto: '))
    preços.append(preço)
    print(f'O preço R${preço:.2f} foi cadastrado com sucesso no sistema!\n')
    
    input('Aperte qualquer tecla para voltar ao menu principal: ')
    voltar_ao_menu()

def listar_preços(): # Lista todos os preços cadastrados.
    os.system('cls')
    sub_titulo('Listando os preços')
    n = 0
    for preço in preços:
        n += 1
        print(f'{n}. R${preço}')
    
    input('Aperte qualquer tecla para voltar ao menu principal: ')    
    voltar_ao_menu()
       
def analisar_preços(): # Nessa função ela pega o maior e menor preços da lista e imprime da tela com o texto entre o print.
    os.system('cls')
    sub_titulo('Análise dos cadastrados.')
    maior_preço = max(preços)
    menor_preço = min(preços) 
    print(f'\n-O R${maior_preço} é o maior preço cadastrado\n')   
    print(f'\n-O R${menor_preço} é o menor preço cadastrado\n')
    
    input('Aperte qualquer tecla para voltar ao menu principal: ')    
    voltar_ao_menu()       
    
if __name__ == '__main__': # Ele chama a função Menu para que o programa possa rodar e executar as outras funções que são chamadas assim que a função Menu é executada.

    menu()