← Python na prática
01 / 10 · 23 MIN

Dados, tipos e decisões

Lê valores com atenção antes de os transformar em decisões.

Valores com significado

Um nome em Python referencia um objeto. O tipo pertence ao objeto: um inteiro representa uma contagem, uma string representa texto e um booleano representa uma condição. Receber "20" de um ficheiro não é o mesmo que receber o inteiro 20. Converte e valida dados na fronteira do programa.

Comparar antes de agir

Usa == para comparar valores e is para identidade. Uma lista vazia é falsa num contexto booleano, mas uma string com o texto "False" é verdadeira porque não está vazia. Ao validar uma entrada, distingue ausência, zero e texto vazio conforme a regra de negócio.

Aplicação guiada no trabalho

Uma automação recebe contagens e opções por texto. Define primeiro o que é permitido: count pode ser zero, mas não None nem negativo; enabled aceita apenas true e false depois de remover espaços exteriores e normalizar maiúsculas. Converte a contagem e trata falhas sem substituir silenciosamente por zero. Para a opção, usa um mapeamento explícito: bool("false") é verdadeiro por ser texto não vazio. No suporte, um erro de configuração deve identificar a chave e a categoria da falha, sem expor credenciais. Não uses eval para interpretar uma opção simples. Experimenta entradas válidas, vazias, ausentes e fora dos limites e decide o resultado esperado antes de executar o lote.

Inteiros e booleanos na fronteira

Se um contrato aceita apenas inteiros nativos, type(value) is int exclui booleanos e subclasses. isinstance(value, int) aceita True porque bool deriva de int. Escolhe a regra pelo contrato antes de converter; não uses truthiness para inferir tipos. Depois de validar o tipo, aplica limites e significado. Zero pode ser uma quantidade válida mesmo quando False deve ser rejeitado.

Validar a unidade antes de converter

Num limite de protocolo medido em bytes, mede os bytes codificados que serão enviados; len(str) conta pontos de código, não o tamanho UTF-8. O texto pré-composto ação tem quatro pontos de código e seis bytes UTF-8. Também int(3.9) não prova que a entrada era inteira: descarta a fração em direção a zero. Define a regra de aceitação antes de converter, para não transformar silenciosamente uma entrada inválida numa quantidade aparentemente válida.

raw_count = "20"
count = int(raw_count)
if count > 10:
    print("Review required")
NA PRÁTICA

Um script recebe o número de operações pendentes como texto. Valida se o valor pode ser convertido e se é não negativo antes de gerar um alerta. Uma falha de conversão precisa de uma resposta explícita.

Armadilhas comuns

Confundir texto false com False; rejeitar zero quando só None é ausência.

Tópicos relacionados: Coleções sem surpresas · Funções pequenas, contratos claros

Leva esta ideia contigo

Valida e converte entradas na fronteira; compara valores com == e identidade com is.

Criar conta

Referência: Python 3.14: Built-in types · Python 3.14; DR Python 2026.3

Python® é uma marca registada de Python Software Foundation. A dr.pt é uma plataforma de preparação independente e não está afiliada, associada, patrocinada, autorizada nem aprovada por Python Software Foundation. Os conteúdos e as perguntas são originais, não são perguntas oficiais de exame, e concluir os nossos testes não atribui nem garante qualquer certificação. Os nomes são usados apenas para identificar o tema. Todas as outras marcas pertencem aos respetivos titulares.