Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Dati None e Binari | Interazioni tra Tipi Diversi
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Tipi di dati in Python

bookDati None e Binari

I programmi reali gestiscono valori mancanti e dati binari. Utilizzare None per indicare "nessun valore" e bytes/bytearray per contenuti binari grezzi. Comprendere quando ciascuno è appropriato e come convertire in modo sicuro tra testo e byte.

None per "Nessun Valore"

None è un singolo oggetto che significa "niente qui".

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Utilizzare is None invece di controlli di veridicità, poiché 0 e "" sono anch'essi valori falsi.

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

Valori predefiniti e alternative

None viene utilizzato come indicatore chiaro che un valore è intenzionalmente assente. Permette di distinguere tra "nessun valore fornito" e valori validi come 0 o "", rendendo l'uso di valori predefiniti e alternative più sicuro e prevedibile.

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

Funzioni e Parametri

Questo esempio mostra come una funzione utilizzi un parametro impostato su None come segnale che nessun tag è stato fornito. Ciò consente alla funzione di assegnare un valore predefinito sicuro, permettendo comunque al chiamante di sovrascriverlo quando necessario.

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 e bytearray per Dati Binari

str contiene testo, bytes e bytearray contengono valori di byte grezzi.

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

Codifica e Decodifica

La codifica converte il testo in byte per consentirne l'archiviazione o il trasferimento in modo affidabile, mentre la decodifica ripristina quei byte in testo leggibile. L'utilizzo di una codifica definita come UTF-8 garantisce la corretta conservazione dei caratteri.

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

Combinazione di Testo e Bytes

Il testo (str) e i bytes (bytes) non possono essere combinati direttamente perché rappresentano tipi di dati differenti. Per combinarli in modo sicuro, è necessario convertire prima il testo in bytes utilizzando una codifica esplicita.

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

Differenze di Lunghezza

Alcuni caratteri occupano un solo elemento di testo ma più bytes, quindi la loro lunghezza in str e nella forma codificata può differire. Questo accade perché codifiche come UTF-8 possono utilizzare più di un byte per rappresentare un singolo carattere.

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

File

I file binari devono essere aperti in modalità "rb" affinché i byte grezzi vengano letti esattamente come sono memorizzati. Questo impedisce a Python di tentare di interpretare i dati come testo.

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

Quale controllo rileva correttamente un valore mancante?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain more about when to use None versus other default values?

How do I safely convert between text and bytes in Python?

What are some common mistakes when handling binary data and missing values?

bookDati None e Binari

Scorri per mostrare il menu

I programmi reali gestiscono valori mancanti e dati binari. Utilizzare None per indicare "nessun valore" e bytes/bytearray per contenuti binari grezzi. Comprendere quando ciascuno è appropriato e come convertire in modo sicuro tra testo e byte.

None per "Nessun Valore"

None è un singolo oggetto che significa "niente qui".

1234567
result = None email = None print(result is None) # True print(email is None) # True if result is None: print("No result yet")
copy

Utilizzare is None invece di controlli di veridicità, poiché 0 e "" sono anch'essi valori falsi.

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

Valori predefiniti e alternative

None viene utilizzato come indicatore chiaro che un valore è intenzionalmente assente. Permette di distinguere tra "nessun valore fornito" e valori validi come 0 o "", rendendo l'uso di valori predefiniti e alternative più sicuro e prevedibile.

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

Funzioni e Parametri

Questo esempio mostra come una funzione utilizzi un parametro impostato su None come segnale che nessun tag è stato fornito. Ciò consente alla funzione di assegnare un valore predefinito sicuro, permettendo comunque al chiamante di sovrascriverlo quando necessario.

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 e bytearray per Dati Binari

str contiene testo, bytes e bytearray contengono valori di byte grezzi.

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

Codifica e Decodifica

La codifica converte il testo in byte per consentirne l'archiviazione o il trasferimento in modo affidabile, mentre la decodifica ripristina quei byte in testo leggibile. L'utilizzo di una codifica definita come UTF-8 garantisce la corretta conservazione dei caratteri.

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

Combinazione di Testo e Bytes

Il testo (str) e i bytes (bytes) non possono essere combinati direttamente perché rappresentano tipi di dati differenti. Per combinarli in modo sicuro, è necessario convertire prima il testo in bytes utilizzando una codifica esplicita.

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

Differenze di Lunghezza

Alcuni caratteri occupano un solo elemento di testo ma più bytes, quindi la loro lunghezza in str e nella forma codificata può differire. Questo accade perché codifiche come UTF-8 possono utilizzare più di un byte per rappresentare un singolo carattere.

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

File

I file binari devono essere aperti in modalità "rb" affinché i byte grezzi vengano letti esattamente come sono memorizzati. Questo impedisce a Python di tentare di interpretare i dati come testo.

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

Quale controllo rileva correttamente un valore mancante?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 4. Capitolo 3
some-alt