Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer None- en Binaire Gegevens | Interacties Tussen Verschillende Typen
Datatypen in Python

bookNone- 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.

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Gebruik is None in plaats van truthiness-controles, omdat 0 en "" ook als falsey worden beschouwd.

123
value = 0 print(not value) # True print(value is None) # False
copy

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.

1234567
x = 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
copy

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.

1234567
def 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
copy

bytes en bytearray voor Binaire Gegevens

str bevat tekst, bytes en bytearray bevatten ruwe bytewaarden.

1234
b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
copy

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.

123
text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
copy

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.

123456
try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
copy

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.

123
ch = "é" len(ch) # 1 len(ch.encode()) # 2
copy

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()
question mark

Welke controle detecteert correct een ontbrekende waarde?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

bookNone- 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.

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Gebruik is None in plaats van truthiness-controles, omdat 0 en "" ook als falsey worden beschouwd.

123
value = 0 print(not value) # True print(value is None) # False
copy

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.

1234567
x = 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
copy

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.

1234567
def 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
copy

bytes en bytearray voor Binaire Gegevens

str bevat tekst, bytes en bytearray bevatten ruwe bytewaarden.

1234
b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
copy

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.

123
text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
copy

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.

123456
try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
copy

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.

123
ch = "é" len(ch) # 1 len(ch.encode()) # 2
copy

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()
question mark

Welke controle detecteert correct een ontbrekende waarde?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 4. Hoofdstuk 3
some-alt