None och Binärdata
Riktiga program hanterar saknade värden och binärdata. Använd None för att markera “inget värde”, och bytes/bytearray för rå binär information. Känn till när varje typ är lämplig och hur du säkert konverterar mellan text och bytes.
None för “Inget värde”
None är ett enda objekt som betyder “inget här”.
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Använd is None istället för sanningsvärdeskontroller, eftersom 0 och "" också är falska värden.
123value = 0 print(not value) # True print(value is None) # False
Standardvärden och reservvärden
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
Funktioner och parametrar
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 och bytearray för binärdata
str lagrar text, bytes och bytearray lagrar råa bytevärden.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Kodning och avkodning
UTF-8 är en textkodning som omvandlar tecken till byte så att de kan lagras och överföras, och den stöder alla Unicode-tecken samtidigt som den är kompatibel med ASCII.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Blanda text och bytes
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Skillnader i längd
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Filer
# with open("example.png", "rb") as f:
# blob = f.read()
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Can you explain when to use None versus an empty string or zero?
How do I safely convert between bytes and strings in Python?
What are common mistakes to avoid when working with None and binary data?
Fantastiskt!
Completion betyg förbättrat till 3.45
None och Binärdata
Svep för att visa menyn
Riktiga program hanterar saknade värden och binärdata. Använd None för att markera “inget värde”, och bytes/bytearray för rå binär information. Känn till när varje typ är lämplig och hur du säkert konverterar mellan text och bytes.
None för “Inget värde”
None är ett enda objekt som betyder “inget här”.
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Använd is None istället för sanningsvärdeskontroller, eftersom 0 och "" också är falska värden.
123value = 0 print(not value) # True print(value is None) # False
Standardvärden och reservvärden
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
Funktioner och parametrar
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 och bytearray för binärdata
str lagrar text, bytes och bytearray lagrar råa bytevärden.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Kodning och avkodning
UTF-8 är en textkodning som omvandlar tecken till byte så att de kan lagras och överföras, och den stöder alla Unicode-tecken samtidigt som den är kompatibel med ASCII.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Blanda text och bytes
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Skillnader i längd
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Filer
# with open("example.png", "rb") as f:
# blob = f.read()
Tack för dina kommentarer!