1
resposta

[Sugestão] Menu de interação para escolha

O exercício demonstrado é pratico, mas quis deixar que o usuario decida o que verificar então coloquei um menu para escolha do documento:

from cpfcnpj import documento
opc = "0"
while opc != "3":
    opc = input("### MENU ###:\n(1) CPF\n(2) CNPJ\n(3) SAIR\nEscolha a validação:")
    if opc == "1":
        cpf_usuario = input("Digite o CPF a ser verificado sem pontos e traço: ")
        obj_cpf = documento.cria_documento(str(cpf_usuario),"cpf")
        print("O CPF {} é válido.". format(obj_cpf))
    elif opc == "2":
        cnpj_usuario = input("Digite o CNPJ a ser verificado sem pontos e traço: ")
        obj_cnpj = documento.cria_documento(str(cnpj_usuario), "cnpj")
        print("O CNPJ {} é válido.".format(obj_cnpj))
    elif opc == "3":
        print("Fechando aplicação")
    else:
        raise ValueError("Opção escolhida é inválida!!")

e na factory utilizar o tipo do documento, para ai fazer toda a validação

class documento:

    @staticmethod
    def cria_documento(documento, tipoDocumento):
        if tipoDocumento == 'cpf':
            return DocCPF(documento)
        elif tipoDocumento == 'cnpj':
            return DocCNPJ(documento)
        else:
            raise ValueError ("Tipo de documento não encontrado!!")

Assim fica visualmente mais atrativo e a numeração fica tod por input do usuario, pensando numa aplicação mais prática. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá Gabriel, tudo bem com você?

Meus parabéns pela implementação do código inserindo um menu de interação para escolha do documento a ser validado, fico feliz que tenha feito o compartilhamento com a comunidade do fórum Alura. Sua dedicação e empenho é muito importante para o seu desenvolvimento e fixação do que está aprendendo.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software