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 binærdata. Bruk None for å markere "ingen verdi", og bytes/bytearray for rå binært innhold. Vær klar over når hver av disse er passende, og hvordan du trygt kan konvertere mellom tekst og bytes.

None for "Ingen verdi"

None er et enkelt objekt som betyr "ingenting 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

Bruk is None i stedet for sannhetsverdisjekker, siden 0 og "" også regnes som falske.

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

Standardverdier og reserveverdier

None brukes som en tydelig markør for at en verdi bevisst mangler. Dette gjør det mulig å skille mellom "ingen verdi oppgitt" og gyldige verdier som 0 eller "", noe som gjør standardverdier og reserveverdier tryggere og mer forutsigbare.

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

Funksjoner og parametere

Dette eksempelet viser hvordan en funksjon bruker en parameter satt til None som et signal om at ingen tag er oppgitt. Det gjør at funksjonen kan tildele en trygg standardverdi, samtidig som den lar den som kaller funksjonen overstyre denne ved behov.

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

str inneholder tekst, bytes og bytearray inneholder rå byte-verdier.

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

Koding og dekoding

Koding konverterer tekst til bytes slik at den kan lagres eller overføres pålitelig, mens dekoding gjenoppretter disse bytes tilbake til lesbar tekst. Bruk av en definert koding som UTF-8 sikrer at tegnene bevares korrekt.

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

Blanding av tekst og bytes

Tekst (str) og bytes (bytes) kan ikke kombineres direkte fordi de representerer ulike datatyper. For å blande dem på en sikker måte, må du først konvertere teksten til bytes ved å bruke en eksplisitt koding.

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

Lengdeforskjeller

Noen tegn tar ett textelement, men flere bytes, så lengden i str og i kodet form kan variere. Dette skjer fordi kodinger som UTF-8 kan bruke mer enn én byte for å representere et enkelt tegn.

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

Filer

Binære filer må åpnes i "rb"-modus slik at rå byte leses nøyaktig som lagret. Dette forhindrer at Python forsøker å tolke dataene som tekst.

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

Hvilken sjekk oppdager korrekt en manglende verdi?

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

bookNone og Binære Data

Sveip for å vise menyen

Reelle programmer håndterer manglende verdier og binærdata. Bruk None for å markere "ingen verdi", og bytes/bytearray for rå binært innhold. Vær klar over når hver av disse er passende, og hvordan du trygt kan konvertere mellom tekst og bytes.

None for "Ingen verdi"

None er et enkelt objekt som betyr "ingenting 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

Bruk is None i stedet for sannhetsverdisjekker, siden 0 og "" også regnes som falske.

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

Standardverdier og reserveverdier

None brukes som en tydelig markør for at en verdi bevisst mangler. Dette gjør det mulig å skille mellom "ingen verdi oppgitt" og gyldige verdier som 0 eller "", noe som gjør standardverdier og reserveverdier tryggere og mer forutsigbare.

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

Funksjoner og parametere

Dette eksempelet viser hvordan en funksjon bruker en parameter satt til None som et signal om at ingen tag er oppgitt. Det gjør at funksjonen kan tildele en trygg standardverdi, samtidig som den lar den som kaller funksjonen overstyre denne ved behov.

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

str inneholder tekst, bytes og bytearray inneholder rå byte-verdier.

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

Koding og dekoding

Koding konverterer tekst til bytes slik at den kan lagres eller overføres pålitelig, mens dekoding gjenoppretter disse bytes tilbake til lesbar tekst. Bruk av en definert koding som UTF-8 sikrer at tegnene bevares korrekt.

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

Blanding av tekst og bytes

Tekst (str) og bytes (bytes) kan ikke kombineres direkte fordi de representerer ulike datatyper. For å blande dem på en sikker måte, må du først konvertere teksten til bytes ved å bruke en eksplisitt koding.

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

Lengdeforskjeller

Noen tegn tar ett textelement, men flere bytes, så lengden i str og i kodet form kan variere. Dette skjer fordi kodinger som UTF-8 kan bruke mer enn én byte for å representere et enkelt tegn.

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

Filer

Binære filer må åpnes i "rb"-modus slik at rå byte leses nøyaktig som lagret. Dette forhindrer at Python forsøker å tolke dataene som tekst.

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

Hvilken sjekk oppdager korrekt en manglende verdi?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 4. Kapittel 3
some-alt