Les fonctions prédéfinies en Python, les indispensables
Les fonctions prédéfinies en Python
Les fonctions input et print sont des fonctions prédéfinies en Python. On trouve plusieursautres fonctions.
D'autre fonctions peuvent être appelé dans le code, mais qui nécessite d'importer une
bibliothèque, comme la fonction sqrt du module math.
Les fonctions sur les types numériques
La fonction arrondi, round en Python : elle retourne l'entier le plus proche d'un nombre donné.Par exemple :
round(5.1) donne 5
round(5.5) donne 6
round(5.7) donne 6
la fonction racine-carrée, qui devient sqrt en Python : cette fonction retourne la racine-carrée d'un nombre donnée. Le résultat de la racine est toujours de type réel.
Notez bien, pour pouvoir utiliser la fonction sqrt en Python, vous devez l'importer de la fonction math :
from math import sqrt, ou from math import *. Import * signifie importer toutes les fonctions de la bibliothèque math.
Exemple :
sqrt(2) retourne 1.4142135623730951
sqrt(4) donne 2.0
sqrt(-1) génère une erreur : ValueError: math domain error
La fonction aléa, randint en Python retourne une valeur entière aléatoire. La syntaxe en Python est :
randint(borne_inferieur, borne_superieure). l'importation from random import randint est indispensable. Exemple :
randint(1, 6) peut donner 2
randint(1, 6) peut donner 5
randint(1, 6) peut donner 4
randint(10, 100) peut donner 70
La fonction ent, trunc en Python retourne la partie entière d'un nombre donné. Cette fonction exige l'importation de la bibliothèque math. Cette fonction donne le même résultat que la fonction int en Python.
Exemple :
trunc(63.32) = int(63.32) = 63
trunc(80.87) = int(80.87) = 80
trunc(87.20) = int(87.20) = 87
trunc(64.37) = int(64.37) = 64
La fonction qui permet de donner la valeur absolue d'un nombre en algorithme et en Python est abs.
Exemple :
abs(4) donne 4
abs(-10) donne 10
abs(-2.5) donne 2.5
Les fonctions sur les caractères
Un caractère peut être une lettre ("P", "y", 't', 'h'), un chiffre ("1", "5", '4') ou un symbôle (un caractère spécial : "@", "#", ".",). Les caractères sont ordonnées selon leurs codes ASCII. Un caractère doit être limité par deux simples quotes ', ou des double quotes " ; "a" est égale à 'a'. Il faut savoir que le langage de programmation Python n'a pas de type spécéfique pour les caractères, il utilise le type chaine (str). Python considère un caractère comme étant une chaine composé d'un seul caractère.
Les fonctions que je peux appliquer sur les caractères sont :
L'ordre d'un caractère dans la table ASCII, noté en algorithme et en Python ord.
Par exemple :
ord("a") donne 97
ord("b") donne 98
ord('A') donne 65
La fonction chr, retourne le caractère dont le code ASCII est passé comme paramètre.
Exemple :
chr(65) vaut "A"
Les fonctions que je peux appliquer sur les caractères sont :
L'ordre d'un caractère dans la table ASCII, noté en algorithme et en Python ord.
Par exemple :
ord("a") donne 97
ord("b") donne 98
ord('A') donne 65
La fonction chr, retourne le caractère dont le code ASCII est passé comme paramètre.
Exemple :
chr(65) vaut "A"
chr(98) vaut "b"
Les fonctions sur les chaines
Une chaines de caractères contient zéro ou plusieurs caractères. Une chaine avec zéro caractères est appelée la chaine vide. Elle a une longeur nulle, est contient la chaine "".Parmis les fonctions que je peux appliquer sur les chaines en python :
- long(ch) en algorithme, len(ch) en Python
len("python") donne 6.
len("a b.") donne 4.
- pos(ch1, ch2) en algorithme, ch2.find(ch1) en Python
Si la chaine n'est pas trouvée alors la fonction pos retourne -1.
Il ne faut pas oublier que Python commence à compter les caractères à partir de 0 ; en Python le premier caractère est numéro zéro.
"bonjour".find("jour") donne 3.
"bonbon".find("bon") donne 0.
"python.pm".find("www") donne -1.
- convch(n) en algorithme, str(n) en Python
str(22) donne "22".
str(1.50) donne "1.5"
- valeur(ch) en algorithme, int(ch) ou float(ch) en Python
int('2030') donne 2030
float("1.550") donne 1.55
int("Python") génère une erreur : invalid literal for int()
- estnum(ch) en algorithme, ch.isdigit() ou ch.isdecimal() en Python
La fonction isdigit est très utile. Transformer une chaine en une valeur numérique peut générer une erreur, donc il faut tester que tous les caractères sont numérique avant utiliser la fonction int().
"20".isdigit() retourne True
"30".isdecimal() retourne True
"22,33".isdigit() retourne False
"Python".isdigit() retourne False
"20.30".isdigit() retourne False
- majus(ch) en algorithme, ch.upper() en Python
"Python".upper() donne 'PYTHON'
'ABC 123 xyz'.upper() donne 'ABC 123 XYZ'
On trouve d'autres traitements usuels sur les chaines :
- sous_chaine(ch, d, f) en algorithme, ch[d:f] en Python
position finale f, sans prnedre en considérartion le caractère f.
- effacer(ch, d, f) en algorithme, ch[:d] + ch[f:] en Python
Ce traitement est utilisé pour supprimer des caractères à partir de la position de début d jusqu’à la positionf (f exclue) de la chaîne ch.
L'idée est de saisir la date de naissance sous forme d'une chaine de caractères puis extraire les caractères qui représente l'année, les quatre derniers caractères. Puis transformer ces quatre derniers caractères en valeur numériques. L'age sera calculé avec la formule : année actuelle - année de naissance.
Exemple d'exécution :
>>> %Run age.py
donner votre date de naissance au format jj/mm/aaa
01/01/2000
vous avez 22 ans
Correction de l'exrcice : calcul de l'age avec la date de naissance donnée en Python
import datetimecetteAnnee = int(datetime.datetime.now().date().strftime("%Y"))
#les deux premières lignes peuvent être remplacée par cetteAnnee = 2022
date = input("donner votre date de naissance au format jj/mm/aaa\n")
annee = date[6:]
annee = int(annee)
age = cetteAnnee - annee
print("vous avez", age, "ans")