Quest-ce que le self en Python ? Exemples concrets
Qu'est-ce que le self en Python ? Exemples concrets
En programmation, vous pouvez rencontrer des situations où une variable n'a pas de valeur. Ces instances sont généralement représentées par une valeur spéciale appelée null. De nombreux langages de programmation, tels que C, Java, JavaScript et PHP, ont des valeurs nulles intégrées, mais Python adopte une approche légèrement différente pour représenter les variables nulles.
En Python, l'équivalent de null est None. C'est une constante spéciale en Python qui représente l'absence de valeur ou une valeur nulle. C'est une instance de son propre type de données — le NoneType. Ce n'est pas la même chose que 0, False ou une chaîne vide car c'est un type de données qui ne représente aucune valeur ou aucun objet.
Si vous apprenez Python, il est important de comprendre le concept de None en Python. Il vous fournit les moyens de créer un code efficace qui gère les cas extrêmes. En explorant la programmation Python, vous rencontrerez divers scénarios où None s'avère essentiel.
Dans cet article, nous allons explorer ce qu'est un null, ou aucun, en Python. Nous passerons en revue des exemples et des cas d'utilisation pour vous aider à consolider le concept de valeurs nulles. Mais d'abord, comprenons le concept de valeurs None ou Null en Python.
Table des matières
Qu'est-ce que Null en Python ?
Afin de comprendre null en Python, vous devrez comprendre les deux concepts suivants :
Différence entre aucun et nul
Aucun type
1. Différence entre aucun et nul
Null dans de nombreux langages de programmation est utilisé pour désigner un pointeur vide ou une valeur inconnue. Vous pouvez définir la valeur null comme 0 dans ces langages.
Cependant, en Python, au lieu de null, vous utilisez le mot-clé None pour définir des objets et des variables vides. None remplit certaines des mêmes fonctions que null dans d'autres langages. Mais c'est une entité distincte et non définie comme étant 0 ou toute autre valeur.
2. AucunType
En Python, None est un type unique de structure de données, classé sous un type appelé NoneType. C'est un citoyen de première classe, ce qui signifie que vous pouvez l'affecter à des variables. Vous pouvez également le passer en argument et le renvoyer comme résultat.
Lorsque vous affectez une valeur de variable None, elle devient un objet NoneType. None n'est pas équivalent à une chaîne vide, à la valeur booléenne False ou à la valeur numérique 0. Cela signifie simplement une variable nulle ou rien.
Maintenant que vous comprenez les terminologies liées à none, allons-y et voyons comment vous pouvez utiliser None pour différents cas d'utilisation !
Comment utiliser None en Python
En Python, vous pouvez utiliser None pour un certain nombre de cas d'utilisation. Dans cette section, nous examinerons 4 cas d'utilisation importants de None en Python.
Plus précisément, nous examinerons les cas d'utilisation suivants :
Affectation de Aucun aux variables
Utiliser Aucun comme paramètre par défaut
Vérification de Aucun avec l'opérateur d'identité
Gestion des valeurs manquantes
Allons-y !
1. Affectation de None aux variables
Vous pouvez affecter Aucun aux variables pour indiquer l'absence d'une valeur.
Par exemple:
x = None
Aucun ici signifie que la valeur de x est absente ou qu'une valeur valide n'a pas encore été décidée.
2. Utiliser Aucun comme paramètre par défaut
Vous pouvez également utiliser None comme valeur de paramètre par défaut pour définir des fonctions. Ceci est utile lorsque vous souhaitez autoriser des arguments facultatifs pour les paramètres par défaut dans vos fonctions.
Le code suivant vous montre comment utiliser None comme paramètre par défaut :
def greet(name=None):
if name is None:
print("Hello, World!")
else:
print(f"Hello, {name}!")
# Call the function without providing a name
greet()
# Call the function with a name
greet("Alice")
Lorsque vous exécutez ce code, il imprime "Hello, World!" lorsque vous appelez greet() sans aucun argument. Mais lorsque vous appelez greet() avec un argument, comme greet("Alice"), il affiche "Hello, Alice!". Cela permet à la fonction d'avoir des arguments facultatifs.
3. Vérifier aucun avec l'opérateur d'identité
Vous pouvez utiliser l' opérateur is identity pour vérifier si une variable est None. Cela vous permet de comparer si deux variables font référence au même objet.
Voici un exemple pour vous montrer comment utiliser l'opérateur d'identité :
# Define a variable with no value
var1 = None
# Define a variable with a value
var2 = "Hello, World!"
# Check if var1 is None
if var1 is None:
print("var1 is None")
else:
print("var1 is not None")
# Check if var2 is None
if var2 is None:
print("var2 is None")
else:
print("var2 is not None")
Dans ce code, var1 est None renverra True car var1 a reçu la valeur None. D'autre part, var2 est None renverra False car var2 a une valeur de chaîne.
La sortie du script est donnée ci-dessous :
4. Gestion des valeurs manquantes
Vous pouvez également rencontrer des données avec des valeurs manquantes. Vous pouvez représenter ces valeurs manquantes par Aucun et les gérer en conséquence.
Voici un exemple lorsqu'il s'agit d'une liste de nombres :
# Define a list of data with some missing values
data = [1, 2, 3, None, 5, None, 7, 8, None, 10]
def calculate_average(data):
# Filter out None values using list comprehension
valid_data = [value for value in data if value is not None]
# Calculate average if valid_data is not empty
average = sum(valid_data) / len(valid_data) if valid_data else None
return average
# Call the function and print the result
print(calculate_average(data))
Cette fonction calcule la somme de toutes les valeurs non-Aucune de la liste et la divise par le nombre de valeurs non-Aucune. Si toutes les valeurs de la liste sont None, la fonction renvoie None.
La sortie est donnée ci-dessous :
En utilisant None et les différentes techniques mentionnées ci-dessus, vous pouvez gérer efficacement les valeurs manquantes en Python.
Pour en savoir plus sur la gestion des valeurs manquantes dans Python, regardez la vidéo suivante :
Quelques autres cas d'utilisation de None en Python
Outre les cas d'utilisation abordés dans la section ci-dessus, il existe également d'autres cas d'utilisation de None. Ces cas d'utilisation ne sont pas fréquemment utilisés mais sont bons à savoir et sont utiles dans certains scénarios.
Dans cette section, nous examinerons les 3 cas d'utilisation suivants de None en Python :
Utilisation de None dans les instructions de retour
Utiliser None comme drapeaux
Utiliser Aucun pour les objets personnalisés
Plongeons-y !
1. Utiliser None comme déclarations de retour
Vous pouvez utiliser None dans les instructions de retour, en particulier lorsqu'une fonction termine son exécution sans trouver de résultat spécifique.
Par exemple, une fonction qui recherche un élément dans une liste peut renvoyer None si l'élément est introuvable. Le code suivant illustre l'utilisation de None comme valeur de retour :
# Define a list
numbers = [10, 20, 30, 40, 50]
def find_in_list(lst, target):
for i, value in enumerate(lst):
if value == target:
return i
return None
# Search for a number in the list
print(find_in_list(numbers, 30))
print(find_in_list(numbers, 60))
Dans ce code, la fonction find_in_list itère sur la liste d'entrée lst . S'il trouve la valeur cible, il renvoie l'index de cette valeur. S'il ne trouve pas la valeur cible après avoir vérifié toute la liste, il renvoie None.
La sortie est donnée ci-dessous :
2. Utiliser None comme drapeaux
Vous pouvez également utiliser Aucun comme indicateur pour indiquer l'état d'une variable. Par exemple, vous pouvez l'utiliser pour marquer si une valeur n'est pas initialisée ou pour suivre une condition spéciale dans le programme.
Voici un exemple de la façon dont vous pouvez utiliser Aucun comme indicateur :
def find_first_even_number(numbers):
# Initialize the first_even_number to None
first_even_number = None
# Iterate over the list of numbers
for number in numbers:
# If we find an even number and first_even_number is still None
if number % 2 == 0 and first_even_number is None:
first_even_number = number
break
return first_even_number
numbers = [1, 3, 5, 7, 8, 10]
# Call the function and print the result
print(find_first_even_number(numbers)) # Outputs: 8
Dans ce code, None est utilisé comme indicateur pour indiquer que nous n'avons pas encore trouvé de nombre pair dans la liste.
Si first_even_number est toujours None après la boucle , cela signifie qu'il n'y avait pas de nombres pairs dans la liste.
If first_even_number is not None, it contains the first even number from the list.
3. Using None for Custom Objects
You can use None for custom, user-defined objects, as well. When dealing with attributes, properties, or methods that return other objects, you might use None to signify the absence of a value or a relationship.
The following example demonstrates how you can use None for user-defined objects:
class Person:
def __init__(self, name):
self.name = name
self.best_friend = None
def set_best_friend(self, person):
self.best_friend = person
def get_best_friend_name(self):
if self.best_friend is not None:
return self.best_friend.name
else:
return None
# Create two Person objects
alice = Person('Alice')
bob = Person('Bob')
# Alice's best friend is Bob
alice.set_best_friend(bob)
print(alice.get_best_friend_name())
# Charlie doesn't have a best friend
charlie = Person('Charlie')
print(charlie.get_best_friend_name())
In this example, None is used as a default value for the best_friend attribute of a Person instance. The get_best_friend_name method returns the name of the best friend if there is one, and None if there isn’t.
The above code will output the following:
Special Functions and Techniques for Null Object
Nous allons maintenant discuter de certaines fonctions et techniques spéciales que vous pouvez utiliser liées à NoneType et à la gestion des valeurs nulles. Nous couvrirons deux sous-sections principales :
La fonction d'identification
La fonction Getattr
1. Fonction d'identification
La fonction id() en Python est une fonction intégrée qui renvoie l'identité d'un objet. Cette identité est un entier unique et constant attribué à un objet pendant sa durée de vie.
Cela vous permet de distinguer les objets avec des adresses mémoire différentes. La fonction est particulièrement utile lorsque vous travaillez avec des objets NoneType, car elle peut être utilisée pour vérifier la présence de None dans des variables ou des expressions.
Voici un exemple utilisant la fonction id() :
a = None
b = None
c = 42
print(id(a)) # Output: some unique integer representing None
print(id(b)) # Output: same integer as id(a)
print(id(c)) # Output: different integer from id(a) and id(b)
La sortie de ce code est donnée ci-dessous :
Étant donné que None est un citoyen de première classe en Python, il a sa propre identité unique. Cela signifie que vous pouvez utiliser la fonction id() pour comparer les variables à None en utilisant leurs identités :
if id(a) == id(None):
print("a is None")
La sortie est donnée ci-dessous :
2. Fonction Getattr
La fonction getattr() est une autre fonction Python intégrée qui vous permet d'accéder aux attributs d'un objet par son nom.
Étant donné un objet et une chaîne, getattr() renvoie la valeur de l'attribut nommé ou l'objet None si l'attribut n'existe pas.
Cela peut vous être utile lors de la gestion des valeurs nulles, en particulier dans les cas où vous devez accéder à des attributs qui pourraient être manquants.
Voici un exemple utilisant la fonction getattr() :
class ExampleClass:
def __init__(self, x, y):
self.x = x
self.y = y
example_obj = ExampleClass(3, 4)
# Access attribute using getattr
print(getattr(example_obj, "x")) # Output: 3
print(getattr(example_obj, "z", None)) # Output: None
Dans l'exemple ci-dessus, nous utilisons getattr() pour accéder à l'attribut x et tentons d'accéder à un attribut z inexistant.
En fournissant une valeur par défaut de None, nous empêchons une AttributeError et recevons à la place l'objet None.
Par conséquent, cette fonction permet un accès sécurisé aux attributs même en présence d'objets nuls ou d'attributs manquants.
La sortie de ce code est donnée ci-dessous :
Comparaison de Null dans d'autres langages de programmation
Au début de cet article, nous avons fait une courte comparaison entre Null en Python et Null dans d'autres langages de programmation.
Dans cette section, nous allons avancer sur ce sujet et comparer Null dans d'autres langages de programmation populaires avec Null en Python. Cela vous aidera à mieux comprendre le concept de None en Python si vous venez d'un autre milieu de programmation.
Allons-y !
1. Null en Java
En Java, le mot-clé "null" représente une référence qui ne pointe vers aucun objet ou valeur. Il est utilisé pour indiquer l'absence d'une valeur et est souvent utilisé comme valeur par défaut pour les références d'objet.
Par exemple:
String myString = null; // Declare a String object with a null reference
Le null de Java est différent du None de Python. Null représente un manque d'objet, alors que None est un objet réel de NoneType.
2. Nul en C
Dans le langage de programmation C, null est représenté par un pointeur null, qui indique un pointeur non initialisé ou vide. Le pointeur nul est souvent représenté par la valeur entière 0.
Voici un exemple d'utilisation d'un pointeur nul en C :
int *myPointer = NULL; // Declare an integer pointer with a null reference
Null en C n'est pas associé à un type de données spécifique. Il sert d'espace réservé pour les pointeurs non initialisés ou vides.
3. Null en PHP
En PHP, null représente une variable sans valeur ou sans référence. Comme dans d'autres langages, null est utilisé pour désigner des variables non initialisées ou vides.
Voici un exemple de Null en PHP :
$myVar = NULL; // Declare a variable with a null reference
Le null de PHP n'est pas un objet d'un type de données spécifique mais plutôt une constante spéciale qui représente l'absence de valeur.
Dernières pensées
Dans votre parcours en tant que programmeur Python, l'apprentissage des valeurs None est d'une grande importance. C'est une fonctionnalité unique qui sert à Python de dire "rien ici".
C'est essentiel pour représenter l'absence de valeur. En comprenant et en utilisant correctement None, vous êtes en mesure de créer des fonctions plus flexibles avec des arguments facultatifs et de gérer efficacement les données manquantes.
De plus, les valeurs None permettent à vos fonctions de communiquer clairement quand quelque chose est absent ou quand une condition n'a pas été remplie. De plus, comprendre None est crucial lorsqu'il s'agit de bases de données, d'objets définis par l'utilisateur ou lorsque vous devez initialiser des variables.
Ce guide sur les valeurs None en Python illustre certains des scénarios importants dans lesquels vous souhaiterez utiliser l'objet None dans votre code.
Qu'est-ce que le self en Python ? Exemples concrets
Vous apprendrez à enregistrer et à charger des objets à partir d'un fichier .rds dans R. Ce blog expliquera également comment importer des objets de R vers LuckyTemplates.
Dans ce didacticiel sur le langage de codage DAX, découvrez comment utiliser la fonction GENERATE et comment modifier dynamiquement le titre d'une mesure.
Ce didacticiel explique comment utiliser la technique Multi Threaded Dynamic Visuals pour créer des informations à partir de visualisations de données dynamiques dans vos rapports.
Dans cet article, je vais parcourir le contexte du filtre. Le contexte de filtrage est l'un des principaux sujets que tout utilisateur de LuckyTemplates doit d'abord connaître.
Je souhaite montrer comment le service en ligne LuckyTemplates Apps peut aider à gérer différents rapports et informations générés à partir de diverses sources.
Découvrez comment calculer les modifications de votre marge bénéficiaire à l'aide de techniques telles que la création de branches de mesure et la combinaison de formules DAX dans LuckyTemplates.
Ce didacticiel abordera les idées de matérialisation des caches de données et comment elles affectent les performances des DAX dans la fourniture de résultats.
Si vous utilisez encore Excel jusqu'à présent, c'est le meilleur moment pour commencer à utiliser LuckyTemplates pour vos besoins en matière de rapports commerciaux.
Qu'est-ce que la passerelle LuckyTemplates ? Tout ce que tu as besoin de savoir