Bonjour,
À savoir : Ce tutoriel risque d'être modifié, changé de place, voir même supprimé selon les décisions de l'équipe hackademics. Sa présence, est dû aux attentes des membres du forum participant au cours Python.
Tout conseils, modifications à votre demande, sera envoyé par MP.
PROBLÉMATIQUE
Écrire une fonction PGCD permettant de retourner la valeur du plus grand diviseur de deux entiers naturels.
Algorithme:
QU'EST-CE QU'UNE FONCTION?
Une fonction dans un programme est une étape utile à la résolution de votre problème.
Elle peut ou non retourner une valeur.
Si elle retourne une valeur on appelle cela une fonction
Sinon se sera une procédure
Python ne fait pas de réelle différence entre fonction et procédure, nous en resterons donc dans notre vocabulaire pythonien à fonction.
Pour cela un plan s'impose
I) QUAND UTILISER UNE FONCTION?
II) SYNTAXE
On utilise le mot clé def pour déclarer une fonction.
Comme pour une boucle for ou while, la fonction est un bloc, elle se termine par ':' et une indentation.
Deux types de syntaxe:
Sans paramètre
Avec paramètres
III) RETOURNER UN OBJET
Pour retourner un objet (quelque-soit le type), on utilise le mot clé return en fin de fonction.
Exemple :
Créer une fonction retournant le carré d'un entier
IV) EXÉCUTION D'UNE FONCTION
Simplement en lui demandant d'afficher avec print ou en enregistrant la valeur dans une variable.
V) LE PGCD ET SA FONCTION
Comme vous le savez python regorge d'énormément de fonctions déjà pré-implantés dans sa bibliothèque standard pour nous simplifier la résolution de problèmes.
Le PGCD ne fait pas exception à la règle, une fonction existe et se trouve dans le module fractions et se nomme gcd.
Son utilisation est simple...
Ce que je demande est de créer votre propre fonction pgcd connaissant l'algorithme écrit en début de cours.
Sa structure syntaxique sera la suivante :
1) Résoudre le problème donné (PGCD)
2) Créer une fonction is_anagram prenant en paramètres string_1 et string_2 et permettant de savoir si ces deux chaînes de caractères sont des anagrammes.
Si se sont des anagrammes, la fonction retournera un booléen (True)
Sinon la fonction retournera un autre booléen (False)
Aide à la résolution:
a) Python respecte la casse (minuscules et majuscules sont différenciées)
b) Les deux chaînes doivent être de la même longueur
3) Un des plus anciens systèmes de cryptographie (aisément déchiffrable) consiste à décaler les lettres d’un message pour le rendre illisible. Ainsi, les A deviennent des B, les B des C, etc. Ecrivez un code python qui demande une phrase à l’utilisateur et qui la code selon ce principe.
Ecrire sa fonction de décryptage.
Aide à la résolution :
a) Des lettres représentent en code ascii, des nombres entiers, comme par exemple 'A' vaudra en code ascii 65
Pour cela on peut utiliser la fonction ord(letter)
b) Ajouter 1 à chaque lettre codée en ascii
c) L'inverse de la fonction ord() est chr()
À savoir : Ce tutoriel risque d'être modifié, changé de place, voir même supprimé selon les décisions de l'équipe hackademics. Sa présence, est dû aux attentes des membres du forum participant au cours Python.
Tout conseils, modifications à votre demande, sera envoyé par MP.
PROBLÉMATIQUE
Écrire une fonction PGCD permettant de retourner la valeur du plus grand diviseur de deux entiers naturels.
Algorithme:
Code:
a,b : deux nombres Répéter tant que a et b sont différents : si le plus grand est a : les deux nombres deviennent a−b et b sinon (b est donc le plus grand) : les deux nombres deviennent a et b−a le pgcd est a
Une fonction dans un programme est une étape utile à la résolution de votre problème.
Elle peut ou non retourner une valeur.
Si elle retourne une valeur on appelle cela une fonction
Sinon se sera une procédure
Python ne fait pas de réelle différence entre fonction et procédure, nous en resterons donc dans notre vocabulaire pythonien à fonction.
Pour cela un plan s'impose
- Quand utiliser une fonction?
- Syntaxe
- Retourner un objet (entiers, chaîne de caractères, ...)
- Exécution d'une fonction
- Le pgcd et sa fonction
I) QUAND UTILISER UNE FONCTION?
- Quand le problème devient difficile à résoudre (besoin de découper en étape la résolution du problème).
- Quand le code devient long, plus d'une page de code sans fonction, commence à rendre le code difficile à lire.
- Quand une tâche du code se répète plusieurs fois.
II) SYNTAXE
On utilise le mot clé def pour déclarer une fonction.
Comme pour une boucle for ou while, la fonction est un bloc, elle se termine par ':' et une indentation.
Deux types de syntaxe:
- Sans paramètre
- Avec paramètres
Sans paramètre
Code:
def ma_fonction(): # suite
Code:
def ma_fonction(param_1, param_2, ...): # suite
Pour retourner un objet (quelque-soit le type), on utilise le mot clé return en fin de fonction.
Code:
def ma_fonction(): # suite return valeur
Créer une fonction retournant le carré d'un entier
Code:
def carre(a): """retourne le carre d'un entier""" return a * a
Simplement en lui demandant d'afficher avec print ou en enregistrant la valeur dans une variable.
Code:
def carre(a): """retourne le carre d'un entier""" return a * a square = carre(5) # enregistre 25 dans la variable square # ou print(carre(5)) # affiche 25
Comme vous le savez python regorge d'énormément de fonctions déjà pré-implantés dans sa bibliothèque standard pour nous simplifier la résolution de problèmes.
Le PGCD ne fait pas exception à la règle, une fonction existe et se trouve dans le module fractions et se nomme gcd.
Son utilisation est simple...
Code:
from fractions import gcd print(gcd(54, 46))
Sa structure syntaxique sera la suivante :
Code:
def pgcd(a, b): # suite return ...
EXERCICES
1) Résoudre le problème donné (PGCD)
2) Créer une fonction is_anagram prenant en paramètres string_1 et string_2 et permettant de savoir si ces deux chaînes de caractères sont des anagrammes.
Si se sont des anagrammes, la fonction retournera un booléen (True)
Sinon la fonction retournera un autre booléen (False)
Aide à la résolution:
a) Python respecte la casse (minuscules et majuscules sont différenciées)
b) Les deux chaînes doivent être de la même longueur
3) Un des plus anciens systèmes de cryptographie (aisément déchiffrable) consiste à décaler les lettres d’un message pour le rendre illisible. Ainsi, les A deviennent des B, les B des C, etc. Ecrivez un code python qui demande une phrase à l’utilisateur et qui la code selon ce principe.
Code:
def crypt(string_1): # suite
Aide à la résolution :
a) Des lettres représentent en code ascii, des nombres entiers, comme par exemple 'A' vaudra en code ascii 65
Pour cela on peut utiliser la fonction ord(letter)
Code:
>>> ord('A') 65
c) L'inverse de la fonction ord() est chr()
Commentaire