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¶
def afficher_ligne() -> None:
print("--","------------------")
# Appel de la fonction
afficher_ligne()
Exercice 2 : Procédure avec paramètres¶
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¶
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 :
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.
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.
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.
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¶
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 ....
import : Cette instruction est utilisée pour importer un module entier.
from ... import ... : Cette instruction est utilisée pour importer des parties spécifiques d’un module.
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 :
print() : Affiche un message à l’écran.
input() : Lit une entrée utilisateur sous forme de chaîne de caractères.
len() : Renvoie la longueur d’une séquence (comme une liste ou une chaîne de caractères).
range() : Génère une séquence de nombres.
type() : Renvoie le type d’un objet.
int(), float(), str() : Convertissent des valeurs en entier, flottant ou chaîne de caractères respectivement.
sum() : Calcule la somme des éléments d’une séquence.
min(), max() : Renvoient la valeur minimale ou maximale d’une séquence.
sorted() : Trie les éléments d’une séquence.
open() : Ouvre un fichier et renvoie un objet fichier.
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 :
os : Pour interagir avec le système d’exploitation, comme la gestion des fichiers et des répertoires.
sys : Pour manipuler des éléments liés à l’interpréteur Python et à l’environnement d’exécution.
math : Pour les fonctions mathématiques de base comme les logarithmes, les puissances, et les fonctions trigonométriques.
datetime : Pour manipuler les dates et les heures.
random : Pour générer des nombres aléatoires.
json : Pour travailler avec les données au format JSON.
re : Pour les expressions régulières, utiles pour la recherche et la manipulation de chaînes de caractères.
urllib : Pour manipuler les URL et effectuer des requêtes HTTP.
csv : Pour lire et écrire des fichiers CSV.
sqlite3 : Pour interagir avec des bases de données SQLite.
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.
def compter_voyelles(chaine):
voyelles = "aeiouAEIOU"
compteur = 0
for char in chaine:
if char in voyelles:
compteur += 1
return compteur def est_palindrome(chaine):
chaine = chaine.lower().replace(" ", "")
return chaine == chaine[::-1]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