Python propose des dizaines de fonctions « toujours disponibles » sans aucun import. On les appelle fonctions natives (ou built-ins). Certaines ont déjà été croisées (print, input, len, range, type…) ; ce chapitre fait le tour d’horizon des fonctions essentielles pour le TOSA.
C’est surprenant mais mathématiquement plus équilibré à grande échelle. Pour un arrondi scolaire classique, passez par math.floor + + 0.5 ou utilisez une autre approche.
18.2 Fonctions de conversion et de test
Fonction
Effet
int(x)
Convertit en entier (troncature pour les floats)
float(x)
Convertit en flottant
str(x)
Convertit en chaîne
bool(x)
Convertit en booléen
list(iter)
Convertit en liste
tuple(iter)
Convertit en tuple
set(iter)
Convertit en set
dict(pairs)
Crée un dict depuis des paires
type(x)
Type de x
len(x)
Nombre d’éléments
isinstance(x, T)
Teste si x est de type T
# Conversionsprint(int("42"))print(float("3.14"))print(str(2025))print(list("abc"))print(tuple([1, 2, 3]))print(set([1, 2, 2, 3]))print(dict([("a", 1), ("b", 2)])) # depuis liste de tuples# Testsprint(type(3.14))print(isinstance(3.14, float)) # Trueprint(isinstance(3.14, (int, float))) # True si l'un OU l'autre
sorted() et sort() acceptent deux paramètres utiles :
reverse=True : ordre décroissant.
key=... : fonction qui extrait la clé de tri.
mots = ["banane", "kiwi", "pomme", "fraise"]# Par ordre alphabétique par défautprint(sorted(mots))# Par longueurprint(sorted(mots, key=len))# Par longueur décroissanteprint(sorted(mots, key=len, reverse=True))
key=len veut dire « trier selon la longueur de chaque élément ». On verra d’autres usages de key en Partie 2.
18.4reversed()
Inverse l’ordre d’une séquence. Renvoie un itérateur — souvent converti en liste.
# Sur une listel = [1, 2, 3, 4, 5]print(list(reversed(l))) # [5, 4, 3, 2, 1]print(l) # inchangé# Sur une chaîneprint(list(reversed("abc")))print("".join(reversed("abc"))) # 'cba'# Dans une bouclefor x inreversed([10, 20, 30]):print(x, end=" ")
Ces fonctions sont parfaites combinées à une expression génératrice (vue en Partie 3), mais même sans, elles sont utiles :
notes = [12, 15, 14, 8, 17]# Tous les élèves ont-ils la moyenne ?tous_ok =all(n >=10for n in notes)print("Tous >=10 ?", tous_ok)# Au moins un élève a-t-il plus de 15 ?au_moins_un =any(n >15for n in notes)print("Au moins un >15 ?", au_moins_un)# Collection vide : cas particulierprint(any([])) # False : pas d'élément vraiprint(all([])) # True ! (pas de contre-exemple)
Tous >=10 ? False
Au moins un >15 ? True
False
True
⚠️ all([]) renvoie True !
Par convention mathématique, « tous les éléments d’un ensemble vide sont vrais » → all([]) est True. Contre-intuitif mais à connaître pour le TOSA.
18.8 Tableau récapitulatif
Voici les fonctions natives à maîtriser pour le niveau Basique :
Fonction
Famille
Usage principal
print()
Sortie
Afficher à l’écran
input()
Entrée
Lire au clavier (toujours str)
len()
Taille
Nombre d’éléments
type()
Type
Connaître le type
isinstance()
Type
Tester le type
int, float, str, bool, list, tuple, set, dict
Conversion
Convertir un type en un autre
range()
Séquence
Générer une plage de nombres
abs(), round(), pow(), divmod()
Nombres
Calculs arithmétiques
min(), max(), sum()
Nombres
Statistiques de base
sorted()
Séquence
Nouvelle liste triée
reversed()
Séquence
Itérateur inversé
enumerate()
Séquence
Boucle avec indice
zip()
Séquence
Parcours parallèle
any(), all()
Booléens
Test global
Apprenez ce tableau par cœur — toutes ces fonctions apparaissent au TOSA.
🧩 Quiz 6.1 — Les fonctions natives
Question 1
Que renvoie sum([1, 2, 3, 4]) ?
10
[1, 2, 3, 4]
4
24
🔍 Réponse
a) 10 — sum additionne tous les éléments.
print(sum([1, 2, 3, 4]))
10
Question 2
Que renvoie round(2.5) en Python 3 ?
2
3
2.5
2.0
🔍 Réponse
a) 2 — piège ! Python utilise l’arrondi banquier (au pair le plus proche), pas l’arrondi scolaire. 0.5 arrondit à 0, 1.5 à 2, 2.5 à 2, 3.5 à 4.
for x in [0.5, 1.5, 2.5, 3.5, 4.5]:print(f"round({x}) = {round(x)}")
prenoms = ["Alice", "Bob", "Charlie"]ages = [30, 25, 35]villes = ["Paris", "Lyon", "Marseille"]# Construire une liste de dicts avec zip + bouclepersonnes = []...print(personnes)
prenoms = ["Alice", "Bob", "Charlie"]ages = [30, 25, 35]villes = ["Paris", "Lyon", "Marseille"]personnes = []for prenom, age, ville inzip(prenoms, ages, villes): personnes.append({"nom": prenom, "age": age, "ville": ville})for p in personnes:print(p)