Ir para conteúdo
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 

Compartilhar este post


Link para o post
Compartilhar em outros 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 

Compartilhar este post


Link para o post
Compartilhar em outros 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))

Compartilhar este post


Link para o post
Compartilhar em outros 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))

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por Sandson Costa
      Pessoal eu tenho um trabalho na qual eu devo reproduzir a seguinte tabela: Eu não tenho muito conhecimento em python e estou dando o meu melhor para tentar reproduzir ela. Mas estou conseguindo retornar somente desta maneira. Minhas dúvidas são as seguintes:
      O mês eu não sei como colocar na ordem crescente e nem retirar o 0 no final. Do saldo inicial ao saldo final eu consigo imprimir, o problema é que ele imprime até 0. Não sei a lógica da prestação. Não sei a lógica dos Juros (quadro verde). Não sei a lógica dos juros mensais (quadro vermelho). Não sei como imprimir o saldo final (que nesse caso é o inverso do saldo inicial). Segue abaixo o meu código:
      # enconding: utf-8 ######################################## # VERSÃO UTILIZADA: Python 3.6.5 # # DISCIPLINA: Introdução à Programação # ######################################## ######################################### # Informações de entrada dada pelo user # ######################################### import os valor_financiamento = float ( input ("1. Informe o valor a ser financiado: ")) os.system("cls") prazo = int ( input ("2. Informe o prazo de quitação do financiamento (em meses): ")) os.system("cls") taxa_juros_anual = float (input ("3. Informe a taxa de juros anual (em %): ")) os.system("cls") # Início da programação e cálculo # USO DO SISTEMA SAC # O cálculo da amortização é realizado pelo valor do financiamento divido pela quantidade de meses amortizacao = valor_financiamento / prazo saldo_devedor = valor_financiamento - amortizacao taxa_mensal = taxa_juros_anual / prazo juros_mes = (taxa_juros_anual - 1 + 1 ) * amortizacao * taxa_mensal prestacao = amortizacao + juros_mes #valor_financiamento = str (valor_financiamento).replace('.',',') #print ("AMORTIZAÇÃO: R$ %.2f" % amortizacao) #print ("VALOR DO FINANCIAMENTO: R$ %.2f\n\n" % valor_financiamento) print ("\t FINANCIAMENTO = R$ %.2f \t MESES: %i meses \t TAXA: %i%% ano (%.f%)" % (valor_financiamento, prazo, taxa_juros_anual, juros_mes)) print ("\t","-"*80,"\n") print ("\t MÊS\tSALDO INICIAL\tPRESTAÇÃO\tAMORTIZAÇÃO\tJUROS\tSALDO FINAL") print ("\t ---\t-------------\t---------\t-----------\t-----\t-----------") print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao)) for p in range(prazo): while (valor_financiamento > 1): valor_financiamento = valor_financiamento - amortizacao # Saldo devedor prazo = prazo - 1 # Referência do mês saldo_devedor = valor_financiamento - amortizacao saldo_final = saldo_devedor - amortizacao print ("\t%4.i \t %12.2f \t\t\t %10.2f" % (prazo, valor_financiamento, amortizacao)) #% valor_financiamento) #print (prazo) Essa questão é uma questão de financiamento imobiliário segundo o sistema SAC:
      Questão
      Construa um programa que gere uma tabela com os valores das prestações mensais de um financiamento, discriminando os valores referentes à amortização e aos juros a serem pagos até a amortização total do financiamento. Este programa deve apresentar um menu de opções e pedir as seguintes informações ao usuário: Valor financiado, Prazo (em meses) para quitação do financiamento, Taxa de juros anual (em percentual) e o Sistemática de pagamento mensal das prestações (Sistema de Amortização Constante – SAC ou Sistema PRICE - ver nota explicativas em anexo). Funcionalidades adicionais serão bem vindas!
      O valor de um financiamento deve ser restituído (amortizado) ao financiador em certo período de tempo, acrescido dos juros. Amortizar significa reduzir o valor da dívida, ou seja, pagar uma parte da dívida periodicamente para que ela reduza de tamanho até a sua eliminação. Como a dívida implica em cobrança de juros, para amortiza-la é necessário que a prestação seja maior que os juros cobrados em cada período, ou seja, AMORTIZAÇÃO = PAGAMENTO – JUROS (o valor amortizado é o que sobra depois de descontados os juros). Os juros só incidem sobre o saldo devedor, onde SALDO DEVEDOR = DÍVIDA INICIAL – VALOR AMORTIZADO. As formas de amortizar financiamentos são denominados de “Sistemas de Amortização”.
      Sistema de Amortização Constante (SAC): Neste sistema, o saldo devedor é reembolsado periodicamente em valores de amortização iguais. Desta forma, o valor das prestações é decrescente, já que os juros diminuem a cada prestação. O valor da amortização é calculado dividindo-se o valor do principal (valor do financiamento) pelo número de períodos de pagamento, ou seja, de parcelas. Assim,
       Valor da amortização: AMORTIZAÇÃO = PRINCIPAL / N
       Valor dos juros no mês T: JUROST = (N - T + 1) * AMORTIZAÇÃO * TAXA
       Valor da parcela em T: PRESTAÇÃOT = AMORTIZAÇÃO + JUROST
      onde: PRINCIPAL é o valor do financiamento, N é o número de meses do financiamento, T denota o mês em questão e TAXA é a taxa de juros mensal (que deve ser obtida a partir da taxa anual).
      Se alguém puder me ajudar pelo menos com a lógica. Já é um grande começo.
    • Por Fernando Bastos
      # Function: Probability Matrix   def city_probability (attractiveness, thau, city = 0, alpha = 1, beta = 2, city_list = []):   probability = pd.DataFrame(0, index = attractiveness.index, columns = ['atraction','probability','cumulative_probability'])   for i in range(0, probability.shape[0]):   if (i+1 not in city_list):   probability.iloc[i, 0] = (thau.iloc[i, city]**alpha)*(attractiveness.iloc[i, city]**beta)   for i in range(0, probability.shape[0]):   if (i+1 not in city_list and probability['atraction'].sum() != 0):   probability.iloc[i, 1] = probability.iloc[i, 0]/probability['atraction'].sum()   if (i == 0):   probability.iloc[i, 2] = probability.iloc[i, 1]   else:   probability.iloc[i, 2] = probability.iloc[i, 1] + probability.iloc[i - 1, 2]       if (len(city_list) > 0):   for i in range(0, len(city_list)):   probability.iloc[city_list-1, 2] = 0.0       return probability
       
      Obrigado pessoal!
    • Por abrantes004
      x = []
      y = []
      posicao = 3
      for i in range (posicao):
          x.append (int(input("Digite valor de posicao x: ")))
      for i in range (posicao):    
          y.append (int(input("Digite valor de posicao y: ")))
          cont = i + 1    
      if cont == posicao:         
          z = [x[0]+y[0], x[1]+y[1], x[2]+y[2]]
          print (z)
          Em vez de ficar sempre "Digite valor de posicao x: " ou "Digite valor de posicao y: ", queria colocar "Digite valor de posicao x1: ",
      "Digite valor de posicao x2: " etc..
    • Por Matheus Palma
      Resolvi criar um discord especializado e focado em python para a comunidade se ajudar! 
      Nao vi nenhum discord brasileiro oficial, vamos crescer rapaziada.   https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3 https://discord.gg/naFC5m3
    • Por Dexo
      Bom, tem um jogo que eu queria jogar com alguns amigos e nós conseguimos o download dele, porém é em python, mas é diferente do PHP que é só você jogar os arquivos no Web Server.

      Já procurei um monte de tutorial na internet e ainda não consigo hospedar isso, alguém poderia me ajudar?
      Obrigado.

      O jogo é esse: https://github.com/heidi666/WorldsAtWar
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.