1
resposta

"Sintax Warning"

Sempre que uso a barra invertida "" como caractere de escape, estou recebendo como retorno a mensagem "Sintax Warning":

<>:4: SyntaxWarning: invalid escape sequence '-'
<>:5: SyntaxWarning: invalid escape sequence '\w'
<>:4: SyntaxWarning: invalid escape sequence '-'
<>:5: SyntaxWarning: invalid escape sequence '\w'

Acima o retorno do código de resposta da instrutora, até com ele, copiando e colando, tive o mesmo retorno. O que essa mensagem significa?

1 resposta

Olá, Gabriel, tudo bem?

Essa mensagem de SyntaxWarning ocorre porque, nas versões mais recentes do Python (3.12+), o interpretador ficou mais rigoroso com o uso da barra invertida (\).

Em strings comuns, o Python tenta interpretar sequências como \- como comandos especiais (como o \n para pular linha). Como \- não é um comando válido, ele emite o aviso informando que aquela barra invertida será tratada como um caractere literal, mas que isso pode virar um erro no futuro.

Como resolver?

Existem duas formas principais de corrigir isso:

Usar Raw Strings
Adicione o prefixo r antes das aspas. Isso indica ao Python que a string é "bruta" (raw) e que ele não deve tentar interpretar as barras invertidas.

dados['descricao_local'] = dados['descricao_local'].str.replace(r'[^a-zA-Z0-9\-\']', ' ', regex=True)

Ou duplicar a barra invertida
Você pode usar duas barras \\. Assim, a primeira "escapa" a segunda, indicando que você quer apenas o caractere literal da barra.

dados['descricao_local'] = dados['descricao_local'].str.replace('[^a-zA-Z0-9\\-\']', ' ', regex=True)

✨Dica: Sempre que trabalhar com Regex no Python, prefira a primeira opção (r''). Ela deixa o código mais limpo e evita confusões conforme a expressão cresce.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!