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 Lucas_R22
      Bom dia, segue o exercício no qual estou com duvida ao faze-lo,
       
      Escreva um programa que leia dois números. Imprima a divisão inteira do primeiro pelo segundo, assim como o resto da divisão. Utilize apenas os operadores de soma e subtração para calcular o resultado. Lembre-se de que podemos entender o quociente da divisão de dois números como a quantidade de vezes que podemos retirar o divisor do dividendo. Logo, 20 ÷ 4 = 5, uma vez que podemos subtrair 4 cinco vezes de 20.
    • By edmin
      Olá pessoal, preciso de uma ajuda como seguinte, desde já, agradeço por qualquer ajuda...
      Pergunta: 
      Dado um arquivo 'ips.txt' com uma lista de endereços, o programa deve dar um ping para cada ip/domínio cadastrado. A linha contendo os resultados (mínimo, máximo, média)deve ser salva em arquivo 'log_data_hora.txt'.
      ips.txt
      www.claro.com.br;Servidor Claro
      www.colombo.com.br;Servidor Colombo
      www.renner.com.br;Servidor Renner
      www.gmail.com.br;Servidor Email Google
       
      tenho o seguinte código:
       
      import os from datetime import datetime def titulo(texto): print() print(texto) print('\033[7;97;40m-\033[m'*40) ###################################### def listar(): print('\033[7;97;40mListagem de IPs\033[m') print('\033[7;97;40m=\033[m'*72) arq = open('ips.txt', 'r') num = 0 linha = arq.readline() print('\033[7;97;40mNº .: IP/Dominio ...............: Cliente/Serviço ..................: \033[m') while linha != '': num = num + 1 partes = linha.split(';') print(f'\033[7;97;40m {num:3} {partes[0]:30s} {partes[1][:-1]}\033[m') linha = arq.readline() arq.close() print('\033[7;97;40m-\033[m'*72) ''' funcao que recebe um ip como parametro o tempo medio de resposta de um ping para este ip ou -1, caso erro ''' def ver_media(ip): dados = os.popen('ping '+ ip) # executa um comando no sistema operacional media = '' #find: retorna a posicao da string #(se nao encontrar retorna 0) for linha in dados: if linha.find('M‚dia') >= 0: posicao = linha.rfind('=') mediams = linha[posicao+1:] ms = mediams.rfind('ms') media = mediams[0:ms] if media == '': return -1 else: return int(media) def testar(): titulo('\033[7;97;40mTestando IPs Cadastrados\003[m') print('\033[7;97;40mIP/Domínio............ Tempo(ms)\033[m') print('\033[7;97;40m-\033[m'*40) arqLog = open('logs.txt', 'a') #salva em arquivo cada teste arq = open('ips.txt', 'r') linha = arq.readline() while linha != '': partes = linha.split(';') tempo = ver_media(partes[0]) funcao = ver_media(partes[1]) agora = datetime.now() dia = agora.strftime('%d/%m/%Y') hora = agora.strftime('%H:%M:%S') print(f'\033[7;97;40m{partes[0]:25s} {tempo}\033[m') arqLog.write(partes[0]+';'+str(tempo)+';'+dia+';'+hora+'\n') linha = arq.readline() arq.close() arqLog.close() #################################################### def logs(): titulo('\033[7;97;40m Listagem de Logs \033[m') arq = open('logs.txt', 'r') print('\033[7;97;40mNº..: IP / Dominio............: Média (ms): Dia do accesso..: Hora..:\033[m') num = 0 linha = arq.readline() while linha != '': num = num + 1 partes = linha.split(';') ip = str(partes[0]) tempo = str(partes[1]) dia = str(partes[2]) hora = str(partes[3]) print(f'\033[7;97;40m{num:3d} {ip:30s} {tempo:3s} {dia:17s} {hora} \033[m', end='') linha = arq.readline() arq.close() print('-'*43) print('\033[7;97;40m -> Se o tempo em ms, for igual a\033[m \033[1;31m-1\033[m,\033[7;97;40m\n' ' o host não está respondendo\033[m') return ######################### programa principal while True: print('\033[7;97;40m=\033[m' * 43) print('''\033[3;30;44m#### Selecione uma Opção: ####\033[m \033[7;97;40m 1. Listar Ips 2. Testar 3. Log de testes 4. Finalizar \033[m\n ''') print('\033[7;97;40m=\033[m' * 43) opcao = int(input('\033[3;30;44mDigite sua opção:\033[m ')) if opcao == 1: listar() elif opcao == 2: testar() elif opcao == 3: logs() elif opcao == 4: calcula() elif opcao == 5: print('\033[1;30mPrograma Finalizado pelo Usuário!!!\n' '==//==//==//==//==//==//==//==//==//\033[m') exit() else: print('\033[1;31mOps...\n' ' Opção Inválida!!!\033[m') break  
    • By Motta
      Microsoft libera curso grátis para aprender a programar em Python
    • By Pedro_silva
      Olá eu to querendo saber como eu faço para criar um app view que abre o site dentro dele mas não faço minima ideia como eu vou fazer isso, caso alguém tenha algum link de site que possa ensinar de já eu agradeço 
    • By silver sanths
      Como faço para retornar as notas da função cadastrar,  para a calcular a media dentro da função listar_notas?
       
       
      import subprocess
      def cadastrar():
          nota1 = float(input("Nota I: "))
          nota2 = float(input("Nota II: "))
          nota3 = float(input("Nota III: "))
          nota4 = float(input("Nota IV: "))
          arquivo = open('teste.txt', 'a')
          arquivo.write('{},{},{},{}\n'.format(nota1, nota2, nota3, nota4))
          arquivo.close()
          
          subprocess.run(["notepad" , "teste.txt"])
          
      def listar_notas():
          
          arquivo = open('teste.txt', 'r')
          linhas = arquivo.readlines()
          arquivo.close()
          print("{:20}{:20}{:20}{:20}".format("Nota I", "Nota II", "Nota III", "Nota IV"))
          
          for linha in linhas:
              nota1, nota2, nota3, nota4 = linha.strip().split(",")
              print("{:20}{:20}{:20}{:20}".format(nota1, nota2, nota3, nota4))
              
      while True:
          print('\n1. Cadastrar Notas')
          print('2. Listar Notas | Media')
          print('3. Sair')
          opcao = int(input())
          if opcao == 1:
              cadastrar()
          if opcao == 2:
              listar_notas()
          if opcao == 3:    
              break
       
×

Important Information

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