Jump to content
Tomaz Pontes

Diminuir algoritimo em Python

Recommended Posts

Ola pessoal, antes de tudo nao sou um usuario avancado de python, o que sei e o que preciso sao coisas basicas que envolvam lacos de repeticao e codigos simples para um trabalho de primeiro semestre de faculdade. Desenvolvi um programa de cadastros de funcionarios, porém um trecho do codigo de consulta ficou muito extenso, preciso de vossa ajuda e sugestoes para comprimi-lo. O arquivo esta aqui nesse post do Imgur:

https://imgur.com/a/6h0vRS9

Desde ja, obrigado 

Share this post


Link to post
Share on other sites
1 hora atrás, Tomaz Pontes disse:

https://imgur.com/a/6h0vRS9

 

Link ta quebrado amigo, poste o codigo.. fica mais fácil para ajuda-lo 

Share this post


Link to post
Share on other sites
10 horas atrás, igu disse:

 

Link ta quebrado amigo, poste o codigo.. fica mais fácil para ajuda-lo 

def consultar_funcionario():
    nome = ""
    sexo= ""
    cpf = ""
    dNasc = ""
    mNasc = ""
    aNasc = ""
    cargo = ""
    valorSalario = ""
    dCont = ""
    mCont = ""
    aCont = ""
    cont = 0
    print("Consultar Funcionário")
    cpfPesquisa = str(input("cpf: "))
    arquivo = open("cadastros.txt", "r")
    funcionario = arquivo.readlines()
    for linha in funcionario:
        while (linha[cont] != ','):
            nome += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            sexo += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            cpf += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            dNasc += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            mNasc += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            aNasc += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            cargo += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            valorSalario += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            dCont += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != ','):
            mCont += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != '\n'):
            aCont += linha[cont]
            cont += 1
        cont = 0
        if (cpf == cpfPesquisa):
            print(
                "\n NOME: {}\n SEXO: {}\n CPF: {}\n DATA DE NASCIMENTO: {}/{}/{}\n VALOR DO SALÁRIO: {}\n CARGO: {}\n DATA DE CONTRATAÇÂO: {}/{}/{}".format(
                    nome, sexo, cpf, dNasc, mNasc, aNasc, valorSalario, cargo, dCont, mCont, aCont))

Share this post


Link to post
Share on other sites

Já tentou fazer assim?

def consultar_funcionario():
    nome = ""
    sexo= ""
    cpf = ""
    dNasc = ""
    mNasc = ""
    aNasc = ""
    cargo = ""
    valorSalario = ""
    dCont = ""
    mCont = ""
    aCont = ""
    cont = 0
    print("Consultar Funcionário")
    cpfPesquisa = str(input("cpf: "))
    arquivo = open("cadastros.txt", "r")
    funcionario = arquivo.readlines()
    for linha in funcionario:
        while (linha[cont] != ','):
            nome, sexo, cpf, dNasc, mNasc, aNasc, cargo, valorSalario, dCont, mCont, aCont += linha[cont]
            cont += 1
        cont += 1
        while (linha[cont] != '\n'):
            aCont += linha[cont]
            cont += 1
        cont = 0
        if (cpf == cpfPesquisa):
            print(
                "\n NOME: {}\n SEXO: {}\n CPF: {}\n DATA DE NASCIMENTO: {}/{}/{}\n VALOR DO SALÁRIO: {}\n CARGO: {}\n DATA DE CONTRATAÇÂO: {}/{}/{}".format(
                    nome, sexo, cpf, dNasc, mNasc, aNasc, valorSalario, cargo, dCont, mCont, aCont))

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By mamotinho
      Olá, pessoal mais uma vez venho pedi a ajuda de vocês estou com um problema ao roda uma query que montei, eu sou iniciante na area e não tenho muito conhecimento então o codigo que fiz foi parte de meu conhecimento básico. bom o que eu quero resolver nessa query é o seguinte, eu quero consultar uma tabela e nela pega todos os registros com a a data vencida e lista ela dentro do while em seguida retornar dentro desse if o valor da coluna de cada uma exemplo de como fiz e ficou com loop infinito.

       
      declare @id int declare @getdate datetime select @id = IDCadastrado, @getdate = RegDate from BancoTeste.dbo.MinhaTabela where RegDate < getdate() while @id is not null begin select * from BancoTeste.dbo.MinhaTabela where IDCadastrado = @id end quando eu executo isso ai ele executa infinitamente o valor do primeiro registro repetidamente.
    • By Rodymb
      Bom dia!
      Estou fazendo um select em uma tabela de cupom fiscal e preciso que me mostre o operador do caixa e o supervisor que liberou a venda, que no caso é convênio.
      A consulta que montei é a seguinte:
       
      select  c.m00ad as CUPOM,
              c.m00ac as PDV,
              c.m02ak as VALOR,
              p.descricao as FINALIZADORA,
              c.m02ah as OPERADOR,
              f.nome as NOME_OP,
              c.m02ao as SUPERVISOR,
              f.nome as NOME_SUP
      from zan_m02 c inner join tab_funcionario f
      on c.m02ao = f.cod_funcionario
      inner join tab_finalizadora p
      on c.m02ai = p.cod_finalizadora
      where c.m00af = to_date('09/03/20','dd/mm/yy')
      and c.m00za = 3
      and c.m00ac = 9
      and c.m00ad = 379678
      group by c.m00ad,c.m00ac,c.m02ak,p.descricao,c.m02ah,f.nome,c.m02ao;
       
      A consulta me retorna o seguinte resultado:

       
      Como podem ver, repetiu o mesmo nome (operador e supervisor), sendo que o código é diferente.
       
      Isso acontece por que na tabela de funcionário o campo NOME serve para operador e supervisor e o que diferencia se é supervisor ou operador temos mais duas outras tabelas. A estrutura é assim:
       
      tab_funcionario -> temos o campo cod_funcionario e nome (todos os funcionários cadastrados são armazenados nessa tabela)
      tab_perfil -> temos os campos cod_perfil e descricao (todos os perfis cadastrados são armazenados nessa tabela)
      tab_perfil_funcionario -> temos os campos cod_funcionario e cod_perfil (tabela que relaciona as tabelas tab_funcionario e tab_perfil)
       
      A única coisa que preciso é que apareça no NOME_OP o nome do operador e não o nome do supervisor igual está aparecendo.
       
    • By Claudia França
      https://gestaotecc.com.br/ebook/nomedoarvio.pdf      ==== === =======> esse é o link do e-book 
       
      {"email":"Subscriber Already Exists","convertkit":"Inactive","drip":"Inactive","activeCampaign":"Inactive","campaignMonitor":"Inactive","getResponse":"Inactive","aweber":"Inactive","markethero":"Inactive","SendinBlue":"Inactive","MailPoet":"Inactive","ConstantContact":"Inactive","mailchimp":"Inactive","WebHook":"Inactive","database":"Subscriber Already Exists"}  =============> é o erro depois que preenche o formulário. Eu recebo os dados e preciso que o link do arquivo carregue direto. 

      https://gestaotecc.com.br/wp-admin/admin-ajax.php?action=ulpb_formBuilderEmail_ajax               é o caminho de  onde eu devo por o código mas não sei exatamente onde pr as instruções. 
       
       
      ou aceito alguma outra ideia para resolver o problema para quando o usuário preencher o formulário o arquivo de downloads carregar automaticamente. 
    • By marcosAUG
      Crie uma classe que defina um vetor no plano. Crie métodos para permitir obter o versor, módulo e somar ao vetor uma série de outros vetores (usando *args), calcular o produto escalar e produto vetorial

      Uma duvida é de como usar a função *args nos métodos que o enunciado pede, e se tenho que mudar os métodos e atributos anteriores?
      class Vetor: def __init__(self, x, y, *args): self.__x = x self.__y = y def modulo(self): return (self.__x**2 + self.__y**2 )**(1/2) def versor(self): v1 = (self.__x)/(self.__x**2 + self.__y**2 )**(1/2) v2 = (self.__y)/(self.__x**2 + self.__y**2 )**(1/2) return v1, v2 def soma(self): pass def produto_escalar(self): pass def produto_vetorial(self): pass vetorA = Vetor(4,3) print("Modulo: ", vetorA.modulo()) print("Versor: ", vetorA.versor()) print("Soma: " )  
    • By DoVale
      Olá,
       
      To concluindo uma aplicação com django que gera certificado em pdf..
       
      Tava tudo certo até fazer deploy no heroku e ter que criar um s3 na amazom para colocar os arquivos staticos
       
      Tenho um html com o template do certificado que recebe os dados dos alunos tranquilo, o background (template do certificado) não está carregando, quando estava localhost, com o caminho da pasta, tava funcionando, mas agora não.
       
      A tag img funciona tranquilamente, mas o background por css não.
      Aqui o código do template:
      <meta charset="utf-8" /> {% load static %} <style type="text/css"> @page { size: 1122.52px 1587.4px ; /*size: A4 landscape;*/ margin: 0cm; background-image: url({{bg_front}}); height: 1588; } </style> <page backimgx="{{bg_front}}"> <!-- <page_header> ... </page_header> <page_footer> ... </page_footer> --> <img src="{{bg_front}}"> <div class="front"><br><br> <p style="margin-top: 35px; margin-left: 900px; font-size: 22px; line-height: 150%;"> <b text-align='center'>{{cpf}}</b> </p> <br /><br /><br /><br /><br /><br /><br /><br /><br /> <!-- <center><h4 style="font-size: 23px;">Certificado</h4></center> --> <p style="margin: 60px ;margin-left: 140px; font-size: 22px; line-height: 150%;">{{text_front}}</p> </div> <p style="margin-top: 1120px ;margin-left: 518px; font-size: 22px; line-height: 150%;"> {{cpf}} </p> </div> </page> </div> Abaixo o trecho do código em python 
      class ViewPDF(View): def get(self, request, *args, **kwargs): data = {} pdf = True if kwargs['pk']: # # CARREGAR DADOS DO ALUNO # try: participant = Participant.objects.get(pk=kwargs['pk']) print(participant.cpf) if participant.name: certificate = Certificate.objects.get(pk=participant.certificate.pk) pathBack = str(certificate.template.template_back.url) pathFront = str(certificate.template.template_front.url) print(pathFront) # # CONFIGURA OS BACKGROUNDS E TEXTO # data['bg_front'] = pathFront data['bg_back'] = pathBack setting = certificate.template.settings start_date = datetime.strftime(certificate.start_date,'%d/%m/%Y') end_date = datetime.strftime(certificate.start_date,'%d/%m/%Y') data['text_front'] = setting.replace('<<nome>>',participant.name).replace('<<cpf>>',str(participant.cpf)).replace('<<ch>>',str(certificate.ch)).replace('<<instituicao>>',str(certificate.institution)).replace('<<DataInicio>>',start_date).replace('<<DataFim>>',end_date) data['cpf'] = participant.cpf pdf = render_to_pdf('app_certificates/body_front_pdf.html', data) return HttpResponse(pdf, content_type='application/pdf') except TypeError as e: return HttpResponse(e) Já tentei várias coisas, o problema me parece ser com o css, pois funciona na tag img
       
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.