Jump to content

Olá, preciso de ajuda neste codigo Python. Sou grato por quem ajudar e explicar


rato

Postagens Recomendadas


mais_de_1000 = 0
total_pagar = 0
produto_mais_barato = ''
preco_mais_barato = 0

while True:
    print('---FORD ATACADISTA---')
    produto = str(input('Produto: '))
    preco = int(input('Preço: '))
    total_pagar += preco # Total a pagar
#Quantos custam mais de R$1.000
    if preco > 1000:
        mais_de_1000 += 1
#Qual o mais barato e qual o seu preço
    preco_mais_barato = preco
    if preco < preco_mais_barato: # None
        preco_mais_barato = preco
        produto_mais_barato = produto
#Quer continuar?
    continuar = ' '
    while continuar not in 'SN':
        continuar = str(input('Quer continuar? [S/N]')).upper()[0]
        if continuar != 'S' and 'N':
            print('Erro. Tente novamente')
            continue

    if continuar == 'S':
        continue
    else:
        break
# Prints
if preco_mais_barato is not None:
    print(f'Total a pagar: R${total_pagar}')
    if mais_de_1000 > 1:
        print(f'{mais_de_1000} produtos custam + de R$1.000')
    elif mais_de_1000 == 0:
        print('Nenhum produto custa + de R$1.000')
    else:
        print(f'{mais_de_1000} produto custa + de R$1.000')
    print(f'O produto mais barato foi {produto_mais_barato} custando R${preco_mais_barato}')
else:
    print('Nenhum produto foi inserido.')

O problema está em fazer o codigo pegar o nome do produto mais barato e seu preço, eu tentei de tudo, e não acho uma maneira para fazer isso. E me recuso a utilizar o ChatGPT... não posso ficar dependente  " 

#Qual o mais barato e qual o seu preço

    preco_mais_barato = preco

    if preco < preco_mais_barato: # None

        preco_mais_barato = preco

        produto_mais_barato = produto "

  • Curtir 1
Link to comment
Compartilhe em outros sites

O problema é que a atribuição do preço mais barato preco_mais_barato = preco é feita fora do bloco do loop que verifica se o preço atual é menor do que o preço mais barato já registrado. Isso faz com que preco_mais_barato sempre seja igual ao preço do último produto inserido.

Para corrigir isso, você precisa mover a atribuição do preço mais barato para dentro do bloco de condição que verifica se o preço atual é menor do que o preço mais barato já registrado. Aqui está como você pode fazer isso:

 

mais_de_1000 = 0
total_pagar = 0
produto_mais_barato = ''
preco_mais_barato = 0

while True:
    print('---FORD ATACADISTA---')
    produto = str(input('Produto: '))
    preco = int(input('Preço: '))
    total_pagar += preco # Total a pagar
    # Quantos custam mais de R$1.000
    if preco > 1000:
        mais_de_1000 += 1
    # Qual o mais barato e qual o seu preço
    if preco_mais_barato == 0 or preco < preco_mais_barato:
        preco_mais_barato = preco
        produto_mais_barato = produto
    # Quer continuar?
    continuar = ' '
    while continuar not in 'SN':
        continuar = str(input('Quer continuar? [S/N]')).upper()[0]
        if continuar != 'S' and 'N':
            print('Erro. Tente novamente')
            continue

    if continuar == 'S':
        continue
    else:
        break

# Prints
if preco_mais_barato != 0:
    print(f'Total a pagar: R${total_pagar}')
    if mais_de_1000 > 1:
        print(f'{mais_de_1000} produtos custam mais de R$1.000')
    elif mais_de_1000 == 0:
        print('Nenhum produto custa mais de R$1.000')
    else:
        print(f'{mais_de_1000} produto custa mais de R$1.000')
    print(f'O produto mais barato foi {produto_mais_barato} custando R${preco_mais_barato}')
else:
    print('Nenhum produto foi inserido.')

 

A atribuição do preço mais barato e do produto mais barato é feita dentro do bloco de condição if preco_mais_barato == 0 or preco < preco_mais_barato:, garantindo que só será atribuído um novo preço mais barato se ele for menor que o preço já registrado como o mais barato. Isso deve resolver o problema que você estava enfrentando.

  • Ajudou! 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...