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
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Datatyper i Python

bookNone og Binære Data

Reelle programmer håndterer manglende værdier og binære data. Brug None til at markere "ingen værdi", og bytes/bytearray til rå binært indhold. Kend hvornår hver type er passende, og hvordan du sikkert konverterer mellem tekst og bytes.

None for "Ingen værdi"

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

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

Brug is None i stedet for sandhedsværdikontrol, da 0 og "" også er falske.

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

Standardværdier og Fallbacks

None bruges som en tydelig markering af, at en værdi bevidst mangler. Det gør det muligt at skelne mellem "ingen værdi angivet" og gyldige værdier som 0 eller "", hvilket gør standardværdier og fallbacks mere sikre og forudsigelige.

1234567
x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
copy

Funktioner og parametre

Dette eksempel viser, hvordan en funktion bruger en parameter sat til None som et signal om, at der ikke blev angivet et tag. Det gør det muligt for funktionen at tildele en sikker standardværdi, samtidig med at den tillader opkaldet at tilsidesætte den, hvis det er nødvendigt.

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

bytes og bytearray til binære data

str indeholder tekst, bytes og bytearray indeholder rå byteværdier.

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

Kodning og dekodning

Kodning omdanner tekst til bytes, så det kan gemmes eller overføres pålideligt, mens dekodning gendanner disse bytes til læsbar tekst. Brug af en defineret kodning som UTF-8 sikrer, at tegn bevares korrekt.

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

Blanding af tekst og bytes

Tekst (str) og bytes (bytes) kan ikke kombineres direkte, da de repræsenterer forskellige datatyper. For at blande dem sikkert skal teksten først konverteres til bytes ved hjælp af en eksplicit kodning.

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

Længdeforskelle

Nogle tegn optager ét textelement, men flere bytes, så deres længde i str og i kodet form kan variere. Dette sker, fordi kodninger som UTF-8 kan bruge mere end én byte til at repræsentere et enkelt tegn.

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

Filer

Binære filer skal åbnes i "rb"-tilstand, så deres rå bytes læses præcis som de er gemt. Dette forhindrer Python i at forsøge at fortolke dataene som tekst.

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

Hvilken kontrol registrerer korrekt en manglende værdi?

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 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 and missing values?

bookNone og Binære Data

Stryg for at vise menuen

Reelle programmer håndterer manglende værdier og binære data. Brug None til at markere "ingen værdi", og bytes/bytearray til rå binært indhold. Kend hvornår hver type er passende, og hvordan du sikkert konverterer mellem tekst og bytes.

None for "Ingen værdi"

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

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

Brug is None i stedet for sandhedsværdikontrol, da 0 og "" også er falske.

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

Standardværdier og Fallbacks

None bruges som en tydelig markering af, at en værdi bevidst mangler. Det gør det muligt at skelne mellem "ingen værdi angivet" og gyldige værdier som 0 eller "", hvilket gør standardværdier og fallbacks mere sikre og forudsigelige.

1234567
x = None print(x or "unknown") # 'unknown' print("unknown" if x is None else x) x = 0 print(x or "unknown") # 'unknown' (maybe wrong) print("unknown" if x is None else x) # 0
copy

Funktioner og parametre

Dette eksempel viser, hvordan en funktion bruger en parameter sat til None som et signal om, at der ikke blev angivet et tag. Det gør det muligt for funktionen at tildele en sikker standardværdi, samtidig med at den tillader opkaldet at tilsidesætte den, hvis det er nødvendigt.

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

bytes og bytearray til binære data

str indeholder tekst, bytes og bytearray indeholder rå byteværdier.

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

Kodning og dekodning

Kodning omdanner tekst til bytes, så det kan gemmes eller overføres pålideligt, mens dekodning gendanner disse bytes til læsbar tekst. Brug af en defineret kodning som UTF-8 sikrer, at tegn bevares korrekt.

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

Blanding af tekst og bytes

Tekst (str) og bytes (bytes) kan ikke kombineres direkte, da de repræsenterer forskellige datatyper. For at blande dem sikkert skal teksten først konverteres til bytes ved hjælp af en eksplicit kodning.

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

Længdeforskelle

Nogle tegn optager ét textelement, men flere bytes, så deres længde i str og i kodet form kan variere. Dette sker, fordi kodninger som UTF-8 kan bruge mere end én byte til at repræsentere et enkelt tegn.

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

Filer

Binære filer skal åbnes i "rb"-tilstand, så deres rå bytes læses præcis som de er gemt. Dette forhindrer Python i at forsøge at fortolke dataene som tekst.

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

Hvilken kontrol registrerer korrekt en manglende værdi?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 4. Kapitel 3
some-alt