1
resposta

Fiz a tarefa do sistema de biblioteca.

Boa tarde professor, fiz a tarefa e me dei a liberdade de experimentar usando funçoes, que estou estudando no momento, poderia me dar um feedback?


#usuario precisa: ser maior de 12, ter carteira e nao ter multas // se ele for estudante ou nao, prazo diferente.
#emprestimo: verificar se o usuario é estudante ou nao pois o prazo é maior
#calculo de multa: dias de atraso, valor da multa: por dia, acrescimo se passar de 7 dias, estudante tem desconto de 10%
#renovação: verificar se a pessoa tem livro em atraso, numero de renovação no maximo 2.


valor_base_de_livro = 20
nome_cliente = input('Qual seu nome? ')
idade = int(input('Qual sua idade? '))
carteirinha = input('Voce possui carterinha? (S/N) ').upper().strip()[0]
estudante = input('Voce é estudante? (S/N) ').upper().strip()[0]
atraso = input('Voce possui algum livro em atraso? (S/N) ').upper().strip()[0]
quantidade_de_tempo = int(input("Se sim, digite quantos dias esta em atraso, caso nao tenha nenhum livro em atraso, digite '0'? "))


def validando_identidade(carteira, anos):
    tem_carteira = (carteira == 'S')
    anos_validado = (anos >=12)                 
    if tem_carteira and anos_validado:
        return 'Cadastro validado!'
    else:
        return 'Voce nao possui carteirinha, ou nao está apto para uma no momento!'


def emprestimo(aluno):
    e_aluno = (aluno == 'S')
    if e_aluno:
        return 'Seu livro esta disponivel por 7 dias!'
    else:
        return 'Seu livro esta disponivel por 5 dias!'
    

def pode_ou_nao_alugar(multa):
    if multa == 'N':
        return True
    else:
        return False

def calculo_de_multas(tempo, valor_livro, aluno):
    e_aluno = (aluno == 'S')
    if tempo >= 7 and e_aluno:
        acrescimo = valor_livro * (10 / 100)
        return f'Seu valor a pagar é {valor_livro + acrescimo}'
    
    elif tempo < 7 and e_aluno:
        acrescimo = valor_livro * (5 / 100)
        return f'Seu valor a pagar é {valor_livro + acrescimo}'
    
    elif tempo >= 7 and not e_aluno:
        acrescimo = valor_livro * (20 / 100)
        return f'Seu valor a pagar é {valor_livro + acrescimo}'

    elif tempo < 7 and not e_aluno:
        acrescimo = valor_livro * (15 / 100)
        return f'Seu valor a pagar é {valor_livro + acrescimo}'
    
    else:
        return 'Valor invalido! Digite um numero correto de dias em atraso! '
        


usuario_validado = (validando_identidade(carteirinha, idade) == 'Cadastro validado!')
print(validando_identidade(carteirinha,idade))
escolha = 0

if usuario_validado:
    while escolha != 4:
        painel = int(input('\nUsuaro Logado! Digite oque gostaria de fazer:\n1- Alugar um livro\n2- Calcular multa pendente\n3- Renovar livro\n4- Sair!\n'))

        if painel == 1:
            livro_alugar = input('Digite qual livro você quer alugar! ')
            if pode_ou_nao_alugar(atraso):
                alugado = emprestimo(estudante)
                print(alugado)
            else:
                print('Voce nao pode Alugar livros no momento, pois possue multas e atrasos')
        
        elif painel == 2:
            print('Processando calculo...')
            calculado = calculo_de_multas(quantidade_de_tempo, valor_base_de_livro, estudante)
            print(f'Valor calculado:\n{calculado}')
        
        elif painel == 3:
            quantidade = int(input('Digite: 1- Primeira vez alugando esse livro\n2- Renovando a 1 vez esse livro\n3- Renovando a 2 vez esse livro\n4- Renovando a 3 vez esse livro'))
            if quantidade <=2:
                if pode_ou_nao_alugar(atraso):
                    print('Livro alugado com sucesso!')
                else:
                    print('Infelizmente voce possue debitos em conta!')
            else:
                print('Você ja alugou esse livro mais que 2 vezes!')

        else:
            print('Saindo...')
            break
            
1 resposta

Oi, Alex! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Você estruturou bem o sistema usando funções, isso mostra que já está evoluindo além do básico. A separação de responsabilidades como validando_identidade, emprestimo e calculo_de_multas deixou o código mais organizado e fácil de entender. Um ponto que chama atenção é o uso de condições bem definidas para cada regra de negócio, o que é muito importante em sistemas desse tipo.

Continue assim!

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura

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