[Introduction à Python] Comment juger de l'authenticité avec l'instruction if (True et None)

Site de référence: [Introduction à Python] Comment déterminer l'authenticité avec l'instruction if (True et None)

[Introduction à Python] Comment juger de l'authenticité avec l'instruction if (True et None)

J'utilise souvent des instructions if en python, mais j'aimerais expliquer les occasionnelles None. Dans l'instruction if, il y a une condition à comparer et il est déterminé si l'instruction de condition est True ou False. Aucun est un concept proche de False, et vous pouvez presque penser à False = None. La différence est que False a l'information qu'il est faux (0), tandis que None signifie qu'il n'y a pas de données là-bas »en premier lieu. Je pense que c'est difficile à comprendre à partir des seuls mots, alors j'aimerais donner un exemple concret.

Comment gérer Vrai et Faux

Commençons par un exemple de True et False.

>>> a = 3
>>> if(a > 1):
...  print "a > 1"
a > 1

C'est un programme qui affiche "a> 1" si la valeur a est supérieure à 1. Dans l'instruction if, la vérité d'un> 1 est jugée. Maintenant que nous avons un = 3, le verdict est vrai. Le fait est qu'il juge seulement si la sentence du jugement est vraie ou fausse, donc la même chose peut être faite comme suit.

>>> if(True):
...  print "True"
... 
True
>>> if(False):
...  print "True"
... else:
...  print "False"
... 
False

De cette manière, il est décidé si l'énoncé de jugement est vrai ou faux, et à la fin, il est jugé comme 1 et 0 dans le programme (True = 1, False = 0).

Juste au cas où, assurons-nous que True = 1 et False = 0.

>>> print 1+True
2
>>> print 1+False
1

Comme vous pouvez le voir, True et False correspondent à 1 et à zéro.

Comment gérer Aucun

Parlons maintenant de Aucun, qui est le sujet principal. Jugons l'instruction if de la même manière.

>>> print 1+True
2
>>> print 1+False
1

Jusqu'à présent, il semble que vous puissiez penser à False = None. Ensuite, ajoutons.

>>> print 1+None
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

Hmmm, j'ai une erreur ici. Comme mentionné au début, None indique qu'il n'y a pas de données là-bas, donc il n'y a pas de concept de valeur. Par conséquent, vous pouvez voir qu'il est impossible d'ajouter les valeurs.

L’utilisation d’objets de type dictionnaire est un exemple d’apparition Aucun. Des exemples d'objets de type dictionnaire sont les suivants.

test = {"red":"apple","blue":"sky","green":"forest"}

En liant le rouge et la pomme, vous pouvez trouver la pomme en recherchant avec le mot-clé rouge. La fonction get est utile pour effectuer une recherche par mot-clé ici.

>>> print  test.get("red")
apple

Maintenant, recherchons des mots (orange) qui ne sont pas enregistrés dans ce dictionnaire.

>>> print  test.get("orange")
None

C'est là qu'aucun n'est entré. Comme vous pouvez le voir, None est utilisé pour indiquer des données inexistantes. Vous pouvez voir que la signification est un peu différente de False.

Au fait, il est possible d'accéder directement avec test [“keyword”], mais si vous utilisez un mot-clé qui n'existe pas, vous obtiendrez une KeyError comme indiqué ci-dessous.

>>> print  test["orange"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'orange'

Si cela se produit, le programme que vous avez écrit sera interrompu de force au milieu, il est donc recommandé d'utiliser la fonction get qui ne se termine pas.

Comparaison avec Aucun

Lorsque vous utilisez la comparaison logique None, "is" ou "==" convient parfaitement.

>>> a = test.get("orange") #Ne mettez aucun dans un
>>> if (a == None): # ==Comparaison logique avec
...  print "a == None"
a == None
>>> if (a is None): #Comparaison logique avec is
...  print "a is None"
... 
a is None

Les deux fonctionnent correctement. Pour le dire franchement, «est» est recommandé. Bien que ce soit un cas rare, il semble qu'une erreur puisse se produire avec "==" (bien que l'auteur ne l'ait pas encore rencontré). On dit également que "est" est plus rapide en termes de vitesse d'exécution. Le résultat de la mesure du temps de traitement à l'aide du module timeit pour la vérification est affiché.

>>> timeit.timeit("1 == None", number=10000000)
0.3263418674468994

Ce que cela signifie est "Il a fallu 0,33 seconde pour mesurer le temps nécessaire pour comparer" 1 == Aucun "10 000 000 fois."

De la même manière, essayez "1 is None".

>>> timeit.timeit("1 is None", number=10000000)
0.19225311279296875

Comme vous pouvez le voir sur ce résultat, le temps de traitement est d'environ 0,19 / 0,33 à 60% plus rapide lors de l'utilisation de is.

Recommended Posts

[Introduction à Python] Comment juger de l'authenticité avec l'instruction if (True et None)
[Introduction à l'application Udemy Python3 +] 33. instruction if
[Introduction à Python] Comment obtenir l'index des données avec l'instruction for
[Introduction à Python] Comment itérer avec la fonction range?
[Introduction à Udemy Python3 + Application] 68. Instruction d'importation et AS
Ajouter avec Python if instruction
[python] Comment juger scalaire
[Introduction à Python] Comment écrire des branches conditionnelles en utilisant des instructions if
[Python] Comment jouer avec les variables de classe avec décorateur et métaclasse
[Introduction à l'application Udemy Python3 +] 42. pour instruction, instruction break et instruction continue
[Introduction à l'application Udemy Python3 +] 39. instruction while, instruction continue et instruction break
[Python] Comment écrire une instruction if en une phrase.
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Comment se connecter à AtCoder avec Python et soumettre automatiquement
Python: comment utiliser async avec
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à Python] Comment analyser JSON
Comment démarrer avec Python
Introduction à Hadoop et MapReduce avec Python
Comment calculer la date avec python
[Introduction à Python] Comment fractionner une chaîne de caractères avec la fonction split
[Introduction à Python] Comment générer une chaîne de caractères dans une instruction Print
Comment importer des fichiers CSV et TSV dans SQLite avec Python
Comment créer une caméra de surveillance (caméra de sécurité) avec Opencv et Python
[Introduction à Python] Comment utiliser l'opérateur in dans l'instruction for?
Comment gérer les erreurs lors de l'installation de Python et de pip avec choco
[Introduction à Python] Comment utiliser l'opérateur booléen (et ・ ou ・ non)
Comment créer un environnement d'exécution Python et Jupyter avec VSCode
Comment empaqueter et distribuer des scripts Python
[Introduction à Python] Comment utiliser la classe en Python?
Comment installer et utiliser pandas_datareader [Python]
Introduction au remplissage d'image Python Remplissage d'image à l'aide d'ImageDataGenerator
Fractal pour faire et jouer avec Python
Comment utiliser BigQuery en Python
[Introduction à Python] Utilisons foreach avec Python
Comment faire un test de sac avec python
Comment afficher le japonais python avec lolipop
python: Comment utiliser les locals () et globals ()
Comment entrer le japonais avec les malédictions Python
[Python] Comment calculer MAE et RMSE
Comment utiliser le zip Python et énumérer
Comment utiliser is et == en Python
Comment installer python3 avec docker centos
[Introduction à Udemy Python3 + Application] 47. Traitez le dictionnaire avec une instruction for
Que faire si ipython et python démarrent avec des versions différentes
Comment obtenir la différence de date et d'heure en secondes avec Python
[Introduction à Python] Comment trier efficacement le contenu d'une liste avec le tri par liste
[Introduction à Python] Comment écrire une chaîne de caractères avec la fonction format
[Introduction à Python] Quelle est la méthode de répétition avec l'instruction continue?
[Python] Comment créer une liste de types de dictionnaire, ajouter / modifier / supprimer des éléments et extraire avec une instruction for
Comment télécharger avec Heroku, Flask, Python, Git (4)
[Python] Introduction facile à l'apprentissage automatique avec python (SVM)
Introduction à l'intelligence artificielle avec Python 1 «Théorie des algorithmes génétiques»
Comment lire un fichier CSV avec Python 2/3