Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Resolução de Atividades - 14 Contador de cédulas únicas

def contador_notas (valor_saque):

    """ Atribuição: contar e exibir quantas notas de cada cédula o usuário precisa receber.

        Entrada: Parágrafo único - Valor do saque.
        Saída: Parágrafo único - Dicionário de notas a distribuir.
    """

    dicionario_notas = {"R$100": 0, "R$50": 0, "R$20": 0, "R$10": 0, "R$5": 0, "R$2": 0}
    
    while valor_saque > 0:

        if valor_saque // 100 >= 1:

            dicionario_notas ["R$100"] += 1
            valor_saque -= 100

        elif valor_saque // 50 >= 1:

            dicionario_notas ["R$50"] += 1
            valor_saque -= 50

        elif valor_saque // 20 >= 1:

            dicionario_notas ["R$20"] += 1
            valor_saque -= 20

        elif valor_saque // 10 >= 1:

            dicionario_notas ["R$10"] += 1
            valor_saque -= 10
        
        elif valor_saque % 5 == 0:

            dicionario_notas ["R$5"] += 1
            valor_saque -= 5

        elif valor_saque // 2 >= 1:

            dicionario_notas ["R$2"] += 1
            valor_saque -= 2

        else:

            print ("\nO valor do saque não pode ser processado, pois faltaria notas. Por favor, insira um valor válido.")
            break

    return dicionario_notas

def main():

    while True:

        print ("\n\n\nOlá! Seja bem-vindo ao setor de saques do banco X.")

        try:
        
            escolha_usuario = int (input ("\n1 - Saques \n2 - Sair \n\nQual opção deseja escolher?\nR: ").strip (" "))

            if escolha_usuario == 1:
                
                valor_saque = int (input ("\nQual é o valor do saque? \nR: R$").strip (" "))

                if valor_saque % 2 == 0 or valor_saque % 5 == 0:

                    resultado = contador_notas (valor_saque)

                    print ("\nO valor de notas a serem distribuídas é: ")

                    for nota, quantidade in resultado.items():  
                        
                        #Método items() para iterar sobre os pares chave-valor do dicionário. É usado em dicionários para acessar tanto as chaves quanto os valores durante a iteração.

                        # A ordem é a mesma do dicionário. Nota assume o valor da chave e quantidade assume o valor ao lado da chave.
                        if quantidade > 0:

                            print (f"{quantidade}x nota(s) de {nota}")

                    input ("Digite qualquer tecla para continuar: ")

                elif valor_saque is None:

                    print ("\nAtenção, o valor não pode ser vazio!")

                else:

                    print ("\nO valor não é válido. Insire apenas números pares!")
            
            elif escolha_usuario == 2:

                print ("\nObrigado por utilizar nossos serviços. Volte sempre!")
                break

            elif escolha_usuario is None:

                print ("\nPor favor, digite um número válido")
                input ("Aperte qualquer tecla para continuar: ")

            else:

                print ("\nOpção inválida. Por favor, escolha uma opção válida.")
                input ("Aperte qualquer tecla para continuar: ")

        except ValueError:

            print ("\nErro. Digite apenas números.")
            input ("Digite qualquer tecla para continuar: ")

main()
1 resposta
solução!

Oi, Victor! Como vai?

Você organizou bem a solução, usando funções, dicionário para guardar as cédulas e o método items() para exibir somente as notas usadas.

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