Fonctions | Exercices 1-5

Enoncé exercice 1

Ecrire un programme Python qui définit et appelle une fonction Bonjour qui affiche le message : Bonjour!.

Correction exercice 1

Le programme va commencer par la définition de la fonction Bonjour (lignes 1-2). Cette définition est composée d’une première ligne contenant le mot réservé def suivi du nom qu’on souhaite donner à la fonction qui est ici Bonjour. Le nom sera suivi de parenthèses puis des deux points (ligne 1).

Le corps de la fonction, qui contient les instructions qui définissent ce que fait la fonction, est constitué ici d’une seule ligne contenant la fonction print, qui affichera le message Bonjour! (ligne 2). Les lignes du corps de la fonction doivent commencer par une indentation.

Afin d’utiliser cette fonction pour qu’elle affiche le message Bonjour! , il suffira de lui faire appel de la manière suivante : Bonjour() (ligne 3).

Solution exercice 1
def Bonjour():
    print("Bonjour!")
Bonjour()
Enoncé exercice 2

Ecrire un programme Python qui définit une fonction Conversion qui prend comme argument un nombre entier et l’affiche dans les trois bases ; binaire, octale et hexadécimale, en exploitant les fonctions de conversion bin, oct et hex.

Utiliser cette fonction pour afficher les équivalents binaire, octal et hexadécimal d’un entier entré par l’utilisateur.

Correction exercice 2

La fonction Conversion à définir, va prendre en charge la conversion d’un entier en base décimale vers d’autres bases. La valeur de cet entier est une information qu’on doit fournir à la fonction. Cette transmission d’informations se fait à travers les arguments de la fonction.

On aura donc besoin ici d’un seul argument, à qui on doit donner un nom pour pouvoir le manipuler au sein du corps de la fonction. Cet argument qu’on va identifier par n, représentera le nombre en base décimale à convertir. Il sera donc nécessaire de mentionner que la fonction Conversion aura besoin d’un argument. Ceci sera fait en mettant l’identifiant choisi, pour cet argument, entre les parenthèses qui suivent le nom de la fonction comme suit def Conversion(n) (ligne 1).

Au sein du corps de la fonction Conversion, en effectuera les trois conversions demandées, et on les affiche par la suite (lignes 2-4). Pour avoir l’équivalent de n en binaire, il suffira d’utiliser la fonction bin, qui prend un entier en argument et le convertit en binaire. De même pour les deux conversions qui restent, mais en utilisant les deux fonctions oct et hex.

Pour exploiter la fonction Conversion, on va demander à l’utilisateur d’entrer un entier, qu’on va lire vers la variable a, puis on le passe en tant qu’argument à la fonction créée (lignes 5-6). Il sera peut être utile de mentionner qu’on peut aussi utiliser n comme nom pour cette dernière variable au lieu de a, sans aucune conséquence sur le bon fonctionnement du programme.

Solution exercice 2
def Conversion(n):
    print(n," en binaire     : ",bin(n))
    print(n," en octal       : ",oct(n))
    print(n," en hexadécimal : ",hex(n))
a=int(input("Entrez un entier: "))
Conversion(a)
Enoncé exercice 3

Ecrire un programme Python qui définit une fonction Somme qui prend deux nombres en arguments et renvoie leur somme. Utiliser ensuite, cette fonction pour additionner deux entiers, puis deux nombres réels entrés par l’utilisateur.

Correction exercice 3

Cet exercice introduit une catégorie de fonctions qui ont en plus des arguments, un résultat qu’elles renvoient. Ces fonctions sont d’une grande utilité, car elles renvoient le résultat de leur traitement, que le programmeur pourra intercepter et utilisé à son gré. Il pourra par exemple l’afficher ou l’utiliser dans d’autres calculs.

Ici, on va définir une fonction Somme qui prend deux arguments, calcule, puis renvoie leur somme (lignes 1-3). Pour l’entête de la fonction, on va commencer par le mot def suivi du nom donné à la fonction et ensuite des noms choisis pour les deux arguments de la fonction, entre deux parenthèses et séparés par une virgule (ligne 1).

Le corps de la fonction va contenir une première instruction simple, qui permet de calculer la somme s des deux arguments a et b (ligne 2). Pour permettre à la fonction de connaitre ce qui doit être renvoyé et le renvoyer en même temps, on utilise la commande return. Ce return devra être suivi de l’élément à renvoyer, qui est ici la variable s. Ceci va donner comme instruction return s (ligne 3).

La fonction Somme définie, qui utilise l’opérateur +, pourra avoir comme arguments des entiers, des réels, des chaînes de caractères ou des listes. Pour les deux premiers, elle donnera la somme, et pour les deux derniers elle donnera leur concaténation.

La fonction est utilisée ici pour faire la somme de deux entiers puis de deux réels donnés par l’utilisateur (lignes 4-9). Pour avoir par exemple, la somme des deux réels x et y, il suffit d’utiliser Somme(x,y). Il est a noter que, Somme(x,y) peut être mise directement au sein de la fonction print pour qu’elle soit affichée, comme elle peut être affectée à une variable dans un premier temps et afficher la variable par la suite.

Solution exercice 3
def Somme(a,b):
    s=a+b
    return s
a=int(input("Entrez un entier: "))
b=int(input("Entrez un deuxième entier: "))
print("{}+{}={}".format(a,b,Somme(a,b)))
x=float(input("Entrez un réel: "))
y=float(input("Entrez un deuxième réel: "))
print("{}+{}={}".format(x,y,Somme(x,y)))
Enoncé exercice 4

Ecrire un programme Python qui définit une fonction Lire qui permet de lire une liste d’entiers. Puis utiliser cette fonction pour lire deux listes. Assembler ensuite les deux listes dans une troisième et afficher les trois.

Correction exercice 4

La fonction Lire qui va permettre de faire la lecture d’une liste d’entiers, n’aura pas besoin d’arguments. Elle pourra demander par elle-même à l’utilisateur de lui fournir toutes les données qu’il lui faut pour compléter sa tâche. Donc, elle aura comme entête def Lire() (ligne 1). Le corps de la fonction aura comme première instruction la création d’une liste vide liste (ligne 2). Puis on retrouvera la demande du nombre des éléments de la liste, et sa lecture à l’aide de la fonction input (ligne 3). Et ensuite on aura la lecture des éléments de la liste, grâce à la boucle for (lignes 4-6). La liste étant maintenant prête, on va la renvoyer à l’aide d’un return, en écrivant return liste, et qui sera la dernière instruction dans la définition de la fonction Lire (ligne 7).

Pour lire deux listes liste1 et liste2, il suffit de mettre liste1=Lire() et liste2=Lire() sans avoir à les créer en avance (lignes 9 et 11) .

Comme il est demandé, on va créer une troisième liste liste3 qui est le résultat de la concaténation des deux listes ; liste1 et liste2. Ceci sera réalisé en utilisant l’opérateur + comme suit : liste3=liste1+liste2 (ligne 12).

On termine le programme en affichant les trois listes (lignes 13-15).

Solution exercice 4
def Lire():
    liste=[]
    n=int(input("Entrez le nombre d'éléments de la liste: "))
    for i in range(0,n):
        a=int(input("Entrez l'élément {}: ".format(i+1)))
        liste.append(a)
    return liste
print("Lecture liste 1:")
liste1=Lire()
print("Lecture liste 2:")
liste2=Lire()
liste3=liste1+liste2
print("Liste 1: ",liste1)
print("Liste 2: ",liste2)
print("Liste 3: ",liste3)
Enoncé exercice 5

Ecrire un programme Python qui définit une fonction Positif qui prend un entier comme argument, et revoie True s’il est positif et False sinon. Définir ensuite la fonction AfficherPositifs qui prend comme argument une liste et affiche ses nombres positifs en exploitant la fonction Positif. Lire ensuite une liste d’entiers et afficher ses nombres positifs en faisant appel à la fonction AfficherPositifs.

Correction exercice 5

Dans cet exercice on va définir deux fonctions où l’une d’elles fait appel à l’autre. On aura à définir ici, la fonction AfficherPositifs qui effectue la tâche principale, qui est d’afficher les nombres positifs d’une liste d’entiers. Puis la fonction Positif qui joue le rôle d’une fonction auxiliaire dans ce programme. Elle va seulement se contenter de dire à l’autre fonction si un nombre est positif ou non.

On souhaite définir la fonction Positif de telle sorte qu’elle renvoie la valeur True dans le cas où le nombre pris en paramètre est positif, et False dans l’autre cas. Donc, au sein du corps de cette fonction, on va renvoyer True si l’argument est positif, en utilisant la structure de contrôle if (lignes 2-3). Sachant qu’on sort d’une fonction directement après l’exécution d’une commande return, alors il ne sera pas nécessaire d’utiliser la structure if esle. Il suffira juste de faire un return False juste après le bloc de if (ligne 3). La logique derrière ceci étant : si on échappe au return True c’est que le nombre n’est pas positif donc un return False s’impose.

Concernant la fonction AfficherPositifs, on va parcourir les éléments de la liste prise comme paramètre, et on affiche chaque élément a dont Positif(a) est égal à True (lignes 7-9).

En dehors des définitions des fonctions, on va créer et lire une liste d’entiers liste1, et afficher ensuite ses nombres positifs par le biais de l’instruction AfficherPositifs(liste1) (lignes 10-15).

Solution exercice 5
def Positif(a):
    if a>=0:
        return True
    return False
def AfficherPositifs(liste):
    print("Les nombres positifs de la liste sont:")
    for a in liste:
        if Positif(a)==True:
            print(a,end=" ")
liste1=[]
n=int(input("Entrez le nombre d'éléments de la liste: "))
for i in range(0,n):
    a=int(input("Entrez l'élément {}: ".format(i+1)))
    liste1.append(a)
AfficherPositifs(liste1)