None- en Binaire Gegevens
Echte programma's verwerken ontbrekende waarden en binaire gegevens. Gebruik None om "geen waarde" aan te duiden, en bytes/bytearray voor ruwe binaire inhoud. Begrijp wanneer elk geschikt is en hoe veilig te converteren tussen tekst en bytes.
None voor "Geen Waarde"
None is een enkel object dat "niets aanwezig" betekent.
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Gebruik is None in plaats van truthiness-controles, omdat 0 en "" ook als falsey worden beschouwd.
123value = 0 print(not value) # True print(value is None) # False
Standaardwaarden en terugvalopties
None wordt gebruikt als een duidelijke markering dat een waarde opzettelijk ontbreekt. Hiermee kan onderscheid worden gemaakt tussen "geen waarde opgegeven" en geldige waarden zoals 0 of "", waardoor standaardwaarden en terugvalopties veiliger en voorspelbaarder worden.
1234567x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
Functies en Parameters
Dit voorbeeld laat zien hoe een functie een parameter die is ingesteld op None gebruikt als signaal dat er geen tag is opgegeven. Hierdoor kan de functie een veilige standaardwaarde toewijzen, terwijl de aanroeper deze indien nodig kan overschrijven.
1234567def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" print(add_tag("hello")) # [general] hello print(add_tag("hello", "news")) # [news] hello
bytes en bytearray voor Binaire Gegevens
str bevat tekst, bytes en bytearray bevatten ruwe bytewaarden.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Codering en decodering
Codering zet tekst om in bytes zodat deze betrouwbaar kan worden opgeslagen of overgedragen, terwijl decodering deze bytes weer omzet in leesbare tekst. Het gebruik van een gedefinieerde codering zoals UTF-8 zorgt ervoor dat tekens correct behouden blijven.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Tekst en bytes combineren
Tekst (str) en bytes (bytes) kunnen niet direct worden gecombineerd omdat ze verschillende gegevenstypen vertegenwoordigen. Om ze veilig te combineren, moet de tekst eerst expliciet worden gecodeerd naar bytes.
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Lengteverschillen
Sommige tekens nemen één tekstelement in beslag maar meerdere bytes, waardoor hun lengte in str en in gecodeerde vorm kan verschillen. Dit komt doordat coderingen zoals UTF-8 meer dan één byte kunnen gebruiken om een enkel teken weer te geven.
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Bestanden
Binaire bestanden moeten worden geopend in "rb"-modus zodat hun ruwe bytes exact zoals opgeslagen worden gelezen. Dit voorkomt dat Python probeert de data als tekst te interpreteren.
# with open("example.png", "rb") as f:
# blob = f.read()
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Geweldig!
Completion tarief verbeterd naar 3.45
None- en Binaire Gegevens
Veeg om het menu te tonen
Echte programma's verwerken ontbrekende waarden en binaire gegevens. Gebruik None om "geen waarde" aan te duiden, en bytes/bytearray voor ruwe binaire inhoud. Begrijp wanneer elk geschikt is en hoe veilig te converteren tussen tekst en bytes.
None voor "Geen Waarde"
None is een enkel object dat "niets aanwezig" betekent.
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Gebruik is None in plaats van truthiness-controles, omdat 0 en "" ook als falsey worden beschouwd.
123value = 0 print(not value) # True print(value is None) # False
Standaardwaarden en terugvalopties
None wordt gebruikt als een duidelijke markering dat een waarde opzettelijk ontbreekt. Hiermee kan onderscheid worden gemaakt tussen "geen waarde opgegeven" en geldige waarden zoals 0 of "", waardoor standaardwaarden en terugvalopties veiliger en voorspelbaarder worden.
1234567x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
Functies en Parameters
Dit voorbeeld laat zien hoe een functie een parameter die is ingesteld op None gebruikt als signaal dat er geen tag is opgegeven. Hierdoor kan de functie een veilige standaardwaarde toewijzen, terwijl de aanroeper deze indien nodig kan overschrijven.
1234567def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" print(add_tag("hello")) # [general] hello print(add_tag("hello", "news")) # [news] hello
bytes en bytearray voor Binaire Gegevens
str bevat tekst, bytes en bytearray bevatten ruwe bytewaarden.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Codering en decodering
Codering zet tekst om in bytes zodat deze betrouwbaar kan worden opgeslagen of overgedragen, terwijl decodering deze bytes weer omzet in leesbare tekst. Het gebruik van een gedefinieerde codering zoals UTF-8 zorgt ervoor dat tekens correct behouden blijven.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Tekst en bytes combineren
Tekst (str) en bytes (bytes) kunnen niet direct worden gecombineerd omdat ze verschillende gegevenstypen vertegenwoordigen. Om ze veilig te combineren, moet de tekst eerst expliciet worden gecodeerd naar bytes.
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Lengteverschillen
Sommige tekens nemen één tekstelement in beslag maar meerdere bytes, waardoor hun lengte in str en in gecodeerde vorm kan verschillen. Dit komt doordat coderingen zoals UTF-8 meer dan één byte kunnen gebruiken om een enkel teken weer te geven.
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Bestanden
Binaire bestanden moeten worden geopend in "rb"-modus zodat hun ruwe bytes exact zoals opgeslagen worden gelezen. Dit voorkomt dat Python probeert de data als tekst te interpreteren.
# with open("example.png", "rb") as f:
# blob = f.read()
Bedankt voor je feedback!