Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære None og Binære Data | Interaktioner Mellem Datatyper
Datatyper i Python

bookNone og Binære Data

Rigtige programmer håndterer manglende værdier og rå data fra filer eller netværk. Brug None til at repræsentere "ingen værdi", og bytes eller bytearray til binære data. Dette kapitel viser, hvornår du skal bruge hver type, og hvordan du sikkert kan bevæge dig mellem tekst og bytes.

None for "Ingen værdi"

None er et enkelt specielt objekt, der betyder "intet her".

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 evalueres som falsk, men det gør 0 og "" også. Foretræk is None, når du virkelig mener "mangler".

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

Standardværdier og Fallbacks

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

Funktioner og parametre

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 og bytearray til binære data

Tekst bruger str og indeholder Unicode-tegn. Binære data bruger bytes eller bytearray og indeholder rå byteværdier 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

Konvertering mellem tekst og bytes: Encode og 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

Blanding af tekst og bytes – ugyldigt uden konvertering

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ængder kan variere

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

Filer

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

1. Hvilket tjek detekterer korrekt en manglende værdi?

2. Hvilken linje kombinerer korrekt tekst med et bytes-præfiks?

3. Hvilket udsagn er korrekt?

question mark

Hvilket tjek detekterer korrekt en manglende værdi?

Select the correct answer

question mark

Hvilken linje kombinerer korrekt tekst med et bytes-præfiks?

Select the correct answer

question mark

Hvilket udsagn er korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

Can you explain when to use `None` versus other falsey values?

How do I safely provide default values for function parameters?

What are the main differences between `bytes` and `bytearray`?

Awesome!

Completion rate improved to 5

bookNone og Binære Data

Stryg for at vise menuen

Rigtige programmer håndterer manglende værdier og rå data fra filer eller netværk. Brug None til at repræsentere "ingen værdi", og bytes eller bytearray til binære data. Dette kapitel viser, hvornår du skal bruge hver type, og hvordan du sikkert kan bevæge dig mellem tekst og bytes.

None for "Ingen værdi"

None er et enkelt specielt objekt, der betyder "intet her".

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 evalueres som falsk, men det gør 0 og "" også. Foretræk is None, når du virkelig mener "mangler".

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

Standardværdier og Fallbacks

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

Funktioner og parametre

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 og bytearray til binære data

Tekst bruger str og indeholder Unicode-tegn. Binære data bruger bytes eller bytearray og indeholder rå byteværdier 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

Konvertering mellem tekst og bytes: Encode og 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

Blanding af tekst og bytes – ugyldigt uden konvertering

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ængder kan variere

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

Filer

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

1. Hvilket tjek detekterer korrekt en manglende værdi?

2. Hvilken linje kombinerer korrekt tekst med et bytes-præfiks?

3. Hvilket udsagn er korrekt?

question mark

Hvilket tjek detekterer korrekt en manglende værdi?

Select the correct answer

question mark

Hvilken linje kombinerer korrekt tekst med et bytes-præfiks?

Select the correct answer

question mark

Hvilket udsagn er korrekt?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3
some-alt