Olá pessoal, espero que esta mensagem os encontrem bem ao tempo da leitura!
Ao realizar alguns exercícios propostos, tenho percebido que mesmo o curso sendo de fundamentos, é possível hypar a qualidade do conteúdo! Venho com a intenção genuína de contribuir para a evolução do curso. Em um dos exemplos apresentados, foi utilizada a seguinte construção:
chr(79) + chr(108) + chr(225)
Didaticamente, a proposta cumpre o papel de demonstrar o funcionamento da função chr(). Entretanto, sob a ótica de boas práticas de programação, vale uma reflexão adicional.
Em Python, strings são imutáveis. Isso significa que o operador + não "soma" caracteres no mesmo espaço de memória; ele cria novos objetos a cada concatenação. Em pequenos exemplos isso é irrelevante. Contudo, como padrão recorrente, pode induzir a:
- criação de objetos temporários desnecessários
- aumento de custo computacional em escala
- perda de legibilidade em trechos maiores
Como alternativa mais alinhada à boas práticas, podemos utilizar estruturas mutáveis e métodos mais eficientes, como .join() ou ainda f-strings.
# Abordagem de alta performance para múltiplos Unicodes
codigos = [79, 108, 225]
saudacao = "".join(chr(c) for c in codigos)
print(saudacao)
# Exemplo com f-string (excelente em legibilidade)
print(f"{saudacao} {chr(65)}{chr(108)}{chr(117)}{chr(114)}{chr(97)}{chr(33)}")
Outro ponto interessante é o paralelo visual entre chr() e o uso da tecla Alt + codigoASCII no teclado.
Quando seguramos Alt + 65 no teclado numérico, enviamos ao sistema o código decimal do caractere correspondente. A função chr(65) realiza o mesmo mapeamento lógico via tabela Unicode, convertendo o índice no símbolo equivalente.
Observação.: chr() é a função inversa de ord(). Enquanto o chr(65) te dá a letra 'A', o ord('A') te devolve o número 65.
print(chr(65), ord('A'));
output: A 65
Minha intenção aqui não é substituir a didática do exemplo, e sim ampliar a perspectiva. Pequenas decisões de implementação, quando repetidas ao longo do tempo, podem consolidar padrões — positivos ou limitantes. Se desde o início incentivarmos práticas que escalam bem e preservam legibilidade, reduzimos a chance de vícios futuros e fortalecemos a base técnica dos alunos.
Fico totalmente aberto ao diálogo e à construção conjunta.