None 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".
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Bruk is None i stedet for sannhetsverdisjekker, siden 0 og "" også regnes som falske.
123value = 0 print(not value) # True print(value is None) # False
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.
1234567x = 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
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.
1234567def 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
bytes og bytearray for binære data
str inneholder tekst, bytes og bytearray inneholder rå byte-verdier.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
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.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
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.
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
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.
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
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()
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 3.45
None 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".
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Bruk is None i stedet for sannhetsverdisjekker, siden 0 og "" også regnes som falske.
123value = 0 print(not value) # True print(value is None) # False
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.
1234567x = 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
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.
1234567def 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
bytes og bytearray for binære data
str inneholder tekst, bytes og bytearray inneholder rå byte-verdier.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
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.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
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.
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
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.
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
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()
Takk for tilbakemeldingene dine!