None- en Binaire Gegevens
Echte programma's hebben vaak te maken met ontbrekende waarden en ruwe binaire data. Gebruik None om de afwezigheid van een waarde aan te geven, en bytes of bytearray om binaire inhoud uit bestanden of netwerken te verwerken. Leer wanneer je elk type gebruikt en hoe je veilig converteert tussen tekst en bytes.
None voor "Geen Waarde"
None is een enkel speciaal object dat "niets aanwezig" betekent.
12345678910111213# Basic checks result = None email = None print("result is None:", result is None) # True print("email is None:", email is None) # True # Identity checks are the reliable way if result is None: print("No result yet") if email is not None: print("Email present") else: print("Email missing")
None is een falsey waarde, maar dat geldt ook voor 0 en "". Gebruik bij voorkeur is None wanneer je echt "ontbrekend" bedoelt.
123value = 0 print("not value:", not value) # True - but 0 is a valid value print("value is None:", value is None) # False - correctly distinguishes 0 from missing
Standaardwaarden en terugvalopties
1234567891011x = None safe_or = x or "unknown" # replaces any falsey value safe_none_only = "unknown" if x is None else x print("x=None, x or 'unknown':", safe_or) # 'unknown' print("x=None, None-only fallback:", safe_none_only) # 'unknown' x = 0 safe_or = x or "unknown" safe_none_only = "unknown" if x is None else x print("x=0, x or 'unknown':", safe_or) # 'unknown' - maybe not desired print("x=0, None-only fallback:", safe_none_only) # 0 - preserves valid zero
Functies en Parameters
12345678910111213def find_user(name): # returns None if not found return None def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" user = find_user("Ada") print("user is None:", user is None) # True print(add_tag("hello")) # "[general] hello" print(add_tag("hello", tag="news")) # "[news] hello"
bytes en bytearray voor binaire data
Tekst gebruikt str en bevat Unicode-tekens. Binaire data gebruikt bytes of bytearray en bevat ruwe bytewaarden van 0-255.
123456789# Creating binary data b1 = b"hello" # bytes literal b2 = bytes([72, 105]) # b"Hi" buf = bytearray(b"abc") # mutable buf[0] = 65 # now b"Abc" print("b1:", b1, type(b1)) # b'hello' <class 'bytes'> print("b2:", b2, type(b2)) # b'Hi' <class 'bytes'> print("buf:", buf, type(buf)) # bytearray(b'Abc') <class 'bytearray'>
Tekst en bytes converteren: Encode en Decode
1234567text = "café" data = text.encode("utf-8") # to bytes back = data.decode("utf-8") # back to str print("text:", text, type(text)) # café <class 'str'> print("data:", data, type(data)) # b'caf\xc3\xa9' <class 'bytes'> print("back:", back, type(back)) # café <class 'str'>
Tekst en bytes combineren - Ongeldig zonder conversie
123456789# Non-valid operation with explicit error print try: bad = b"ID:" + "123" # bytes + str - not allowed except TypeError as e: print("TypeError when mixing bytes and str:", e) # Correct combination ok = b"ID:" + "123".encode("utf-8") print("combined bytes:", ok) # b'ID:123'
Lengtes kunnen verschillen
123ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
Bestanden
# Binary files yield bytes
# with open("example.png", "rb") as f:
# blob = f.read()
1. Welke controle detecteert correct een ontbrekende waarde?
2. Welke regel combineert tekst correct met een bytes-prefix?
3. Welke bewering is correct?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Awesome!
Completion rate improved to 3.45
None- en Binaire Gegevens
Veeg om het menu te tonen
Echte programma's hebben vaak te maken met ontbrekende waarden en ruwe binaire data. Gebruik None om de afwezigheid van een waarde aan te geven, en bytes of bytearray om binaire inhoud uit bestanden of netwerken te verwerken. Leer wanneer je elk type gebruikt en hoe je veilig converteert tussen tekst en bytes.
None voor "Geen Waarde"
None is een enkel speciaal object dat "niets aanwezig" betekent.
12345678910111213# Basic checks result = None email = None print("result is None:", result is None) # True print("email is None:", email is None) # True # Identity checks are the reliable way if result is None: print("No result yet") if email is not None: print("Email present") else: print("Email missing")
None is een falsey waarde, maar dat geldt ook voor 0 en "". Gebruik bij voorkeur is None wanneer je echt "ontbrekend" bedoelt.
123value = 0 print("not value:", not value) # True - but 0 is a valid value print("value is None:", value is None) # False - correctly distinguishes 0 from missing
Standaardwaarden en terugvalopties
1234567891011x = None safe_or = x or "unknown" # replaces any falsey value safe_none_only = "unknown" if x is None else x print("x=None, x or 'unknown':", safe_or) # 'unknown' print("x=None, None-only fallback:", safe_none_only) # 'unknown' x = 0 safe_or = x or "unknown" safe_none_only = "unknown" if x is None else x print("x=0, x or 'unknown':", safe_or) # 'unknown' - maybe not desired print("x=0, None-only fallback:", safe_none_only) # 0 - preserves valid zero
Functies en Parameters
12345678910111213def find_user(name): # returns None if not found return None def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" user = find_user("Ada") print("user is None:", user is None) # True print(add_tag("hello")) # "[general] hello" print(add_tag("hello", tag="news")) # "[news] hello"
bytes en bytearray voor binaire data
Tekst gebruikt str en bevat Unicode-tekens. Binaire data gebruikt bytes of bytearray en bevat ruwe bytewaarden van 0-255.
123456789# Creating binary data b1 = b"hello" # bytes literal b2 = bytes([72, 105]) # b"Hi" buf = bytearray(b"abc") # mutable buf[0] = 65 # now b"Abc" print("b1:", b1, type(b1)) # b'hello' <class 'bytes'> print("b2:", b2, type(b2)) # b'Hi' <class 'bytes'> print("buf:", buf, type(buf)) # bytearray(b'Abc') <class 'bytearray'>
Tekst en bytes converteren: Encode en Decode
1234567text = "café" data = text.encode("utf-8") # to bytes back = data.decode("utf-8") # back to str print("text:", text, type(text)) # café <class 'str'> print("data:", data, type(data)) # b'caf\xc3\xa9' <class 'bytes'> print("back:", back, type(back)) # café <class 'str'>
Tekst en bytes combineren - Ongeldig zonder conversie
123456789# Non-valid operation with explicit error print try: bad = b"ID:" + "123" # bytes + str - not allowed except TypeError as e: print("TypeError when mixing bytes and str:", e) # Correct combination ok = b"ID:" + "123".encode("utf-8") print("combined bytes:", ok) # b'ID:123'
Lengtes kunnen verschillen
123ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
Bestanden
# Binary files yield bytes
# with open("example.png", "rb") as f:
# blob = f.read()
1. Welke controle detecteert correct een ontbrekende waarde?
2. Welke regel combineert tekst correct met een bytes-prefix?
3. Welke bewering is correct?
Bedankt voor je feedback!