CodeGym /Cours Java /Python SELF FR /Compléments importants

Compléments importants

Python SELF FR
Niveau 5 , Leçon 6
Disponible

6.1 Les variables sont des références

En Python, les variables sont des références à des objets, et non la variable elle-même. Cela signifie que lorsque tu crées une variable en Python, tu crées simplement une référence à un objet en mémoire.

Cette caractéristique du langage a des implications importantes pour le travail avec les variables, surtout lors de la transmission d'objets aux fonctions ou leur affectation à d'autres variables.

Lorsque tu crées une variable et lui attribues une valeur, Python alloue un objet en mémoire pour cette valeur et fait de la variable une référence à cet objet. Si tu assignes une variable à une autre, la nouvelle variable référencera le même objet que la variable d'origine. Cela signifie que les modifications effectuées via une variable se refléteront également sur l'autre, si l'objet est modifiable.

Exemple :


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # Affichera: [1, 2, 3, 4]

Nous avons ajouté le nombre 4 à la variable b, mais il a également été ajouté à la liste dans la variable a, car en réalité les deux variables ne sont que des références à l'objet liste [1, 2, 3].

6.2 Objets immuables

En Python, les objets sont divisés en modifiables et immuables. Les objets modifiables, tels que les listes et les dictionnaires, peuvent être modifiés après leur création.

Les objets immuables, comme les chaînes de caractères et les nombres, ne peuvent pas être modifiés après leur création. Lorsque tu travailles avec des objets immuables, les modifications entraînent la création d'un nouvel objet :

L'affectation ne modifie jamais un objet :


a = 5  # a stocke une référence à l'objet 5
b = a  # b stocke aussi une référence à l'objet 5
b = 3  # maintenant b stocke une référence à l'objet 3
print(a)  # Affichera: 5               

Un objet peut être modifié en appelant sa fonction :


a = [1, 2, 3]
b = a
b.append(4)
print(a)  # Affichera: [1, 2, 3, 4]                              

Mais il y a des objets immuables qui ont des fonctions. Ces fonctions ne modifient pas l'objet d'origine mais renvoient un nouvel objet qui contient le nouveau résultat :


name = "Alex"
print(name)  # Affichera: Alex
name2 = name.lower() 
print(name2)  # Affichera: alex               

Les chaînes de caractères sont des objets immuables. Et bien qu'elles aient des méthodes, ces méthodes ne changent jamais l'objet de la chaîne — à la place, elles renvoient toujours une nouvelle chaîne (un nouvel objet). L'ancien objet reste inchangé.

6.3 Travailler avec le type None

En Python, il existe un type de données spécial représentant l'absence de valeur — None. Il est utilisé pour désigner des variables vides ou comme valeur de retour pour les fonctions qui ne renvoient rien. Comprendre None est important pour gérer le comportement du programme, surtout dans le contexte des opérateurs conditionnels et du traitement des données.

Principes de base de l'utilisation de None

None est l'unique instance de la classe NoneType. Il est utilisé pour indiquer qu'une variable n'a pas de valeur. Dans les conditions, None est évalué comme faux (False).


a = None
if a:
    print("a est True")
else:
    print("a est None ou False")

Comparaison avec None

La vérification d'une variable par rapport à None doit se faire à l'aide de l'opérateur is, et non ==. L'opérateur is vérifie l'identité, pas l'égalité des valeurs.


a = None
if a is None:
    print("a est None")
else:
    print("a a une valeur")

None dans les fonctions

None est souvent utilisé dans les fonctions qui ne doivent pas explicitement retourner une valeur. Si une fonction ne renvoie pas de valeur, elle renvoie implicitement None.


def func():
    print("Cette fonction renvoie None")

result = func()
print(result)  # Affichera: None

None et les listes

None peut être utilisé dans les listes, tuples, ou d'autres collections pour indiquer l'absence d'un élément à une position donnée.


my_list = [1, None, 3]
print(my_list)  # Affichera: [1, None, 3]
1
Опрос
Conversion de types,  5 уровень,  6 лекция
недоступен
Conversion de types
Conversion de types
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION