1.1 Liste des fonctions intégrées populaires
On a déjà rencontré plein de fonctions intégrées, mais j'aimerais te parler de quelques-unes en plus qui te seront utiles bientôt :
id()
hash()
dir()
Voici quelques détails sur elles :
Fonction id()
La fonction id()
renvoie l'identifiant unique
d'un objet (nombre). Cet identifiant
est un entier et reste unique pour l'objet pendant
toute sa durée d'existence. Il correspond généralement à l'adresse de l'objet
en mémoire, même si ce n'est pas garanti dans la spécification Python.
L'identifiant unique de l'objet peut être utilisé pour mieux comprendre plusieurs opérations, par exemple, pour mieux comprendre où les objets sont dupliqués et où nous avons des références au même objet. Les objets identiques auront des identifiants différents, mais des références au même objet montreront le même identifiant.
On peut l'utiliser pendant le débogage et pour comprendre comment Python gère les objets en mémoire.
a = [1, 2, 3]
b = a
print(id(a)) # Affiche l'identifiant de l'objet 'a'
print(id(b)) # Affiche le même identifiant, car 'b' fait référence au même objet
Fonction hash()
La fonction hash()
renvoie la valeur de hachage (nombre) pour
l'objet spécifié, s'il est hachable. Les objets hachables en Python
doivent être immuables et avoir une valeur de hachage constante pendant
leur cycle de vie.
Les exemples de tels objets incluent les nombres, les chaînes et les tuples (si tous leurs éléments sont également hachables). Les valeurs de hachage sont utilisées dans les dictionnaires et les ensembles pour une recherche rapide. Utilisé pour optimiser la recherche et le stockage des données, où des vérifications rapides d'égalité et d'unicité sont nécessaires.
print(hash("hello")) # Renvoie la valeur de hachage de la chaîne "hello"
print(hash(42)) # Renvoie la valeur de hachage du nombre 42
print(hash((1, 2, 3))) # Renvoie la valeur de hachage du tuple (1, 2, 3)
Important !
Les valeurs de hachage des objets immuables
restent constantes pendant leur cycle de vie. Cependant,
les objets modifiables, tels que les listes et les dictionnaires, ne sont pas
hachables et ne peuvent pas être utilisés comme clés de dictionnaire
ou éléments d'ensemble.
Fonction dir()
La fonction dir()
renvoie une liste des attributs et méthodes
d'un objet. Si aucun objet n'est spécifié, dir()
retourne
la liste des noms dans le scope local actuel.
Cette fonction est utile pour explorer la structure des objets et leurs attributs.
Utilisée pour obtenir la liste de tous les attributs et méthodes de l'objet, ce qui aide à mieux comprendre sa structure et ses fonctions disponibles. Souvent utilisé pour le débogage et l'exploration des objets, surtout quand la documentation est limitée ou indisponible.
class MyClass:
def __init__(self):
self.name = "Alice"
def greet(self):
print("Hello, " + self.name)
obj = MyClass()
print(dir(obj)) # Affiche la liste des attributs et méthodes de l'objet 'obj'
print(dir()) # Affiche la liste des noms dans le scope local actuel
1.2 Travailler avec les collections
Il y a quelques autres fonctions utiles pour travailler avec les collections. Elles ont peut-être été mentionnées dans des conférences antérieures, mais je veux les aborder un peu plus en détail maintenant.
zip()
min()
max()
sum()
count()
Fonction zip()
La fonction zip()
regroupe plusieurs objets itérables
(par exemple, des listes, tuples, chaînes) et renvoie un itérateur de tuples.
Chaque tuple contient des éléments rassemblés à partir de positions de même
index de tous les objets itérables.
Souvent utilisée pour regrouper des données de plusieurs objets itérables, permettant de les parcourir facilement en même temps. Et aussi pour créer des dictionnaires à partir de deux listes — une pour les clés, l'autre pour les valeurs.
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
combined = zip(names, ages)
print(list(combined)) # Affiche : [('Alice', 25), ('Bob', 30), ('Charlie', 35)]
Fonction max()
La fonction max()
renvoie le plus grand élément d'un objet
itérable passé en argument ou parmi plusieurs arguments fournis. On peut
également spécifier une fonction clé pour déterminer la règle de comparaison.
numbers = [1, 2, 3, 4, 5]
print(max(numbers)) # Affiche : 5
# Avec une fonction clé
words = ["apple", "banana", "cherry"]
print(max(words, key=len)) # Affiche : 'banana'
Fonction min()
La fonction min()
renvoie le plus petit élément d'un objet
itérable passé en argument ou parmi plusieurs arguments fournis. On peut
également spécifier une fonction clé pour déterminer la règle de comparaison.
numbers = [1, 2, 3, 4, 5]
print(min(numbers)) # Affiche : 1
# Avec une fonction clé
words = ["apple", "banana", "cherry"]
print(min(words, key=len)) # Affiche : 'apple'
Fonction count()
La fonction count()
est utilisée pour compter le nombre d'occurrences
d'un élément dans un objet itérable, tel qu'une liste ou une chaîne de caractères. Elle est appelée
sur une liste, une collection ou un itérateur.
numbers = [1, 2, 2, 3, 4, 2, 5]
print(numbers.count(2)) # Affiche : 3
text = "hello world"
print(text.count("o")) # Affiche : 2
Fonction sum()
La fonction sum()
renvoie la somme de tous les éléments d'un
objet itérable. On peut optionnellement spécifier une valeur initiale qui sera
ajoutée à la somme.
numbers = [1, 2, 3, 4, 5]
print(sum(numbers)) # Affiche : 15
# Avec une valeur initiale
print(sum(numbers, 10)) # Affiche : 25
1.3 Exécution de code
Et encore deux fonctions qui peuvent t'être utiles en tant que débutant :
eval()
exec()
Elles ont des capacités puissantes, mais nécessitent une utilisation prudente en raison des risques de sécurité potentiels. Voici des infos détaillées sur chacune de ces fonctions :
Fonction eval()
La fonction eval(expression)
prend une chaîne et l'exécute comme une expression
Python. Elle renvoie le résultat de l'exécution de cette expression.
Utilisée pour évaluer des expressions sous forme de chaîne de caractères comme du code Python.
Exemples :
x = 10
result = eval("x + 5")
print(result) # Affiche : 15
Fonction exec()
La fonction exec()
prend une chaîne et l'exécute comme du code Python.
Contrairement à eval()
, qui exécute uniquement des expressions,
exec()
peut exécuter n'importe quelle instruction Python, y compris
les définitions de fonctions, boucles et importation de modules. Cette fonction ne renvoie
aucune valeur.
Utilisée pour exécuter des scripts dynamiques et définir de nouvelles fonctions ou classes pendant l'exécution du programme.
code = """
def greet(name):
print(f"Hello, {name}!")
greet("Alice")
"""
exec(code)
# Affiche : Hello, Alice!
Important !
Tout comme eval()
, exec()
peut être dangereux
lorsqu'il est utilisé avec des entrées non fiables. Sois prudent
et évite d'utiliser exec()
pour exécuter du code en production.
GO TO FULL VERSION