Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Le code procédural

Le code procédural est une méthode de programmation où les instructions sont exécutées dans un ordre séquentiel. Cette approche est souvent utilisée pour des tâches simples et linéaires. Les programmes procéduraux sont généralement composés de fonctions ou de procédures qui effectuent des opérations spécifiques. A noter que fonctions et procédures sont des concepts différents. Une fonction est une déclaration avec retour, tandis qu’une procédure n’a pas de retour. Les fonctions peuvent être utilisées dans le code pour effectuer des opérations complexes ou répétitives.

Exercice 1 : Procédure sans paramètres

Solution to Exercise #
def afficher_ligne() -> None:
    print("--","------------------")

# Appel de la fonction
afficher_ligne()

Exercice 2 : Procédure avec paramètres

Solution to Exercise #
def afficher_ligne(nbcar:int) -> None:
    print("--","-"*nbcar)

# Appel de la fonction
afficher_ligne(10)
print(5x3)
afficher_ligne(20)

Réponses

  • Si on ne passe pas de paramètres, le programme se termine en erreur. Pour éviter cela, on peut ici ajouter un paramètre par défaut à la procédure

def afficher_ligne(nbcar:int=10) -> None:
    print("--","-"*nbcar)

Exercice 3 : Fonction avec paramètres

Solution to Exercise #
def somme(val1:int, val2:int) -> int:
    return val1 + val2

# Appel de la fonction
afficher_ligne(50)
res = somme(3,2)
print(res)
afficher_ligne(50)
res = somme(4,5)
print(res)
afficher_ligne(50)
res = somme(7,9)
print(res)
afficher_ligne(50)

Réponses

  • On peut chainer les appels de la fonction pour obtenir le résultat final.

res = somme(somme(2,4), somme(7,9))
print(res)

Les fonctions dans un algorithme complexe

Dans un programme complexe, il est particulièrement important de traiter les fonctions avec soin pour plusieurs raisons :

  1. Diviser pour mieux régner : Les fonctions permettent de diviser un programme en petites parties. Chaque partie fait une tâche spécifique, ce qui rend le programme plus facile à comprendre et à gérer.

  2. Réutiliser le code : Une fois qu’une fonction est écrite, vous pouvez l’utiliser plusieurs fois dans votre programme sans avoir à réécrire le même code.

  3. Rendre le code plus lisible : Les fonctions avec des noms clairs montrent ce que fait chaque partie du programme, ce qui rend le code plus facile à lire.

  4. Faciliter les tests : Vous pouvez tester chaque fonction séparément pour vous assurer qu’elle fonctionne correctement avant de l’utiliser dans le programme principal.

Exercice 4 : Appeler une fonction de module

Solution to Exercise #

Dans le fichier mon_module.py

def somme(a:int,b:int)-> int :
    return a+b

dans le fichier main.py

import mon_module

mon_module.affiche_ligne(50)
print(mon_module.somme(20,3))
mon_module.affiche_ligne(50)

Notons la différence entre import et from ... import ....

  1. import : Cette instruction est utilisée pour importer un module entier.

  2. from ... import ... : Cette instruction est utilisée pour importer des parties spécifiques d’un module.

Solution to Exercise #
from mon_module import somme, affiche_ligne

affiche_ligne(50)
print(somme(20, 3))
affiche_ligne(50)

Les fonctions spécifiques

Python propose une multitude de fonctions spécifiques qui facilitent la programmation. Voici quelques-unes des fonctions prédéfinies les plus couramment utilisées :

Dans ces cas, il n’est pas utile de charger un module supplémentaire. Cependant, Python propose une bibliothèque standard très riche qui inclut de nombreux modules pour faciliter le développement. Voici quelques-uns des modules les plus couramment utilisés :

Si ces modules ne sont pas suffisants, vous pouvez télécharger ceux de la communauté (https://pypi.org/).

Atelier : Opérations sur les chaînes de caractères par des fonctions

Exercice : Manipulation de chaînes de caractères

Objectif

Créer des fonctions pour effectuer différentes opérations sur les chaînes de caractères.

Solution to Exercise #
   def compter_voyelles(chaine):
       voyelles = "aeiouAEIOU"
       compteur = 0
       for char in chaine:
           if char in voyelles:
               compteur += 1
       return compteur
Solution to Exercise #
   def inverser_chaine(chaine):
       return chaine[::-1]
Solution to Exercise #
   def est_palindrome(chaine):
       chaine = chaine.lower().replace(" ", "")
       return chaine == chaine[::-1]
Solution to Exercise #

   def compter_mots(chaine):
       mots = chaine.split()
       return len(mots)

Application

texte = "Bonjour Thierry, comment ça va ?"

print("Nombre de voyelles :", compter_voyelles(texte))
print("Chaîne inversée :", inverser_chaine(texte))
print("Est-ce un palindrome ?", est_palindrome(texte))
print("Nombre de mots :", compter_mots(texte))

Résultats attendus

Nombre de voyelles : 9
Chaîne inversée : ? av aç tnemmoc ,yrreiht ruojnoB
Est-ce un palindrome ? False
Nombre de mots : 5