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 | Interaksjoner Mellom Ulike Datatyper
Datatyper i Python

bookNone og Binære Data

Reelle programmer håndterer manglende verdier og rådata fra filer eller nettverk. Bruk None for å representere "ingen verdi", og bytes eller bytearray for binære data. Dette kapittelet viser når du bør bruke hver av dem, og hvordan du trygt kan veksle mellom tekst og bytes.

None for "Ingen verdi"

None er et spesielt objekt som betyr "ingenting 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 regnes som falsk, men det gjør også 0 og "". Foretrekk 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

Standardverdier og reserveverdier

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

Funksjoner og parametere

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 for binære data

Tekst bruker str og inneholder Unicode-tegn. Binære data bruker bytes eller bytearray og inneholder rå byteverdier 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 mellom 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 av tekst og bytes – ugyldig uten 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

Lengder 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. Hvilken sjekk oppdager korrekt en manglende verdi?

2. Hvilken linje kombinerer tekst med en bytes-prefiks på riktig måte?

3. Hvilket utsagn er korrekt?

question mark

Hvilken sjekk oppdager korrekt en manglende verdi?

Select the correct answer

question mark

Hvilken linje kombinerer tekst med en bytes-prefiks på riktig måte?

Select the correct answer

question mark

Hvilket utsagn er korrekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

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

Sveip for å vise menyen

Reelle programmer håndterer manglende verdier og rådata fra filer eller nettverk. Bruk None for å representere "ingen verdi", og bytes eller bytearray for binære data. Dette kapittelet viser når du bør bruke hver av dem, og hvordan du trygt kan veksle mellom tekst og bytes.

None for "Ingen verdi"

None er et spesielt objekt som betyr "ingenting 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 regnes som falsk, men det gjør også 0 og "". Foretrekk 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

Standardverdier og reserveverdier

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

Funksjoner og parametere

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 for binære data

Tekst bruker str og inneholder Unicode-tegn. Binære data bruker bytes eller bytearray og inneholder rå byteverdier 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 mellom 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 av tekst og bytes – ugyldig uten 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

Lengder 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. Hvilken sjekk oppdager korrekt en manglende verdi?

2. Hvilken linje kombinerer tekst med en bytes-prefiks på riktig måte?

3. Hvilket utsagn er korrekt?

question mark

Hvilken sjekk oppdager korrekt en manglende verdi?

Select the correct answer

question mark

Hvilken linje kombinerer tekst med en bytes-prefiks på riktig måte?

Select the correct answer

question mark

Hvilket utsagn er korrekt?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3
some-alt