Uit de cursus: Training over basisprincipes van Python

Bytes

- [Instructeur] Dus hier is er een die we nog niet hebben behandeld. Het Python-byte-object. In de dagelijkse programmering zul je er dus niet vaak mee werken. Het is gebruikelijk achter de schermen. Het zijn gegevens die in een programma worden doorgegeven, maar zelden rechtstreeks worden gemanipuleerd of gewijzigd. Zoals we allemaal weten, slaan computers informatie op als enen en nullen op de schijf. Wanneer Python die gegevens laadt, is er informatie die Python vertelt wat het type is, of het een string is, een int, een soort klasse met eigenschappen, enzovoort. In sommige gevallen wil je echter alleen maar data. Enkele willekeurige reeksen van enen en nullen. En dus is er het bytes object. Wat voor soort gegevens is het bytes-object? Wat maakt het uit. Welk type is het? Nou, het is een bytes object. Het is een opeenvolging van gegevens en dat is alles wat Python moet weten. Het bytes-object wordt vaak gebruikt voor het streamen van bestanden of het verzenden van teksten zonder te weten wat de codering is. Je zult het veel zien opduiken in Python-bibliotheken. Laten we dus eens kijken hoe we het bytes-object kunnen herkennen en gebruiken. Dus laten we er eerst een maken. Nu lijkt het alsof we het gehele getal vier naar een bytes object casten, maar niet zo snel. Wat dit doet, is dat het in feite een leeg bytes-object maakt dat vier bytes lang is. Elke byte wordt hier weergegeven met een /x gevolgd door twee hexadecimale getallen of grondtal 16 getallen. Onthoud dus dat twee hexadecimale getallen 256 mogelijkheden zijn, wat hetzelfde is als twee tot de macht acht of acht bits. En natuurlijk zijn er acht bits naar een byte. Oké, dus dit is vier bytes lang. En deze b wordt hier gebruikt om bytes te onderscheiden van een reguliere string. Dus als je iets uitgeprint ziet en er staat de b voor, dan is het een bytes object. Laten we een bytes-object maken met werkelijke gegevens erin. Dus om dit te doen, laten we hier een leuke emoji maken. De oogrol. Oké. We moeten Python vertellen wat het type is. Dus we gaan utf-8 doen. Dus om het bytes-object te maken, moet je het vertellen wat het type is van het ding dat je probeert te coderen, zodat het weet hoe het de gegevens moet vinden en isoleren. En in dit geval zijn emoji's gecodeerd met utf-8, een soort Unicode-transformatieformaat. Dus als het eenmaal het formaat kent van het ding dat je het voedt, kan het de gegevens correct weergeven. Laten we dit smiley bytes noemen. Oké. En er zijn de bytes voor die emoji. Hoe gaan we nu de andere kant op? Neem een bytes-object en stel het opnieuw voor als een tekenreeks. Hiervoor heb je de decodeerfunctie nodig. En nogmaals, je moet het formaat doorgeven. Dus decodeer utf-8. En daar gaan we. Bytes-objecten zijn onveranderlijk zoals tuples. Dus als we bytes-gegevens willen die we kunnen wijzigen, kunnen we iets gebruiken dat een byte-array wordt genoemd. Laten we dit eigenlijk gewoon nemen, verander het in een byte array. De syntaxis lijkt erg op elkaar. We kunnen nu zien dat dit een byte-array is. We kunnen dit smiley bytes object op dezelfde manier behandelen als een string, inclusief het wijzigen van een specifieke bytewaarde met behulp van de string slice-notatie. Laten we dus deze waarde op de laatste positie nemen. Dit is hexadecimaal 84, en we kunnen dit en dat daar op index drie nemen. Dus we gaan zeggen dat het 85 is. Laten we eens kijken wat dat is. Dus hoe krijgen we hexadecimaal 85? We kunnen de int-bibliotheek gebruiken, weet je nog? Dus laten we 85 nemen in basis 16, en dan stellen we dat in. En dan willen we het decoderen, kijken wat we krijgen. Decodeer utf-8. Het ziet eruit als een schouderophalende emoji. Dus zo kun je bytes vinden, detecteren, gebruiken en wijzigen.

Inhoud