None ja binaaridata
Todelliset ohjelmat käsittelevät puuttuvia arvoja ja binääritietoa. Käytä None-arvoa merkitsemään "ei arvoa", ja bytes/bytearray raakadatan tallentamiseen. Tiedä, milloin kumpaakin käytetään ja miten muunnetaan turvallisesti tekstin ja tavujen välillä.
None “ei arvoa” varten
None on yksittäinen olio, joka tarkoittaa "ei mitään tässä".
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Käytä is None totuusarvotarkistusten sijaan, koska myös 0 ja "" ovat epätosia.
123value = 0 print(not value) # True print(value is None) # False
Oletusarvot ja vararatkaisut
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
Funktiot ja parametrit
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 ja bytearray binääridatalle
str sisältää tekstiä, bytes ja bytearray sisältävät raakoja tavuarvoja.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Koodaus ja dekoodaus
UTF-8 on tekstin koodausmenetelmä, joka muuntaa merkit tavuiksi, jotta ne voidaan tallentaa ja siirtää. Se tukee kaikkia Unicode-merkkejä ja on yhteensopiva ASCII:n kanssa.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Tekstin ja tavujen yhdistäminen
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Pituuserot
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Tiedostot
# with open("example.png", "rb") as f:
# blob = f.read()
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
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?
Mahtavaa!
Completion arvosana parantunut arvoon 3.45
None ja binaaridata
Pyyhkäise näyttääksesi valikon
Todelliset ohjelmat käsittelevät puuttuvia arvoja ja binääritietoa. Käytä None-arvoa merkitsemään "ei arvoa", ja bytes/bytearray raakadatan tallentamiseen. Tiedä, milloin kumpaakin käytetään ja miten muunnetaan turvallisesti tekstin ja tavujen välillä.
None “ei arvoa” varten
None on yksittäinen olio, joka tarkoittaa "ei mitään tässä".
1234567result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
Käytä is None totuusarvotarkistusten sijaan, koska myös 0 ja "" ovat epätosia.
123value = 0 print(not value) # True print(value is None) # False
Oletusarvot ja vararatkaisut
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
Funktiot ja parametrit
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 ja bytearray binääridatalle
str sisältää tekstiä, bytes ja bytearray sisältävät raakoja tavuarvoja.
1234b1 = b"hello" b2 = bytes([72, 105]) buf = bytearray(b"abc") buf[0] = 65
Koodaus ja dekoodaus
UTF-8 on tekstin koodausmenetelmä, joka muuntaa merkit tavuiksi, jotta ne voidaan tallentaa ja siirtää. Se tukee kaikkia Unicode-merkkejä ja on yhteensopiva ASCII:n kanssa.
123text = "café" data = text.encode("utf-8") back = data.decode("utf-8")
Tekstin ja tavujen yhdistäminen
123456try: b"ID:" + "123" except TypeError as e: print(e) ok = b"ID:" + "123".encode("utf-8")
Pituuserot
123ch = "é" len(ch) # 1 len(ch.encode()) # 2
Tiedostot
# with open("example.png", "rb") as f:
# blob = f.read()
Kiitos palautteestasi!