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
Datentypen in Python

bookNone- und Binärdaten

Reale Programme arbeiten häufig mit fehlenden Werten und rohen Binärdaten. Verwenden Sie None, um das Fehlen eines Wertes darzustellen, und bytes oder bytearray, um Binärinhalte aus Dateien oder Netzwerken zu verarbeiten. Lernen Sie, wann welches verwendet wird und wie Sie sicher zwischen Text und Bytes konvertieren.

None für "Kein Wert"

None ist ein einzelnes spezielles Objekt, das "nichts vorhanden" bedeutet.

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")
copy

None ist ein "falsey" Wert, aber auch 0 und "" sind "falsey". Verwenden Sie bevorzugt is None, wenn Sie wirklich "fehlend" meinen.

123
value = 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
copy

Standardwerte und Rückfalloptionen

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

Funktionen und Parameter

12345678910111213
def 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"
copy

bytes und bytearray für Binärdaten

Text verwendet str und enthält Unicode-Zeichen. Binärdaten verwenden bytes oder bytearray und enthalten rohe Byte-Werte von 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'>
copy

Umwandlung von Text und Bytes: Encode und Decode

1234567
text = "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'>
copy

Mischen von Text und Bytes – Ungültig ohne Umwandlung

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'
copy

Längen können unterschiedlich sein

123
ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
copy

Dateien

# Binary files yield bytes
# with open("example.png", "rb") as f:
#     blob = f.read()

1. Welche Überprüfung erkennt einen fehlenden Wert korrekt?

2. Welche Zeile kombiniert Text korrekt mit einem Bytes-Präfix?

3. Welche Aussage ist korrekt?

question mark

Welche Überprüfung erkennt einen fehlenden Wert korrekt?

Select the correct answer

question mark

Welche Zeile kombiniert Text korrekt mit einem Bytes-Präfix?

Select the correct answer

question mark

Welche Aussage ist 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 when to use `None` versus other falsey values?

How do I safely handle default values when `0` or `""` are valid?

Can you show more examples of converting between text and bytes?

Awesome!

Completion rate improved to 3.45

bookNone- und Binärdaten

Swipe um das Menü anzuzeigen

Reale Programme arbeiten häufig mit fehlenden Werten und rohen Binärdaten. Verwenden Sie None, um das Fehlen eines Wertes darzustellen, und bytes oder bytearray, um Binärinhalte aus Dateien oder Netzwerken zu verarbeiten. Lernen Sie, wann welches verwendet wird und wie Sie sicher zwischen Text und Bytes konvertieren.

None für "Kein Wert"

None ist ein einzelnes spezielles Objekt, das "nichts vorhanden" bedeutet.

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")
copy

None ist ein "falsey" Wert, aber auch 0 und "" sind "falsey". Verwenden Sie bevorzugt is None, wenn Sie wirklich "fehlend" meinen.

123
value = 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
copy

Standardwerte und Rückfalloptionen

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

Funktionen und Parameter

12345678910111213
def 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"
copy

bytes und bytearray für Binärdaten

Text verwendet str und enthält Unicode-Zeichen. Binärdaten verwenden bytes oder bytearray und enthalten rohe Byte-Werte von 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'>
copy

Umwandlung von Text und Bytes: Encode und Decode

1234567
text = "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'>
copy

Mischen von Text und Bytes – Ungültig ohne Umwandlung

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'
copy

Längen können unterschiedlich sein

123
ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
copy

Dateien

# Binary files yield bytes
# with open("example.png", "rb") as f:
#     blob = f.read()

1. Welche Überprüfung erkennt einen fehlenden Wert korrekt?

2. Welche Zeile kombiniert Text korrekt mit einem Bytes-Präfix?

3. Welche Aussage ist korrekt?

question mark

Welche Überprüfung erkennt einen fehlenden Wert korrekt?

Select the correct answer

question mark

Welche Zeile kombiniert Text korrekt mit einem Bytes-Präfix?

Select the correct answer

question mark

Welche Aussage ist 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