Oké, in deze video ga ik je proberen te misleiden.
Ik wil dat je naar deze uitdrukkingen kijkt waar ik controleer op gelijkheid, toch?
Ik zeg, hey, is waar gelijk aan één?
Is een lege string gelijk aan één vanwege rasgelijke die leeg zijn.
Gelijk goed, elkaar.
Pauzeer nu de video hier en probeer te raden wat de resultaten hiervan zullen zijn.
Klaar, trouwens, als je hier honderd procent voor krijgt, nou, goed voor je, want als dit mijn eerste keer
was dat ik Python leerde, wil ik dit hebben.
Laten we gaan.
Hmm, had je dat verwacht?
Waar.
Geëvalueerd dus waar omdat één geëvalueerd als waar, een lege tekenreeks gelijk is aan één geëvalueerd als onwaar.
Dat is logisch, want ze zijn absoluut niet gelijk aan elkaar.
Rechts.
Een lege array is niet gelijk aan één.
En een 10 is gelijk aan tien komma nul.
En dan zijn beide stralen die leeg zijn gelijk aan waar.
De reden dat ik je hier laat zien, is dat de dubbele is gelijk aan controleert op gelijkheid of gelijkheid van een
waarde.
Dat wil zeggen, als bijvoorbeeld de eerste waar gelijk is aan één, zijn er twee verschillende typen.
De ene is een geheel getal, de andere een Boliaans, het zal ze naar hetzelfde type converteren.
In dit geval wordt dit zo geconverteerd naar een booleaanse waarde.
En als je het je herinnert, is er een Truthy.
Dus dit zal evalueren naar waar, en daarom worden we waar.
Hoe zit het met de andere?
Welnu, een lege string is falsey, dus het evalueert onwaar en onwaar is niet gelijk aan waar, toch.
Omdat we hier controleren op gelijkheid.
Dus een van deze wordt geconverteerd naar het andere type.
Hoe zit het met een lege array?
Nogmaals, een lege array is eigenlijk falsey.
Dus dat zal niet gelijk zijn aan één een 10 is gelijk aan een float van tien komma nul die wordt geconverteerd naar een geheel getal
of float en ze zullen gelijk zijn aan elkaar.
En dat is een verwacht gedrag.
En dan is een lege array goed, gelijk aan een lege array als ik in wanorde toevoeg.
Een, twee, drie, een, twee, drie.
En ik klik op uitvoeren.
Ik krijg een ongeldige syntaxis omdat ik dit jaar heb.
Laten we dat nog eens uitvoeren.
ik word waar.
Dat is logisch.
Laten we dit veranderen in één en kijken wat er gebeurt als ik op uitvoeren klik.
Oké, nog steeds vals.
Dit wordt een beetje lastig, Ray, zoals, hmm, had dit moeten worden geëvalueerd als waar, maar nee, we
krijgen onwaar, dus dit wordt niet omgezet in strak versus wat we hier hadden.
Laat je hierdoor niet in de war brengen, want dit zou een slechte code zijn als je zoiets controleert.
Het is duidelijk dat je twee typen moet controleren, twee van dezelfde typen samen.
Idealiter, wanneer je vergelijkingsoperatoren of logische operatoren zoals deze gebruikt, vergelijk je twee typen en laat
je Python deze typeconversie niet doen.
En hopelijk komt Python het voor ons uit.
Maar ik hoop dat de dubbele kwaliteit zinvol is, want er is nog een controle die we kunnen doen, en
dat is een sleutelwoord in Python.
Wat gebeurt er als we al deze E-tekens veranderen in is.
Zou er een verschil zijn denk je?
Laten we eens kijken.
Als ik klik, ren dan weg.
Ik word vals voor alles.
Hm.
Dus wat is het verschil dat hier gelijk is aan cheques voor de gelijkheid in waarde, zoals één, twee, drie?
Nou, dat heeft dezelfde waarde als een, twee, drie in een lijst, het controleert eigenlijk of de locatie in
het geheugen waar deze waarde is opgeslagen hetzelfde is.
Laten we dat eens doornemen.
Zo waar is dat één nee, waar is niet één waar is goed, alleen waar.
Rechts?
Dat zal waar zijn.
Hoe zit het met.
String een is dat een?
Nee, ik bedoel, als een string een string is, moet dat er een zijn, toch?
Omdat de ene string niet alleen op één plaats in het geheugen staat, is het letterlijk precies hetzelfde.
Hoe zit het met deze lijst?
In feite, laten we doen is array lege array is dat of is deze lijst een lijst?
Nou, als we dit uitvoeren.
Ik krijg nog steeds vals.
Hm.
En dit is een beetje lastig en ook geavanceerd elke keer dat ik een lijst maak, wordt deze ergens in het geheugen toegevoegd.
Dus dit is op een locatie, in het geheugen, maar wanneer ik een nieuwe lijst maak.
Het is op een andere locatie gemaakt, dus dit zijn twee totaal verschillende lijsten die op verschillende locaties in het
geheugen staan.
Dus het gaat controleren, hey, is dit in dezelfde geheugenruimte, dezelfde boekenplank als die?
Nee, dat is het niet.
Maar waarom werkt dit voor zaken als getallen en tekenreeksen?
En dat komt omdat onder de motorkap dit typen zijn die heel eenvoudig zijn, die in het geheugen staan,
maar op één locatie versus zoiets als een lijst, ook al is dit misschien dezelfde lijst met
dezelfde items.
Omdat dit een gegevensstructuur is, wordt deze elke keer dat we deze maken op een nieuwe locatie gemaakt, zodat zelfs
als we een variabele AI hebben die bevat.
Deze lijst.
En tussen haakjes, dit zal hetzelfde zijn voor al onze datastructuren zoals woordenboeken, sets, tuples, als ik
dat doe is B gelijk aan dit en ik controleer A, is dat B?
Nee, ze zijn gemaakt in een andere geheugenruimte, dus dit is waar acht punten zich op een andere plaats bevinden dan waar
B wijst, maar als ik dat doe, is A gelijk aan B.
Ik krijg waar omdat deze dubbele kwaliteitscontroles.
Alleen de waarden.
Dit is een beetje een moeilijk onderwerp, dus misschien moet je deze video een paar keer bekijken, misschien moet
je dit zelf een paar keer oefenen.
Maar onthoud het verschil tussen is en dubbele gelijken.
E is meestal wat strenger.
U controleert precies wat u zoekt versus gelijkheid, die de waarde controleert.
Oke.
Dat was een dooie.
Tot ziens in de volgende video.
Tot ziens.