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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
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 waarheidswaardetests, omdat 0 en "" ook als onwaar 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 kun je onderscheid maken 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' 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

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

Coderen en decoderen

Coderen zet tekst om in bytes zodat deze betrouwbaar kan worden opgeslagen of overgedragen, terwijl decoderen deze bytes weer omzet naar 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 omgezet naar bytes met behulp van een codering.

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.

Suggested prompts:

Can you explain more about when to use None versus other default values?

How do I safely convert between text and bytes in Python?

What are some common mistakes when handling binary data?

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 waarheidswaardetests, omdat 0 en "" ook als onwaar 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 kun je onderscheid maken 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' 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

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

Coderen en decoderen

Coderen zet tekst om in bytes zodat deze betrouwbaar kan worden opgeslagen of overgedragen, terwijl decoderen deze bytes weer omzet naar 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 omgezet naar bytes met behulp van een codering.

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