Comment créer une liste avec une plage de nombres en Python

PythonBeginner
Pratiquer maintenant

Introduction

Les listes Python sont des structures de données polyvalentes qui peuvent stocker une grande variété d'éléments, y compris des nombres. Dans ce tutoriel, vous apprendrez à créer une liste avec une plage de nombres en Python, ce qui peut être une technique utile pour diverses tâches de programmation. Nous explorerons les méthodes pour générer des listes avec des séquences de nombres et discuterons de la manière d'appliquer efficacement ces listes à plages dans vos programmes Python.

Création et compréhension des listes Python

Les listes Python sont l'une des structures de données les plus couramment utilisées, qui vous permettent de stocker plusieurs éléments dans une seule variable. Avant de plonger dans la création de listes avec des plages de nombres, comprenons les bases des listes Python.

Tout d'abord, créons un nouveau fichier Python pour travailler. Dans l'IDE Web :

  1. Cliquez sur le menu "File" en haut.
  2. Sélectionnez "New File".
  3. Nommez le fichier python_lists.py.
  4. Enregistrez-le dans le répertoire /home/labex/project.

Maintenant, écrivons un peu de code pour comprendre le fonctionnement des listes Python :

## 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)

Exécutons ce script pour voir la sortie. Dans le terminal :

  1. Assurez-vous d'être dans le répertoire /home/labex/project.
  2. Exécutez la commande suivante :
python3 python_lists.py

Vous devriez voir la sortie suivante :

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]

Comme vous pouvez le voir, les listes Python ont plusieurs caractéristiques importantes :

  • Les listes sont des collections ordonnées, ce qui signifie que les éléments ont un ordre défini.
  • Les listes sont mutables, ce qui vous permet de modifier, d'ajouter ou de supprimer des éléments après leur création.
  • Les listes peuvent contenir des éléments de différents types de données.
  • Chaque élément d'une liste peut être accédé en utilisant son index (position).

Maintenant que nous comprenons les bases des listes Python, nous pouvons passer à la création de listes avec des plages de nombres.

Création de listes avec la fonction range()

La fonction range() en Python est une fonction intégrée qui génère une séquence de nombres. Elle est couramment utilisée avec la fonction list() pour créer des listes contenant des plages de nombres.

Créons un nouveau fichier Python pour explorer la fonction range() :

  1. Cliquez sur le menu "File" en haut.
  2. Sélectionnez "New File".
  3. Nommez le fichier range_lists.py.
  4. Enregistrez-le dans le répertoire /home/labex/project.

Maintenant, ajoutons du code pour explorer différentes façons d'utiliser la fonction 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)

Exécutons ce script pour voir les résultats :

python3 range_lists.py

Vous devriez voir la sortie suivante :

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]

La fonction range() peut être utilisée de trois manières différentes :

  1. range(stop) : Génère des nombres de 0 à stop - 1.
  2. range(start, stop) : Génère des nombres de start à stop - 1.
  3. range(start, stop, step) : Génère des nombres de start à stop - 1, en incrémentant de step.

En comprenant ces différentes formes, vous pouvez créer différents types de séquences de nombres :

  • Nombres séquentiels (compte croissant)
  • Nombres décroissants (compte décroissant)
  • Nombres pairs
  • Nombres impairs
  • Nombres avec des intervalles personnalisés

N'oubliez pas que la fonction range() elle-même retourne un objet range, qui est économiquement efficace en mémoire. Nous le convertissons en une liste à l'aide de la fonction list() pour voir toutes les valeurs d'un coup ou pour effectuer des opérations de liste sur elle.

Utilisation des compréhensions de liste avec range

Python propose une fonctionnalité puissante appelée compréhensions de liste (list comprehensions) qui vous permet de créer des listes de manière concise et lisible. Lorsqu'elles sont combinées avec la fonction range(), les compréhensions de liste offrent une solution élégante pour créer des listes avec des motifs spécifiques.

Créons un nouveau fichier Python pour explorer les compréhensions de liste :

  1. Cliquez sur le menu "File" en haut.
  2. Sélectionnez "New File".
  3. Nommez le fichier list_comprehensions.py.
  4. Enregistrez-le dans le répertoire /home/labex/project.

Maintenant, ajoutons du code pour explorer le fonctionnement des compréhensions de liste avec des plages :

## 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}")

Exécutons ce script pour voir les résultats :

python3 list_comprehensions.py

Vous devriez voir la sortie suivante :

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

Les compréhensions de liste ont une syntaxe concise qui vous permet de créer des listes en une seule ligne de code. La syntaxe générale est :

[expression for item in iterable if condition]

Où :

  • expression est ce que vous voulez inclure dans la nouvelle liste.
  • item est chaque élément de l'itérable.
  • iterable est la séquence à travers laquelle vous itérez (comme range()).
  • if condition est facultatif et filtre les éléments inclus.

Les compréhensions de liste sont plus lisibles et souvent plus efficaces que la création d'une liste en utilisant une boucle for traditionnelle avec la méthode append(). Elles sont particulièrement utiles lorsqu'elles sont combinées avec la fonction range() pour créer des listes numériques avec des motifs ou des transformations spécifiques.

Applications pratiques des listes créées avec range

Maintenant que nous avons appris à créer des listes avec des plages de nombres, explorons quelques applications pratiques. Ces exemples montreront comment les listes créées avec range peuvent être utilisées pour résoudre des problèmes de programmation courants.

Créons un nouveau fichier Python pour nos exemples pratiques :

  1. Cliquez sur le menu "File" en haut.
  2. Sélectionnez "New File".
  3. Nommez le fichier range_applications.py.
  4. Enregistrez-le dans le répertoire /home/labex/project.

Maintenant, ajoutons le code pour plusieurs applications pratiques :

## 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()

Exécutons ce script pour voir les résultats :

python3 range_applications.py

Vous devriez voir une sortie qui illustre chaque application pratique :

  1. La somme de tous les nombres de 1 à 100
  2. Une table de multiplication pour le nombre 7
  3. Une liste d'années (5 années passées à 5 années futures)
  4. Un compte à rebours de 10 à 1
  5. Le factoriel de 5
  6. Une démonstration de fonctionnement d'un jeu de devinette de nombre

Ces exemples montrent comment les plages de nombres combinées avec des listes peuvent être utilisées pour résoudre efficacement divers problèmes de programmation. Certains avantages clés de l'utilisation de listes créées avec range dans vos programmes sont les suivants :

  1. Un code simplifié pour itérer sur une séquence de nombres
  2. Une utilisation mémoire efficace (les objets range ne stockent pas tous les nombres en mémoire)
  3. Une création facile de motifs et de séquences numériques
  4. Une intégration pratique avec d'autres fonctions Python telles que sum(), min() et max()

En maîtrisant la création et la manipulation de listes créées avec range, vous pouvez écrire un code Python plus concis et efficace pour une grande variété d'applications.

Résumé

Dans ce laboratoire (lab), vous avez appris à créer et utiliser des listes avec des plages de nombres en Python. Voici un récapitulatif de ce que vous avez accompli :

  1. Vous avez appris les bases des listes Python, y compris la création, l'accès et la modification de celles-ci.
  2. Vous avez exploré la fonction range() et comment l'utiliser pour générer des séquences de nombres.
  3. Vous avez découvert comment utiliser les compréhensions de liste (list comprehensions) pour créer des listes plus complexes basées sur des plages.
  4. Vous avez appliqué ces techniques pour résoudre des problèmes de programmation pratiques.

Ces compétences sont fondamentales pour de nombreuses tâches de programmation Python, allant du traitement simple de données aux algorithmes plus complexes. La capacité à générer et manipuler rapidement des séquences de nombres est un outil puissant qui vous aidera à écrire un code Python plus efficace et performant.

Au fur et à mesure de votre progression dans l'apprentissage de Python, vous trouverez ces techniques utiles dans de nombreux contextes, notamment l'analyse de données, le développement web, le calcul scientifique, etc. La combinaison des listes et de la fonction range() constitue une base solide pour travailler avec des données numériques en Python.