Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda None e Dados Binários | Interações Entre Tipos Diferentes
Tipos de Dados em Python

bookNone e Dados Binários

Programas reais lidam com valores ausentes e dados brutos de arquivos ou redes. Utilize None para representar "nenhum valor" e bytes ou bytearray para dados binários. Este capítulo mostra quando usar cada um e como transitar com segurança entre texto e bytes.

None para "Nenhum Valor"

None é um objeto especial único que significa "nada aqui".

12345678910111213
# Basic checks result = None email = None print("result is None:", result is None) # True print("email is None:", email is None) # True # Identity checks are the reliable way if result is None: print("No result yet") if email is not None: print("Email present") else: print("Email missing")
copy

None é considerado falso, mas 0 e "" também são. Prefira is None quando realmente quiser indicar "ausente".

123
value = 0 print("not value:", not value) # True - but 0 is a valid value print("value is None:", value is None) # False - correctly distinguishes 0 from missing
copy

Valores padrão e alternativas

1234567891011
x = None safe_or = x or "unknown" # replaces any falsey value safe_none_only = "unknown" if x is None else x print("x=None, x or 'unknown':", safe_or) # 'unknown' print("x=None, None-only fallback:", safe_none_only) # 'unknown' x = 0 safe_or = x or "unknown" safe_none_only = "unknown" if x is None else x print("x=0, x or 'unknown':", safe_or) # 'unknown' - maybe not desired print("x=0, None-only fallback:", safe_none_only) # 0 - preserves valid zero
copy

Funções e Parâmetros

12345678910111213
def find_user(name): # returns None if not found return None def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" user = find_user("Ada") print("user is None:", user is None) # True print(add_tag("hello")) # "[general] hello" print(add_tag("hello", tag="news")) # "[news] hello"
copy

bytes e bytearray para Dados Binários

Texto utiliza str e armazena caracteres Unicode. Dados binários utilizam bytes ou bytearray e armazenam valores brutos de bytes de 0 a 255.

123456789
# Creating binary data b1 = b"hello" # bytes literal b2 = bytes([72, 105]) # b"Hi" buf = bytearray(b"abc") # mutable buf[0] = 65 # now b"Abc" print("b1:", b1, type(b1)) # b'hello' <class 'bytes'> print("b2:", b2, type(b2)) # b'Hi' <class 'bytes'> print("buf:", buf, type(buf)) # bytearray(b'Abc') <class 'bytearray'>
copy

Conversão entre Texto e Bytes: Encode e Decode

1234567
text = "café" data = text.encode("utf-8") # to bytes back = data.decode("utf-8") # back to str print("text:", text, type(text)) # café <class 'str'> print("data:", data, type(data)) # b'caf\xc3\xa9' <class 'bytes'> print("back:", back, type(back)) # café <class 'str'>
copy

Mistura de Texto e Bytes - Inválido sem Conversão

123456789
# Non-valid operation with explicit error print try: bad = b"ID:" + "123" # bytes + str - not allowed except TypeError as e: print("TypeError when mixing bytes and str:", e) # Correct combination ok = b"ID:" + "123".encode("utf-8") print("combined bytes:", ok) # b'ID:123'
copy

Comprimentos podem diferir

123
ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
copy

Arquivos

# Binary files yield bytes
# with open("example.png", "rb") as f:
#     blob = f.read()

1. Qual verificação detecta corretamente um valor ausente?

2. Qual linha combina corretamente texto com um prefixo de bytes?

3. Qual afirmação está correta?

question mark

Qual verificação detecta corretamente um valor ausente?

Select the correct answer

question mark

Qual linha combina corretamente texto com um prefixo de bytes?

Select the correct answer

question mark

Qual afirmação está correta?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 5

bookNone e Dados Binários

Deslize para mostrar o menu

Programas reais lidam com valores ausentes e dados brutos de arquivos ou redes. Utilize None para representar "nenhum valor" e bytes ou bytearray para dados binários. Este capítulo mostra quando usar cada um e como transitar com segurança entre texto e bytes.

None para "Nenhum Valor"

None é um objeto especial único que significa "nada aqui".

12345678910111213
# Basic checks result = None email = None print("result is None:", result is None) # True print("email is None:", email is None) # True # Identity checks are the reliable way if result is None: print("No result yet") if email is not None: print("Email present") else: print("Email missing")
copy

None é considerado falso, mas 0 e "" também são. Prefira is None quando realmente quiser indicar "ausente".

123
value = 0 print("not value:", not value) # True - but 0 is a valid value print("value is None:", value is None) # False - correctly distinguishes 0 from missing
copy

Valores padrão e alternativas

1234567891011
x = None safe_or = x or "unknown" # replaces any falsey value safe_none_only = "unknown" if x is None else x print("x=None, x or 'unknown':", safe_or) # 'unknown' print("x=None, None-only fallback:", safe_none_only) # 'unknown' x = 0 safe_or = x or "unknown" safe_none_only = "unknown" if x is None else x print("x=0, x or 'unknown':", safe_or) # 'unknown' - maybe not desired print("x=0, None-only fallback:", safe_none_only) # 0 - preserves valid zero
copy

Funções e Parâmetros

12345678910111213
def find_user(name): # returns None if not found return None def add_tag(text, tag=None): if tag is None: tag = "general" return f"[{tag}] {text}" user = find_user("Ada") print("user is None:", user is None) # True print(add_tag("hello")) # "[general] hello" print(add_tag("hello", tag="news")) # "[news] hello"
copy

bytes e bytearray para Dados Binários

Texto utiliza str e armazena caracteres Unicode. Dados binários utilizam bytes ou bytearray e armazenam valores brutos de bytes de 0 a 255.

123456789
# Creating binary data b1 = b"hello" # bytes literal b2 = bytes([72, 105]) # b"Hi" buf = bytearray(b"abc") # mutable buf[0] = 65 # now b"Abc" print("b1:", b1, type(b1)) # b'hello' <class 'bytes'> print("b2:", b2, type(b2)) # b'Hi' <class 'bytes'> print("buf:", buf, type(buf)) # bytearray(b'Abc') <class 'bytearray'>
copy

Conversão entre Texto e Bytes: Encode e Decode

1234567
text = "café" data = text.encode("utf-8") # to bytes back = data.decode("utf-8") # back to str print("text:", text, type(text)) # café <class 'str'> print("data:", data, type(data)) # b'caf\xc3\xa9' <class 'bytes'> print("back:", back, type(back)) # café <class 'str'>
copy

Mistura de Texto e Bytes - Inválido sem Conversão

123456789
# Non-valid operation with explicit error print try: bad = b"ID:" + "123" # bytes + str - not allowed except TypeError as e: print("TypeError when mixing bytes and str:", e) # Correct combination ok = b"ID:" + "123".encode("utf-8") print("combined bytes:", ok) # b'ID:123'
copy

Comprimentos podem diferir

123
ch = "é" print("len('é') as str:", len(ch)) # 1 character print("len('é' encoded):", len(ch.encode("utf-8")))# 2 bytes
copy

Arquivos

# Binary files yield bytes
# with open("example.png", "rb") as f:
#     blob = f.read()

1. Qual verificação detecta corretamente um valor ausente?

2. Qual linha combina corretamente texto com um prefixo de bytes?

3. Qual afirmação está correta?

question mark

Qual verificação detecta corretamente um valor ausente?

Select the correct answer

question mark

Qual linha combina corretamente texto com um prefixo de bytes?

Select the correct answer

question mark

Qual afirmação está correta?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 3
some-alt