Jump to content
santans

Comando RANGE não gera lista como deveria segundo a documentação do site da python

Recommended Posts

Olá, gostaria de saber se houve algum tipo de alteração no função embutida do python range.

O problema é o seguinte quando eu chamo a função e digito:

>>>RANGE (5)

O resultado que recebo é o seguinte:

>>>RANGE (0, 5)

Por favor poderiam me dizer se fiz algo errado ou se alteraram as propriedades dessa função.

Agradeço desde ja quem puder ajudar.

Share this post


Link to post
Share on other sites

O comando range é um objeto. Para você poder "ver" o que ele produz é necessário transforma-lo em uma lista, assim:

list(range(5))

Se você usar o range dentro de um for, por exemplo, não é necessário (e muito menos aconselhável) transformar em uma lista como acima.

 

O objeto range é assim para consumir pouca memória, independente do tamanho da sequência, diferentemente das listas e tuplas que quanto maiores, mais memória consomem. O range só armazena na memória os valores passados por argumento e retorna os resultados conforme necessário.

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 flands
      Pessoal, bom dia!
       
      Estou tentando ler o conteúdo de um arquivo binário em Python para montar um dicionário, mas ao atingir o final do arquivo o programa está "voando" e não estou conseguindo capturar a exceção. Quando faço o debug, vejo que ele inclui os dados no dicionário corretamente, mas ao chegar na última posição do arquivo, o comando pickle.load(arquivo) "voa" e nenhuma outra linha de código após o while é executada. Nem o comando arquio.close() é executado.
      Abrindo o arquivo .dat em um bloco de notas, a exibição dele é semelhante ao seguinte trecho:
      S'001' p0 .S'Toninho Silva' p0 .S'Prefeito' p0 .S'Tijuca' p0 .S'2300' p0 . O código que lê do arquivo binário, grava no dicionário e, ao final, exibe na tela o resultado (que é parte do conteúdo do dicionário) segue abaixo:
      try: dic_votos_candidato = dict() arquivo = open('eleicoes.dat', 'rb') while arquivo: soma = 0 cod_candidato = pickle.load(arquivo) nome_candidato = pickle.load(arquivo) cargo = pickle.load(arquivo) regiao = pickle.load(arquivo) num_votos = pickle.load(arquivo) if dic_votos_candidato.get(nome_candidato): soma = int(dic_votos_candidato[nome_candidato]) soma = soma + int(num_votos) dic_votos_candidato[nome_candidato] = soma else: dic_votos_candidato[nome_candidato] = int(num_votos) arquivo.close() for chave in dic_votos_candidato.keys(): print chave, dic_votos_candidato[chave] except IOError: print "Erro ao abrir o arquivo. Verifique se o arquivo foi criado." print "Caso o arquivo ainda nao exista, use a opcao 1 do menu principal para cria-lo." exit() finally: opcao = raw_input('\nPara continuar, digite a opcao desejada: ') trata_listar(opcao) Desde já agradeço a ajuda!
    • By r1que
      como camuflar a url dentro do arquivo e colocar em formato .pyo alguem sabe ?
    • By Augustomesquita
      Bom dia pessoal!
      Vocês também estão programando em primeira pessoa? Recentemente escrevi este artigo e gostaria de compartilhar a ideia com vocês.
      Pare de programar em primeira pessoa!
    • By Rengavitp
      Boa noite Pessoal,
       
      Estou tentando implementar um projeto em python, mas comecei a aprender python agora e estou tendo dificuldade em fazer comandos sql com ele. No código abaixo sempre recebo a mensagem de erro: 
      cursor.execute(sql,valor) File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 210, in execute query = query % args TypeError: not all arguments converted during string formatting  
      o código é este abaixo, se eu passar um valor fixo funciona normal, mas colocando valor dinamico nao vai...
      con = MySQLdb.connect(host="192.168.0.10, port=3306 user="@@@@", passwd="@@@@@@@@", db="acessos") cursor = con.cursor() valor = ('teste') sql = "insert into registros_acesso values (%s)" cursor.execute(sql,valor) con.commit() con.close() Alguém pode me dar uma ajuda?
    • By SSO990
      Escrever um programa que leia um número não determinado de valores e calcule a média aritmética dos valores lidos, a quantidade de valores positivos, a quantidade de valores negativos e o percentual de valores negativos e positivos. A leitura deve parar quando o número informado for 9999. Mostre os resultados. 
×

Important Information

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