Como criar uma lista com um intervalo de números em Python

PythonBeginner
Pratique Agora

Introdução

Listas Python são estruturas de dados versáteis que podem armazenar uma ampla gama de elementos, incluindo números. Neste tutorial, você aprenderá como criar uma lista com um intervalo de números em Python, o que pode ser uma técnica útil para várias tarefas de programação. Exploraremos métodos para gerar listas com sequências de números e discutiremos como aplicar essas listas com intervalos (ranged lists) efetivamente em seus programas Python.

Criando e Compreendendo Listas Python

Listas Python são uma das estruturas de dados mais comumente usadas, que permitem armazenar múltiplos itens em uma única variável. Antes de mergulharmos na criação de listas com intervalos, vamos entender os fundamentos das listas Python.

Primeiro, vamos criar um novo arquivo Python para trabalhar. No WebIDE:

  1. Clique no menu "File" (Arquivo) no topo
  2. Selecione "New File" (Novo Arquivo)
  3. Nomeie o arquivo python_lists.py
  4. Salve-o no diretório /home/labex/project

Agora, vamos escrever algum código para entender como as listas Python funcionam:

## Basic list creation
numbers = [1, 2, 3, 4, 5]
print("Basic list:", numbers)

## Lists can contain different data types
mixed_list = [1, "hello", 3.14, True]
print("Mixed data types:", mixed_list)

## Accessing list elements (indexing starts at 0)
print("First element:", numbers[0])
print("Last element:", numbers[4])

## Getting the length of a list
print("List length:", len(numbers))

## Modifying list elements
numbers[2] = 30
print("Modified list:", numbers)

## Adding elements to a list
numbers.append(6)
print("After append:", numbers)

## Removing elements from a list
numbers.remove(30)
print("After remove:", numbers)

Vamos executar este script para ver a saída. No terminal:

  1. Certifique-se de estar no diretório /home/labex/project
  2. Execute o seguinte comando:
python3 python_lists.py

Você deve ver a seguinte saída:

Basic list: [1, 2, 3, 4, 5]
Mixed data types: [1, 'hello', 3.14, True]
First element: 1
Last element: 5
List length: 5
Modified list: [1, 2, 30, 4, 5]
After append: [1, 2, 30, 4, 5, 6]
After remove: [1, 2, 4, 5, 6]

Como você pode ver, as listas Python têm várias características importantes:

  • Listas são coleções ordenadas, o que significa que os itens têm uma ordem definida
  • Listas são mutáveis, permitindo que você altere, adicione ou remova itens após a criação
  • Listas podem conter itens de diferentes tipos de dados
  • Cada elemento em uma lista pode ser acessado usando seu índice (posição)

Agora que entendemos os fundamentos das listas Python, podemos passar para a criação de listas com intervalos de números.

Criando Listas com a Função Range

A função range() em Python é uma função embutida que gera uma sequência de números. Ela é comumente usada com a função list() para criar listas contendo intervalos de números.

Vamos criar um novo arquivo Python para explorar a função range():

  1. Clique no menu "File" (Arquivo) no topo
  2. Selecione "New File" (Novo Arquivo)
  3. Nomeie o arquivo range_lists.py
  4. Salve-o no diretório /home/labex/project

Agora, vamos adicionar código para explorar diferentes maneiras de usar a função range():

## Basic usage of range() function
## Note: range() returns a range object, not a list directly
## We convert it to a list to see all values at once

## range(stop) - generates numbers from 0 to stop-1
numbers1 = list(range(5))
print("range(5):", numbers1)

## range(start, stop) - generates numbers from start to stop-1
numbers2 = list(range(2, 8))
print("range(2, 8):", numbers2)

## range(start, stop, step) - generates numbers from start to stop-1 with step
numbers3 = list(range(1, 10, 2))
print("range(1, 10, 2):", numbers3)

## Creating a list of descending numbers
numbers4 = list(range(10, 0, -1))
print("range(10, 0, -1):", numbers4)

## Creating even numbers from 2 to 10
even_numbers = list(range(2, 11, 2))
print("Even numbers:", even_numbers)

## Creating odd numbers from 1 to 9
odd_numbers = list(range(1, 10, 2))
print("Odd numbers:", odd_numbers)

Vamos executar este script para ver os resultados:

python3 range_lists.py

Você deve ver a seguinte saída:

range(5): [0, 1, 2, 3, 4]
range(2, 8): [2, 3, 4, 5, 6, 7]
range(1, 10, 2): [1, 3, 5, 7, 9]
range(10, 0, -1): [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
Even numbers: [2, 4, 6, 8, 10]
Odd numbers: [1, 3, 5, 7, 9]

A função range() pode ser usada de três maneiras diferentes:

  1. range(stop): Gera números de 0 a stop-1
  2. range(start, stop): Gera números de start a stop-1
  3. range(start, stop, step): Gera números de start a stop-1, incrementando por step

Ao entender essas diferentes formas, você pode criar vários tipos de sequências numéricas:

  • Números sequenciais (contagem crescente)
  • Números decrescentes (contagem decrescente)
  • Números pares
  • Números ímpares
  • Números com intervalos personalizados

Lembre-se que a função range() em si retorna um objeto range, que é eficiente em termos de memória. Nós o convertemos para uma lista usando a função list() para ver todos os valores de uma vez ou para realizar operações de lista nele.

Usando List Comprehensions com Range

Python oferece um recurso poderoso chamado list comprehensions (compreensões de lista) que permite criar listas de forma concisa e legível. Quando combinadas com a função range(), as list comprehensions oferecem uma solução elegante para criar listas com padrões específicos.

Vamos criar um novo arquivo Python para explorar as list comprehensions:

  1. Clique no menu "File" (Arquivo) no topo
  2. Selecione "New File" (Novo Arquivo)
  3. Nomeie o arquivo list_comprehensions.py
  4. Salve-o no diretório /home/labex/project

Agora, vamos adicionar código para explorar como as list comprehensions funcionam com ranges:

## Basic list comprehension with range
## Format: [expression for item in iterable]
squares = [x**2 for x in range(1, 6)]
print("Squares of numbers 1-5:", squares)

## List comprehension with condition
## Format: [expression for item in iterable if condition]
even_squares = [x**2 for x in range(1, 11) if x % 2 == 0]
print("Squares of even numbers 1-10:", even_squares)

## Creating a list of numbers divisible by 3
divisible_by_3 = [x for x in range(1, 31) if x % 3 == 0]
print("Numbers divisible by 3 (1-30):", divisible_by_3)

## Converting Celsius temperatures to Fahrenheit
celsius_temps = list(range(0, 101, 20))
fahrenheit_temps = [(c * 9/5) + 32 for c in celsius_temps]

print("Celsius temperatures:", celsius_temps)
print("Fahrenheit temperatures:", [round(f, 1) for f in fahrenheit_temps])

## Creating a list of tuples (number, square)
number_pairs = [(x, x**2) for x in range(1, 6)]
print("Numbers with their squares:")
for num, square in number_pairs:
    print(f"Number: {num}, Square: {square}")

Vamos executar este script para ver os resultados:

python3 list_comprehensions.py

Você deve ver a seguinte saída:

Squares of numbers 1-5: [1, 4, 9, 16, 25]
Squares of even numbers 1-10: [4, 16, 36, 64, 100]
Numbers divisible by 3 (1-30): [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Celsius temperatures: [0, 20, 40, 60, 80, 100]
Fahrenheit temperatures: [32.0, 68.0, 104.0, 140.0, 176.0, 212.0]
Numbers with their squares:
Number: 1, Square: 1
Number: 2, Square: 4
Number: 3, Square: 9
Number: 4, Square: 16
Number: 5, Square: 25

As list comprehensions têm uma sintaxe concisa que permite criar listas em uma única linha de código. A sintaxe geral é:

[expression for item in iterable if condition]

Onde:

  • expression é o que você deseja incluir na nova lista
  • item é cada elemento do iterável
  • iterable é a sequência que você está percorrendo (como range())
  • if condition é opcional e filtra quais itens são incluídos

As list comprehensions são mais legíveis e, muitas vezes, mais eficientes do que criar uma lista usando um loop for tradicional com o método append(). Elas são particularmente úteis quando combinadas com a função range() para criar listas numéricas com padrões ou transformações específicas.

Aplicações Práticas de Listas com Range

Agora que aprendemos como criar listas com ranges, vamos explorar algumas aplicações práticas. Estes exemplos demonstrarão como as listas com range podem ser usadas para resolver problemas comuns de programação.

Vamos criar um novo arquivo Python para nossos exemplos práticos:

  1. Clique no menu "File" (Arquivo) no topo
  2. Selecione "New File" (Novo Arquivo)
  3. Nomeie o arquivo range_applications.py
  4. Salve-o no diretório /home/labex/project

Agora, vamos adicionar código para várias aplicações práticas:

## Example 1: Sum of numbers from 1 to 100
total = sum(range(1, 101))
print(f"Sum of numbers from 1 to 100: {total}")

## Example 2: Creating a multiplication table
def print_multiplication_table(n):
    print(f"\nMultiplication table for {n}:")
    for i in range(1, 11):
        result = n * i
        print(f"{n} × {i} = {result}")

print_multiplication_table(7)

## Example 3: Generating a calendar of years
current_year = 2023
years = list(range(current_year - 5, current_year + 6))
print(f"\nYears (5 past to 5 future): {years}")

## Example 4: Creating a countdown timer
def countdown(seconds):
    print("\nCountdown:")
    for i in range(seconds, 0, -1):
        print(i, end=" ")
    print("Blast off!")

countdown(10)

## Example 5: Calculating factorial
def factorial(n):
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result

num = 5
print(f"\nFactorial of {num}: {factorial(num)}")

## Example 6: Creating a simple number guessing game
import random

def number_guessing_game():
    ## Generate a random number between 1 and 100
    secret_number = random.randint(1, 100)
    attempts = list(range(1, 11))  ## Maximum 10 attempts

    print("\nNumber Guessing Game")
    print("I'm thinking of a number between 1 and 100.")
    print("You have 10 attempts to guess it.")

    for attempt in attempts:
        ## In a real game, we would get user input
        ## For demonstration, we'll just print the logic
        print(f"\nAttempt {attempt}")
        print(f"(If this were interactive, you would guess a number here)")
        print(f"The secret number is: {secret_number}")

        ## Break after the first attempt for demonstration purposes
        break

number_guessing_game()

Vamos executar este script para ver os resultados:

python3 range_applications.py

Você deve ver a saída demonstrando cada uma das aplicações práticas:

  1. A soma de todos os números de 1 a 100
  2. Uma tabela de multiplicação para o número 7
  3. Uma lista de anos (5 anos passados a 5 anos futuros)
  4. Uma contagem regressiva de 10 a 1
  5. O fatorial de 5
  6. Uma demonstração de como um jogo de adivinhação de números pode funcionar

Estes exemplos demonstram como os ranges combinados com listas podem ser usados para resolver vários problemas de programação de forma eficiente. Alguns benefícios importantes de usar listas com range em seus programas incluem:

  1. Código simplificado para iterar sobre uma sequência de números
  2. Uso eficiente da memória (objetos range não armazenam todos os números na memória)
  3. Criação fácil de padrões e sequências numéricas
  4. Integração conveniente com outras funções Python como sum(), min() e max()

Ao dominar a criação e manipulação de listas com range, você pode escrever código Python mais conciso e eficiente para uma ampla variedade de aplicações.

Resumo

Neste laboratório, você aprendeu como criar e usar listas com ranges de números em Python. Aqui está um resumo do que você realizou:

  1. Você aprendeu os fundamentos das listas Python, incluindo como criá-las, acessá-las e modificá-las
  2. Você explorou a função range() e como usá-la para gerar sequências de números
  3. Você descobriu como usar list comprehensions (compreensões de lista) para criar listas mais complexas com base em ranges
  4. Você aplicou essas técnicas para resolver problemas práticos de programação

Essas habilidades são fundamentais para muitas tarefas de programação em Python, desde o processamento simples de dados até algoritmos mais complexos. A capacidade de gerar e manipular rapidamente sequências de números é uma ferramenta poderosa que o ajudará a escrever código Python mais eficiente e eficaz.

À medida que você continua sua jornada em Python, você descobrirá que essas técnicas são úteis em muitos contextos, incluindo análise de dados, desenvolvimento web, computação científica e muito mais. A combinação de listas e a função range() fornece uma base sólida para trabalhar com dados numéricos em Python.