None og Binærdata
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 type er passende, og hvordan du trygt konverterer 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 sannhetsverdi-sjekker, 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 med hensikt mangler. Dette lar deg 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' print("unknown" if x is None else x) # 0
Funksjoner og parametere
Dette eksemplet viser hvordan en funksjon bruker en parameter satt til None som et signal om at ingen tag ble oppgitt. Det gjør at funksjonen kan tildele en trygg standardverdi, samtidig som den lar den som kaller funksjonen overstyre verdien 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
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 opp 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åbytes leses nøyaktig slik de er lagret. Dette forhindrer at Python prøver å 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ærdata
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 type er passende, og hvordan du trygt konverterer 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 sannhetsverdi-sjekker, 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 med hensikt mangler. Dette lar deg 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' print("unknown" if x is None else x) # 0
Funksjoner og parametere
Dette eksemplet viser hvordan en funksjon bruker en parameter satt til None som et signal om at ingen tag ble oppgitt. Det gjør at funksjonen kan tildele en trygg standardverdi, samtidig som den lar den som kaller funksjonen overstyre verdien 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
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 opp 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åbytes leses nøyaktig slik de er lagret. Dette forhindrer at Python prøver å tolke dataene som tekst.
# with open("example.png", "rb") as f:
# blob = f.read()
Takk for tilbakemeldingene dine!