2. Chapitre 2 : Les fondamentaux de Python

Python est un langage de programmation de haut niveau, interprété et orienté objet. Sa syntaxe claire et lisible en fait un excellent choix pour les débutants tout en restant puissant pour les développeurs expérimentés.

2.1. Notes théoriques

2.1.1. “Hello World”

Le programme “Hello World” est un script simple qui affiche “Hello, World!” à l’écran. C’est une façon traditionnelle de commencer l’apprentissage d’un nouveau langage de programmation.

Syntaxe :

print("Hello, World!")

Exemple :

print("Hello, World!")
# Résultat : Hello, World!

2.1.2. Variables en Python

Les variables sont utilisées pour stocker des valeurs de données. En Python, une variable est créée au moment où vous lui assignez une valeur pour la première fois.

Règles de nommage

Les variables Python doivent respecter certaines règles :

  • Doivent commencer par une lettre ou le caractère underscore (_)

  • Ne peuvent pas commencer par un chiffre

  • Peuvent contenir uniquement des caractères alphanumériques et des underscores (A-z, 0-9, et _)

  • Sont sensibles à la casse (age, Age, et AGE sont trois variables différentes)

Syntaxe : variable_name = value

Exemple :

x = 5
name = "Alice"
print(x, name)
# Résultat : 5 Alice

2.1.3. Types de données en Python

Les types de données sont la classification ou catégorisation des éléments de données. Python a plusieurs types de données incluant Integer, Float, String, List, Tuple, et Dictionary.

Types principaux :

  • Integer (entier)

  • Float (nombre décimal)

  • String (chaîne de caractères)

  • List (liste)

  • Tuple

  • Dictionary (dictionnaire)

  • Set (ensemble)

  • Boolean (booléen)

Taille en mémoire : La taille en mémoire varie selon le type de données et la valeur qu’il contient.

Exemple :

integer_var = 10
float_var = 20.5
string_var = "Hello"

les littéraux

  • Integer : Nombres entiers, ex: 5

  • Float : Nombres avec décimales, ex: 5.0

  • String : Séquence de caractères, ex: "Hello"

  • List : Collection ordonnée et modifiable, ex: [1, 2, 3]

  • Tuple : Collection ordonnée et non-modifiable, ex: (1, 2, 3)

  • Dictionary : Collection avec paires clé-valeur, ex: {"name": "John", "age": 30}

  • Set : Collection non-ordonnée d’éléments uniques, ex: {1, 2, 3}

  • Boolean : Représente True ou False

2.1.4. Opérateurs Python

Les opérateurs sont utilisés pour effectuer des opérations sur des variables et des valeurs. Python possède des opérateurs arithmétiques, de comparaison, d’assignation, logiques, d’identité, d’appartenance et binaires.

Exemple :

# Opérateur arithmétique
a = 10
b = 3
print(a + b)  # Addition : 13
print(a * b)  # Multiplication : 30

Types d’opérateurs :

  • Opérateurs arithmétiques

  • Opérateurs de comparaison (relationnels)

  • Opérateurs d’assignation

  • Opérateurs logiques

  • Opérateurs d’identité

  • Opérateurs d’appartenance

  • Opérateurs binaires

Exemple :

  • Opérateurs arithmétiques : +, -, *, /, %, //, **

a = 10
b = 3
print(a + b)   # Addition : 13
print(a - b)   # Soustraction : 7
print(a * b)   # Multiplication : 30
print(a / b)   # Division : 3.333...
print(a % b)   # Modulo : 1
print(a // b)  # Division entière : 3
print(a ** b)  # Puissance : 1000
  • Opérateurs de comparaison : ==, !=, >, <, >=, <=

x = 5
y = 10
print(x == y)  # Égal à : False
print(x != y)  # Différent de : True
print(x > y)   # Plus grand que : False
print(x < y)   # Plus petit que : True
print(x >= y)  # Plus grand ou égal : False
print(x <= y)  # Plus petit ou égal : True
  • Opérateurs d’assignation : =, +=, -=, *=, /=, etc.

x = 5
x += 3   # Équivalent à x = x + 3
print(x) # 8
x *= 2   # Équivalent à x = x * 2
print(x) # 16
  • Opérateurs logiques : and, or, not

a = True
b = False
print(a and b)  # False
print(a or b)   # True
print(not a)    # False
  • Opérateurs d’identité : is, is not

x = [1, 2, 3]
y = [1, 2, 3]
z = x
print(x is z)     # True (même objet)
print(x is y)     # False (objets différents)
print(x == y)     # True (même contenu)
  • Opérateurs d’appartenance : in, not in

liste = [1, 2, 3, 4, 5]
print(3 in liste)     # True
print(6 not in liste) # True
  • Opérateurs binaires : &, |, ^, ~, <<, >>

Règle PEMDAS : Parenthèses, Exposants, Multiplication/Division, Addition/Soustraction

2.1.5. Instruction de sortie: la fonction print()

La fonction print() est utilisée pour afficher des données à l’écran.

Syntaxe de base :

print(value1, value2, ..., sep=' ', end='\n')

Exemples :

# Affichage simple
print("Bonjour")

# Affichage de plusieurs valeurs
print("Age:", 25)

# Personnalisation du séparateur
print("A", "B", "C", sep="-")
# Résultat : A-B-C

# Personnalisation de la fin
print("Première ligne", end=" ")
print("Sur la même ligne")
# Résultat : Première ligne Sur la même ligne

2.1.6. Instruction de saisie: la fonction input()

La fonction input() permet de lire une entrée de l’utilisateur.

Syntaxe:

variable = input(prompt)

Exemple :

nom = input("Entrez votre nom : ")
print("Bonjour", nom)

# Conversion de type pour les nombres
age = int(input("Entrez votre âge : "))
print("Dans 10 ans, vous aurez", age + 10, "ans")

2.1.7. Conversion de types (Casting)

Le casting consiste à convertir une variable d’un type à un autre.

Fonctions de conversion :

  • int() : Convertit en entier

  • float() : Convertit en nombre décimal

  • str() : Convertit en chaîne de caractères

  • list() : Convertit en liste

  • tuple() : Convertit en tuple

  • bool() : Convertit en booléen

Exemples :

# String vers Integer
age_str = "25"
age_int = int(age_str)
print(type(age_int))  # <class 'int'>

# Integer vers String
nombre = 100
nombre_str = str(nombre)
print(type(nombre_str))  # <class 'str'>

# Float vers Integer
prix = 19.99
prix_int = int(prix)
print(prix_int)  # 19

# String vers Float
taille = "1.75"
taille_float = float(taille)
print(taille_float)  # 1.75

2.1.8. Chaînes de caractères (Strings)

Les chaînes de caractères sont des séquences de caractères entourées de guillemets.

Création:

simple = 'Hello'
double = "World"
multi_ligne = '''Ceci est
une chaîne
sur plusieurs lignes'''

Opérations sur les chaînes :

# Concaténation
prenom = "Alice"
nom = "Dupont"
nom_complet = prenom + " " + nom
print(nom_complet)  # Alice Dupont

# Répétition
echo = "Ha" * 3
print(echo)  # HaHaHa

# Indexation (commence à 0)
mot = "Python"
print(mot[0])   # P
print(mot[-1])  # n (dernier caractère)

# Slicing
print(mot[0:3])  # Pyt
print(mot[2:])   # thon
print(mot[:4])   # Pyth

Méthodes associées aux chaînes :

texte = "  Python Programming  "

# Méthodes de transformation
print(texte.upper())      # PYTHON PROGRAMMING
print(texte.lower())      # python programming
print(texte.strip())      # "Python Programming" (sans espaces)
print(texte.replace("Python", "R"))  # "  R Programming  "

# Méthodes de test
print("Python".startswith("Py"))  # True
print("Python".endswith("on"))    # True
print("123".isdigit())            # True
print("abc".isalpha())            # True

# Split et Join
phrase = "Python est génial"
mots = phrase.split()
print(mots)  # ['Python', 'est', 'génial']

rejoindre = "-".join(mots)
print(rejoindre)  # Python-est-génial

Formatage de chaînes

nom = "Alice"
age = 25

# Méthode format()
message1 = "Je m'appelle {} et j'ai {} ans".format(nom, age)

# f-strings (Python 3.6+)
message2 = f"Je m'appelle {nom} et j'ai {age} ans"

# Formatage avec précision
pi = 3.14159
print(f"Pi vaut approximativement {pi:.2f}")  # 3.14

2.1.9. Structures de contrôle : conditions if/else

Les structures de contrôle permettent de contrôler le flux d’exécution du programme. Les if/else sont des structures de contrôle qui permettent une execution selon certaines conditions.

Exemple:

  • if: s’exécute si la condition est vraie

age = int(input("Entrez votre âge: "))

if age >= 18:
    print("Etant majeur, cette information vous concerne aussi")

print("Ceci est destiné à tous")
  • if/else: les instructions dans le if s’exécutent si la condition est vraie, sinon les instructions dans le else s’exécutent

age = 18

if age >= 18:
    print("Vous êtes majeur")
else:
    print("Vous êtes mineur")
  • if/elif/else: permet de tester plusieurs conditions

score = 85

if score >= 90:
    print("Excellent")
elif score >= 80:
    print("Très bien")
elif score >= 70:
    print("Bien")
else:
    print("À améliorer")
  • plusieurs conditions avec des opérateurs logiques: and, or, not

age = 25
permis = True

if age >= 18 and permis:
    print("Vous pouvez conduire")
else:
    print("Vous ne pouvez pas conduire")

Note

Python n’a pas de switch case, mais on peut utiliser un dictionnaire pour simuler un switch case

Note

Il est possible d’écrire des conditions sur une seule ligne: var = valeur1 if condition else valeur2

age = 25
statut = "majeur" if age >= 18 else "mineur"
print(statut)  # majeur

2.1.10. Structures de contrôle: les boucles

Les boucles sont des structures de contrôle qui permettent de répéter un bloc d’instructions plusieurs fois.

Types de boucles:

  • for: répète un bloc d’instructions un nombre déterminé de fois

  • while: répète un bloc d’instructions tant qu’une condition est vraie

Exemple:

  • for:

for i in range(5):
    print(i)
  • while:

i = 0
while i < 5:
    print(i)
    i += 1

Note

range() est une fonction qui retourne une séquence de nombres. Par exemple, range(5) retourne une séquence de 0 à 4.

Contrôle de flux:

  • break: sort de la boucle

  • continue: passe à l’itération suivante

for i in range(10):
    if i == 5:
        break
    print(i)

for i in range(5):
    if i == 2:
        continue
    print(i)

2.1.11. Fonctions

Les fonctions sont des blocs de code réutilisables qui effectuent une tâche spécifique. Une fonction a deux facettes:

  • Définition: la fonction est créée

  • Appel: la fonction est exécutée

# Définition de la fonction
def saluer():
    print("Bonjour!")

# Appel de la fonction
saluer()

Note

Une fonction est définie une seule fois, mais elle peut être appelée plusieurs fois.