Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen None und Binärdaten | Interaktionen Zwischen Datentypen
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Datentypen in Python

bookNone und Binärdaten

Reale Programme verarbeiten fehlende Werte und Binärdaten. Verwenden Sie None, um „kein Wert“ zu kennzeichnen, und bytes/bytearray für rohe Binärinhalte. Verstehen Sie, wann welcher Typ geeignet ist und wie Sie sicher zwischen Text und Bytes konvertieren.

None für „Kein Wert“

None ist ein einzelnes Objekt, das „nichts vorhanden“ bedeutet.

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

Verwenden Sie is None anstelle von Wahrheitswertprüfungen, da auch 0 und "" als falsey gelten.

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

Standardwerte und Rückfalloptionen

None wird als eindeutiger Marker verwendet, dass ein Wert absichtlich fehlt. Dadurch lässt sich unterscheiden, ob "kein Wert angegeben" wurde oder gültige Werte wie 0 oder "" vorliegen, was Standardwerte und Rückfalloptionen sicherer und vorhersehbarer macht.

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

Funktionen und Parameter

Dieses Beispiel zeigt, wie eine Funktion einen auf None gesetzten Parameter als Signal verwendet, dass kein Tag angegeben wurde. Dadurch kann die Funktion einen sicheren Standardwert zuweisen, während der Aufrufer ihn bei Bedarf überschreiben kann.

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

Binärdaten

str speichert Text, bytes und bytearray speichern rohe Bytewerte.

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

Kodierung und Dekodierung

Kodierung wandelt Text in Bytes um, sodass dieser zuverlässig gespeichert oder übertragen werden kann, während Dekodierung diese Bytes wieder in lesbaren Text zurückverwandelt. Die Verwendung einer definierten Kodierung wie UTF-8 stellt sicher, dass Zeichen korrekt erhalten bleiben.

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

Mischen von Text und Bytes

Text (str) und Bytes (bytes) können nicht direkt kombiniert werden, da sie unterschiedliche Datentypen darstellen. Um sie sicher zu mischen, muss der Text zuerst mit einer expliziten Kodierung in Bytes umgewandelt werden.

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

Längenunterschiede

Einige Zeichen benötigen ein Textelement, aber mehrere Bytes, sodass sich ihre Länge in str und in kodierter Form unterscheiden kann. Dies liegt daran, dass Kodierungen wie UTF-8 mehr als ein Byte verwenden können, um ein einzelnes Zeichen darzustellen.

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

Dateien

Binärdateien müssen im Modus "rb" geöffnet werden, damit ihre Rohbytes exakt wie gespeichert gelesen werden. Dies verhindert, dass Python versucht, die Daten als Text zu interpretieren.

with open("example.png", "rb") as f:
    blob = f.read()
question mark

Welche Überprüfung erkennt einen fehlenden Wert korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

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 und Binärdaten

Swipe um das Menü anzuzeigen

Reale Programme verarbeiten fehlende Werte und Binärdaten. Verwenden Sie None, um „kein Wert“ zu kennzeichnen, und bytes/bytearray für rohe Binärinhalte. Verstehen Sie, wann welcher Typ geeignet ist und wie Sie sicher zwischen Text und Bytes konvertieren.

None für „Kein Wert“

None ist ein einzelnes Objekt, das „nichts vorhanden“ bedeutet.

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

Verwenden Sie is None anstelle von Wahrheitswertprüfungen, da auch 0 und "" als falsey gelten.

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

Standardwerte und Rückfalloptionen

None wird als eindeutiger Marker verwendet, dass ein Wert absichtlich fehlt. Dadurch lässt sich unterscheiden, ob "kein Wert angegeben" wurde oder gültige Werte wie 0 oder "" vorliegen, was Standardwerte und Rückfalloptionen sicherer und vorhersehbarer macht.

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

Funktionen und Parameter

Dieses Beispiel zeigt, wie eine Funktion einen auf None gesetzten Parameter als Signal verwendet, dass kein Tag angegeben wurde. Dadurch kann die Funktion einen sicheren Standardwert zuweisen, während der Aufrufer ihn bei Bedarf überschreiben kann.

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

Binärdaten

str speichert Text, bytes und bytearray speichern rohe Bytewerte.

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

Kodierung und Dekodierung

Kodierung wandelt Text in Bytes um, sodass dieser zuverlässig gespeichert oder übertragen werden kann, während Dekodierung diese Bytes wieder in lesbaren Text zurückverwandelt. Die Verwendung einer definierten Kodierung wie UTF-8 stellt sicher, dass Zeichen korrekt erhalten bleiben.

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

Mischen von Text und Bytes

Text (str) und Bytes (bytes) können nicht direkt kombiniert werden, da sie unterschiedliche Datentypen darstellen. Um sie sicher zu mischen, muss der Text zuerst mit einer expliziten Kodierung in Bytes umgewandelt werden.

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

Längenunterschiede

Einige Zeichen benötigen ein Textelement, aber mehrere Bytes, sodass sich ihre Länge in str und in kodierter Form unterscheiden kann. Dies liegt daran, dass Kodierungen wie UTF-8 mehr als ein Byte verwenden können, um ein einzelnes Zeichen darzustellen.

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

Dateien

Binärdateien müssen im Modus "rb" geöffnet werden, damit ihre Rohbytes exakt wie gespeichert gelesen werden. Dies verhindert, dass Python versucht, die Daten als Text zu interpretieren.

with open("example.png", "rb") as f:
    blob = f.read()
question mark

Welche Überprüfung erkennt einen fehlenden Wert korrekt?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3
some-alt