In Python ist True != True
False
und False != True
sollte True
sein. Sollte das Ergebnis der Auswertung dann aber auch True
sein?Warum wird True! = True! = True ausgewertet Falsch
-2
A
Antwort
6
Dies liegt daran, dass die beiden Prüfungen unabhängig voneinander durchgeführt werden. True != True != True
ist äquivalent zu True != True and True != True
, was zu False
auswertet, da keiner der Operanden zu True
auswertet (tatsächlich wertet es sogar den zweiten True != True
Vergleich aufgrund von Kurzschluss nicht aus).
Die relevante documentation:
Vergleiche beliebig verkettet werden können, beispielsweise
x < y <= z
entsprichtx < y and y <= z
, außer dassy
ausgewertet wird nur einmal (in beiden Fällen aberz
überhaupt nicht ausgewertet wird, wennx < y
gefunden falsch sein).
Verwandte Themen
- 1. Warum True-Anweisung falsch?
- 2. Warum wird console.log (true, '\ t') true "\t"?
- 3. if-Anweisung wird immer als TRUE ausgewertet
- 4. „Falsch - True“ in Python
- 5. stdbool.h: #define true true
- 6. Javascript: var1 == true && (var2 = true)
- 7. Warum nicht wahr == True:
- 8. für Keine Überprüfung, Falsch, True
- 9. Warum wird {} == false zu false ausgewertet, während [] == false zu true ausgewertet wird?
- 10. Warum wird in Python True/False aktiviert?
- 11. [] == [] den Wert true
- 12. Schaltfläche deaktiviert, obwohl ICommand.CanExecute zu True ausgewertet wird
- 13. Warum gibt (true> null) immer True in JavaScript zurück?
- 14. Warum ist Rails 4.2.6 uniqueness: true, case_sensitive: true fail?
- 15. Warum funktionieren nicht int ("True") und float ("True") in Python?
- 16. Warum True ist kein Schlüsselwort nach keyword.isKeyword ("True")
- 17. bitbake: d.getVar ("X", True) was bedeutet True?
- 18. Warum wird dieses Python-Programm gedruckt? True
- 19. android: allowBackup = "true" Fehler auf "true"
- 20. Formularfeld (unique = true) und (nullable = true)
- 21. Index: true vs foreign_key: true (Rails)
- 22. JavaScript-Code wird als wahr ausgewertet, wenn die bedingte Anweisung falsch ist && true
- 23. Warum all.equal (1,2,3) TRUE zurück
- 24. SQLALCHEMY festgelegt default Falsch Nullable True
- 25. var_dump (0 == 'alle'); // WARUM TRUE
- 26. Warum ergibt ~ True in -2?
- 27. pageDown (true) immer falsch in WebView Android
- 28. RNFS.exists() liefert immer TRUE
- 29. grayt_autoStartup = true,
- 30. Intellij Debugger: True wird falsch, was ist los ...?
Ich habe dies ausgeführt: print (True! = True) drucken (False! = True). Und die Ausgabe, die ich bekam, ist False True. Ich verstehe nicht, was genau deine Zweifel sind. –
Der Zweifel kommt von der Annahme, dass die Bedingungen sequenziell und kumulativ wie eine arithmetische Operation ausgewertet werden. Stattdessen ist dies tatsächlich eine Kette von einzelnen, gleichzeitigen Überprüfungen (verkettet durch eine 'und' Operation). – gandreadis
Siehe [Dokumentation für Vergleiche] (https://docs.python.org/3/reference/expressions.html#comparisons). – Galen