[Einführung in Python] So beurteilen Sie die Authentizität mit der if-Anweisung (True und None)

Referenzseite: [Einführung in Python] So beurteilen Sie die Authentizität mit der if-Anweisung (True and None)

[Einführung in Python] So beurteilen Sie die Authentizität mit der if-Anweisung (True und None)

Ich verwende oft if-Anweisungen in Python, möchte aber gelegentlich None erklären. In der if-Anweisung muss eine Bedingung verglichen werden, und es wird bestimmt, ob die Bedingungsanweisung wahr oder falsch ist. None ist ein Konzept, das False nahe kommt, und Sie können fast an False = None denken. Der Unterschied besteht darin, dass False die Information hat, dass es falsch ist (0), während None bedeutet, dass "dort keine Daten vorhanden sind". Ich denke, es ist schwierig, die Worte allein zu verstehen, deshalb möchte ich ein konkretes Beispiel geben.

Wie man mit Richtig und Falsch umgeht

Beginnen wir mit einem Beispiel für Richtig und Falsch.

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

Dies ist ein Programm, das "a> 1" anzeigt, wenn der Wert a größer als 1 ist. In der if-Anweisung wird die Wahrheit von a> 1 beurteilt. Jetzt, wo wir a = 3 haben, ist das Urteil wahr. Der Punkt ist, dass nur beurteilt wird, ob der Urteilssatz wahr oder falsch ist, so dass das Gleiche wie folgt getan werden kann.

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

Auf diese Weise wird entschieden, ob die Urteilsaussage wahr oder falsch ist, und am Ende wird sie im Programm als 1 und 0 beurteilt (wahr = 1, falsch = 0).

Stellen wir für alle Fälle sicher, dass True = 1 und False = 0 sind.

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

Wie Sie sehen können, entsprechen Wahr und Falsch 1 und Null.

Umgang mit None

Lassen Sie uns nun über None sprechen, was das Hauptthema ist. Lassen Sie uns die if-Anweisung auf die gleiche Weise beurteilen.

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

Bisher scheint man an False = None denken zu können. Als nächstes fügen wir hinzu.

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

Hmmm, ich habe hier einen Fehler bekommen. Wie eingangs erwähnt, gibt None an, dass dort keine Daten vorhanden sind, sodass kein Wertbegriff vorhanden ist. Daher können Sie sehen, dass es unmöglich ist, die Werte hinzuzufügen.

Ein Beispiel dafür, wann None angezeigt wird, ist die Verwendung von Objekten vom Typ Wörterbuch. Beispiele für Wörterbuchobjekte sind wie folgt.

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

Durch die Verknüpfung von Rot und Apfel können Sie Apfel finden, indem Sie mit dem Schlüsselwort Rot suchen. Die Funktion get ist nützlich, wenn Sie hier eine Stichwortsuche durchführen.

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

Suchen wir nun nach Wörtern (orange), die nicht in diesem Wörterbuch registriert sind.

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

Hier kam keiner ins Spiel. Wie Sie sehen können, wird None verwendet, um nicht vorhandene Daten anzuzeigen. Sie können sehen, dass die Bedeutung ein wenig anders ist als Falsch.

Übrigens ist es möglich, direkt mit test ["Schlüsselwort"] zuzugreifen. Wenn Sie jedoch ein Schlüsselwort verwenden, das nicht vorhanden ist, erhalten Sie einen KeyError, wie unten gezeigt.

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

In diesem Fall wird das von Ihnen geschriebene Programm in der Mitte zwangsweise beendet. Es wird daher empfohlen, die Funktion get zu verwenden, die nicht beendet wird.

Vergleich mit None

Bei Verwendung des logischen Vergleichs "Keine" ist entweder "ist" oder "==" in Ordnung.

>>> a = test.get("orange") #Setzen Sie keine in eine
>>> if (a == None): # ==Logischer Vergleich mit
...  print "a == None"
a == None
>>> if (a is None): #Logischer Vergleich mit is
...  print "a is None"
... 
a is None

Beide funktionieren einwandfrei. Um es ganz klar auszudrücken, wird "is" empfohlen. Obwohl dies ein seltener Fall ist, scheint es, dass bei "==" ein Fehler auftreten kann (obwohl der Autor ihn noch nicht gefunden hat). Es wird auch gesagt, dass "ist" in der Ausführungsgeschwindigkeit schneller ist. Das Ergebnis der Messung der Verarbeitungszeit mit dem Timeit-Modul zur Überprüfung wird angezeigt.

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

Was dies bedeutet ist "Es dauerte 0,33 Sekunden, um die Zeit zu messen, die erforderlich war, um" 1 == Keine "10000000 Mal zu vergleichen."

Versuchen Sie auf die gleiche Weise "1 ist keine".

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

Wie Sie diesem Ergebnis entnehmen können, ist die Verarbeitungszeit bei Verwendung um 0,19 / 0,33 bis 60% schneller.

Recommended Posts

[Einführung in Python] So beurteilen Sie die Authentizität mit der if-Anweisung (True und None)
[Einführung in die Udemy Python3 + -Anwendung] 33. if-Anweisung
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
[Einführung in Python] Wie iteriere ich mit der Bereichsfunktion?
[Einführung in die Udemy Python3 + -Anwendung] 68. Importanweisung und AS
Mit Python hinzufügen if-Anweisung
[Python] Wie man Skalar beurteilt
[Einführung in Python] Wie man bedingte Verzweigungen mit if-Anweisungen schreibt
[Python] Wie man mit Klassenvariablen mit Dekorator und Metaklasse spielt
[Einführung in die Udemy Python3 + -Anwendung] 42. für Anweisung, break-Anweisung und continue-Anweisung
[Einführung in die Udemy Python3 + -Anwendung] 39. while-Anweisung, continue-Anweisung und break-Anweisung
[Python] Wie schreibe ich eine if-Anweisung in einen Satz?
[Einführung in die Udemy Python3 + -Anwendung] 36. Verwendung von In und Not
[Einführung in Python] So erhalten Sie Daten mit der Funktion listdir
So melden Sie sich mit Python bei AtCoder an und senden automatisch
Python: So verwenden Sie Async mit
[Einführung in Python3 Tag 1] Programmierung und Python
[Einführung in Python] So analysieren Sie JSON
Erste Schritte mit Python
Hadoop-Einführung und MapReduce mit Python
So berechnen Sie das Datum mit Python
[Einführung in Python] So teilen Sie eine Zeichenfolge mit der Funktion split
[Einführung in Python] So geben Sie eine Zeichenfolge in einer Print-Anweisung aus
So importieren Sie CSV- und TSV-Dateien mit Python in SQLite
So erstellen Sie eine Überwachungskamera (Überwachungskamera) mit Opencv und Python
[Einführung in Python] Wie verwende ich den Operator in in der for-Anweisung?
Umgang mit Fehlern bei der Installation von Python und Pip mit Choco
[Einführung in Python] Verwendung des Booleschen Operators (und ・ oder ・ nicht)
So erstellen Sie eine Python- und Jupyter-Ausführungsumgebung mit VSCode
So verpacken und verteilen Sie Python-Skripte
[Einführung in Python] Wie verwende ich eine Klasse in Python?
So installieren und verwenden Sie pandas_datareader [Python]
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Fraktal zum Erstellen und Spielen mit Python
So arbeiten Sie mit BigQuery in Python
[Einführung in Python] Verwenden wir foreach mit Python
Wie man einen Taschentest mit Python macht
So zeigen Sie Python-Japanisch mit Lolipop an
Python: Verwendung von Einheimischen () und Globalen ()
Wie man mit Python-Flüchen Japanisch eingibt
[Python] Berechnen von MAE und RMSE
Verwendung von Python zip und Aufzählung
Verwendung ist und == in Python
So installieren Sie Python3 mit Docker Centos
[Einführung in die Udemy Python3 + -Anwendung] 47. Verarbeiten Sie das Wörterbuch mit einer for-Anweisung
Was tun, wenn ipython und python mit unterschiedlichen Versionen starten?
So ermitteln Sie mit Python den Unterschied zwischen Datum und Uhrzeit in Sekunden
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Einführung in Python] So schreiben Sie eine Zeichenfolge mit der Formatierungsfunktion
[Einführung in Python] Wie wird mit der continue-Anweisung wiederholt?
[Python] Erstellen einer Wörterbuchtypliste, Hinzufügen / Ändern / Löschen von Elementen und Extrahieren mit einer for-Anweisung
Hochladen mit Heroku, Flask, Python, Git (4)
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Einführung in die künstliche Intelligenz mit Python 1 "Genetic Algorithm-Theory-"
Lesen einer CSV-Datei mit Python 2/3