Conseils pour ceux qui ne savent pas comment utiliser is et == en Python

is doit être utilisé dans la comparaison d'objets

En Python, il s'écrit parfois «si x est y» ou «si x == y». À ce moment-là, vous risquez de vous perdre avec ʻiset==. Par conséquent, les différences entre ʻis et` == ʻ sont résumées ci-dessous.

--ʻIs compare les objets (s'ils sont le même objet) -- == `compare les valeurs (qu'elles soient de la même valeur)

Cas d'utilisation (lors de l'utilisation est)

x = <object A> Est défini, if x is <object A>: C'est le cas lorsque vous souhaitez écrire une expression conditionnelle.

Bien sûr, pour les comparaisons Vrai / Faux x = True Définir, if x is True: Ce n'est pas une erreur, mais dans ce cas pythonique if x: C'est bon d'écrire.

→ La raison pour laquelle x vaut True est correct est que la classe booléenne True / False est conçue de telle sorte qu'il n'y en ait qu'une à un moment donné.

The values False and True will be singletons, like None.

Source du devis PEP285

Cas d'utilisation (lors de l'utilisation de ==)

x = 1234 Est défini, if x == 1234: C'est le cas lorsque vous souhaitez écrire une expression conditionnelle.

Résumé

Ne confondez pas avec == et utilisez-les correctement.

note de bas de page

Note de bas de page 1 Contenu présenté dans la section commentaire par @ 7of9

https://docs.python.org/3.6/library/functions.html#id

id(object) ... CPython implementation detail: This is the address of the object in memory.

Est la base du document.

Note de bas de page 2 Contenu présenté dans la section commentaire par @shiracamus

J'ai vérifié la source de CPython. "is" a été remplacé par Is, Is a été remplacé par PyCmp_IS et PyCmp_IS a comparé les adresses comme suit:

Python/ceval.c


static PyObject *
cmp_outcome(int op, register PyObject *v, register PyObject *w)
{
    int res = 0;
    switch (op) {
    case PyCmp_IS:
        res = (v == w);
        break;
    case PyCmp_IS_NOT:
        res = (v != w);
        break;

En fin de compte, nous faisons une comparaison d'adresses.

Recommended Posts

Conseils pour ceux qui ne savent pas comment utiliser is et == en Python
Comment utiliser is et == en Python
[Pour les débutants] Comment utiliser la commande say avec python!
Points à garder à l'esprit lors de l'utilisation de Python pour ceux qui utilisent MATLAB
Comment utiliser SQLite en Python
Comment utiliser Mysql avec python
Comment utiliser ChemSpider en Python
Comment utiliser PubChem avec Python
Pour ceux qui ont du mal à dessiner des graphiques avec python
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
Conseils pour coder courts et faciles à lire en Python
Comparaison de l'utilisation des fonctions d'ordre supérieur dans Python 2 et 3
Pour ceux qui ont des problèmes car NFC est lu à l'infini lors de la lecture de NFC avec Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
Comment utiliser les fonctions dans des fichiers séparés version Perl et version Python
Comment utiliser l'astérisque (*) en Python. C'est peut-être tout? ..
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
[Python] Organisation de l'utilisation des instructions
python: Comment utiliser les locals () et globals ()
Comment utiliser __slots__ dans la classe Python
Comment utiliser "deque" pour les données Python
Comment utiliser le zip Python et énumérer
Comment utiliser les expressions régulières en Python
Une note à ceux qui utilisent Python dans Visual Studio (moi)
Comment générer une séquence en Python et C ++
Comment utiliser la bibliothèque d'images Python dans la série python3
Résumé de l'utilisation de MNIST avec Python
Comment utiliser tkinter avec python dans pyenv
[Python] Comment utiliser la fonction de hachage et taple.
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
OpenGoddard Comment utiliser la bibliothèque 2-python pour un contrôle optimal non linéaire et la génération de trajectoires
Comment utiliser la bibliothèque OpenGoddard 3-python pour un contrôle optimal non linéaire et la génération de trajectoires
Comment utiliser la bibliothèque OpenGoddard 4-python pour un contrôle optimal non linéaire et la génération de trajectoires
Pour ceux qui veulent apprendre Excel VBA et se lancer avec Python
Comment utiliser OAuth et API de compte de service avec le client API Google pour python
5 raisons pour lesquelles le traitement est utile pour ceux qui veulent se lancer avec Python
Comment utiliser la bibliothèque OpenGoddard 1-python pour un contrôle optimal non linéaire et la génération de trajectoires
[Python] [Django] Comment utiliser le champ de choix et comment ajouter des options
Comment exécuter python dans l'espace virtuel (pour MacOS)
[Python] Comment trier un dict dans une liste et une instance dans une liste
J'ai essayé de résumer comment utiliser les pandas de python
Pour ceux qui veulent écrire Python avec vim
Comment utiliser le modèle appris dans Lobe en Python
Comment utiliser Decorator dans Django et comment le créer
Python # Comment vérifier le type et le type pour les super débutants
Conseils aux débutants en Python pour utiliser l'exemple Scikit-image pour eux-mêmes 7 Comment créer un module
Comment utiliser pip, un système de gestion de paquets indispensable pour utiliser Python
python3: Comment utiliser la bouteille (2)
[Python] Comment utiliser la liste 1
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
Pour ceux qui débutent en programmation mais qui ont décidé d'analyser les données avec Python
Remarques sur l'utilisation de StatsModels qui peuvent utiliser la régression linéaire et GLM en python
Comment développer en Python
~ Conseils pour les débutants de Python présentés avec amour par Pythonista ③ ~
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)