Aide-mémoire : les fonctions de Python

Les outils tout faits que Python te donne - fonctions intégrées, modules et méthodes

fonctions intégrées convertir les types modules (math, random) méthodes (le point) pièges fréquents

Une fonction : un outil tout fait

On appelle une fonction par son nom, suivi de parenthèses. Entre les parenthèses, on met les arguments (les valeurs qu'on lui donne). Elle fait son travail et, souvent, renvoie un résultat qu'on peut ranger dans une variable.

resultat = len("bonjour") # nom(argument) → renvoie 7 print(resultat) # 7

len est le nom, "bonjour" est l'argument, 7 est la valeur renvoyée. print, lui, n'affiche rien à ranger : il montre à l'écran, c'est tout.

Les fonctions intégrées les plus utiles

Celles-ci sont toujours disponibles, sans rien importer. Les incontournables des premières semaines.

Afficher et mesurer

print() · len()

print("Note :", 18) # Note : 18 len([5, 8, 2]) # 3 len("allo") # 4

print peut recevoir plusieurs arguments séparés par des virgules. len compte les éléments d'une liste ou les caractères d'un texte.

Suite de nombres

range(début, fin, pas)

for i in range(5): # 0,1,2,3,4 print(i) range(2, 10, 2) # 2,4,6,8

La borne de fin est exclue. range(5) va de 0 à 4. C'est l'outil des boucles for.

Demander à l'utilisateur

input("question")

nom = input("Ton nom ? ") age = int(input("Ton âge ? "))

input renvoie toujours du texte. Pour calculer avec, il faut le convertir en nombre avec int() ou float().

Calculs rapides

abs() · round()

abs(-7) # 7 (valeur absolue) round(3.14159, 2) # 3.14 round(8.7) # 9

round(x, n) arrondit à n décimales ; sans n, à l'entier le plus proche.

Sur une liste de nombres

sum() · min() · max() · sorted()

notes = [85, 92, 78] sum(notes) # 255 max(notes) # 92 sorted(notes) # [78, 85, 92]

sorted renvoie une nouvelle liste triée sans toucher l'originale. La moyenne ? sum(notes) / len(notes).

Connaître le type

type()

type(5) # <class 'int'> type(5.0) # <class 'float'> type("5") # <class 'str'>

Très pratique pour déboguer : « pourquoi ça plante ? » → souvent un texte là où on attendait un nombre.

Convertir d'un type à l'autre

Ces fonctions portent le nom du type et transforment une valeur. Indispensable après un input.

On écritEffetExemple → résultat
int(x)transforme en entierint("42") → 42
float(x)transforme en nombre à virgulefloat("3.5") → 3.5
str(x)transforme en textestr(42) → "42"
bool(x)transforme en vrai / fauxbool(0) → False
list(x)transforme en listelist("abc") → ['a','b','c']

int("3.5") plante : on ne peut pas passer directement d'un texte à virgule à un entier. Il faut int(float("3.5")).

Les modules : math et random

Un module est une boîte de fonctions en plus. On l'importe une fois en haut du fichier, puis on écrit module.fonction().

Le module math

import math

import math math.sqrt(16) # 4.0 (racine carrée) math.pi # 3.14159… math.floor(3.9) # 3 (arrondi vers le bas) math.ceil(3.1) # 4 (vers le haut)

math.pi est une valeur, pas une fonction : pas de parenthèses. Aussi : math.pow, math.factorial.

Le module random

import random

import random random.randint(1, 6) # un dé : 1 à 6 inclus random.choice(villes) # un élément au hasard random.shuffle(cartes) # mélange la liste

Attention : randint(1, 6) inclut les deux bornes (contrairement à range). Parfait pour des jeux.

Les méthodes : la fonction collée à un objet

Une méthode est une fonction qui appartient à une valeur. On l'appelle avec un point : objet.methode(). Le texte et les listes en ont plein.

Méthodes de texte (str)

texte.methode()

mot = " Bonjour " mot.upper() # " BONJOUR " mot.strip() # "Bonjour" (sans espaces) "a,b,c".split(",") # ['a', 'b', 'c']

Aussi : .lower(), .replace(ancien, nouveau), .find(). La plupart renvoient un nouveau texte sans changer l'original.

Méthodes de liste

liste.methode()

notes = [85, 92] notes.append(78) # ajoute à la fin notes.sort() # trie sur place notes.count(85) # compte les 85

Aussi : .insert(), .remove(), .pop(), .index(). (Détaillées dans l'aide-mémoire Listes & NumPy.)

Fonction ou méthode ? len(notes) est une fonction (le nom devant, l'objet entre parenthèses). notes.append(78) est une méthode (l'objet devant, un point, puis le nom). C'est juste deux façons d'écrire « fais ce travail sur cette valeur ».

Les pièges qui font perdre du temps

Quatre erreurs très fréquentes avec les fonctions.

input() renvoie du texte

age = input("Âge ? ") age + 1 # TypeError : "12" + 1 int(age) + 1 # ✓ 13

Même si on tape un nombre, c'est du str. Convertis avec int() ou float() avant de calculer.

Oublier les parenthèses

print # ne fait rien (juste le nom) print() # ✓ là on l'appelle

Une fonction ne s'exécute que si on l'appelle avec (). Le nom seul ne déclenche rien.

Oublier d'importer le module

math.sqrt(9) # NameError si pas importé import math # ✓ une fois, tout en haut

Les fonctions de math ou random n'existent qu'après le import correspondant.

sort() ne renvoie rien

triee = notes.sort() # triee vaut None ! triee = sorted(notes) # ✓ nouvelle liste

La méthode .sort() trie sur place. La fonction sorted() renvoie une copie triée.