Strings, f-strings, input() e conversões — práticas e armadilhas

💬 Strings e I/O: contar a história antes do código

Problema real: um sistema pede idade do usuário; queremos armazenar como número para cálculos — mas input() sempre retorna str. Portanto, precisamos converter com segurança e validar a entrada. A documentação oficial do Python explica o comportamento de input() e mostra como usar f-strings para formatar saída (1).

String (computer science)
Strings are typically made up of characters, and are often used to store human-readable data, such as words or sentences.

Manipulação básica de strings — explicação

Concatenar com + e repetir com * funcionam, mas f-strings são a forma moderna e legível de interpolar valores em textos. Use métodos como .upper(), .lower() e fatiamento s[1:4] para extrair partes do texto. Antes do código, pense: que formatos de entrada aceitaremos? Isso guia validação.

# Strings e entrada segura
nome = input("Digite seu nome: ")    # sempre str
idade_str = input("Digite sua idade: ")  # precisamos converter

try:
    idade = int(idade_str)   # pode gerar ValueError se a entrada não for numérica
except ValueError:
    print("Idade inválida. Informe um número inteiro.")
else:
    print(f"Olá {nome.title()}, você tem {idade} anos.")  # f-string

Dica de robustez: trate entradas vazias e espaços com .strip(). Para conversões mais complexas, recorra a float() ou a bibliotecas como decimal quando precisão for crítica (2). Formatted string literals (f-strings) são documentadas na seção de I/O e mostram formas de especificar precisão e formatos (3).

Reflita

Um erro comum é chamar int('') sem checar; isso gera ValueError. Como você validaria uma entrada que pode aceitar números decimais ou texto vazio? Escreva três casos de teste para sua função de parsing.

Atividade prática

  1. Implemente le_int(prompt) que pede até o usuário inserir um inteiro válido (laço com try/except).
  2. Adicione testes usando asserts: entrada '42' → 42; entrada '' deve repetir o pedido; entrada '3.14' deve falhar até inserir inteiro.

Resumo: usar input() exige validação; f-strings tornam mensagens legíveis; sempre trate exceções de conversão para não quebrar o programa em produção. Para referências oficiais sobre input() e f-strings, veja a documentação do Python (1) e a seção sobre literais formatadas (3). Para melhores práticas de conversão e comportamento de tipos, consulte guias confiáveis como Real Python (2).