A mensagem de erro informa exatamente o que está errado. O intérprete Python precisa conhecer a codificação do caractere não ASCII.
Se você deseja retornar U + 00A3 , pode dizer
return u'\u00a3'
que representa esse caractere em ASCII puro por meio de uma sequência de escape Unicode. Se você deseja retornar uma sequência de bytes contendo o byte literal 0xA3, isso é
return b'\xa3'
(onde no Python 2 b
está implícito; mas explícito é melhor que implícito).
O PEP vinculado na mensagem de erro instrui exatamente como informar ao Python "este arquivo não é puro ASCII; aqui está a codificação que estou usando". Se a codificação for UTF-8, isso seria
# coding=utf-8
ou compatível com o Emacs
# -*- encoding: utf-8 -*-
Se você não souber qual codificação seu editor usa para salvar esse arquivo, examine-o com algo como um editor hexadecimal e um pouco de pesquisa no Google. O estouro de pilhacodificação de caracterestag tem uma página de informações da tag com mais informações e algumas dicas para solução de problemas.
Em muitas palavras, fora do intervalo ASCII de 7 bits (0x00-0x7F), o Python não pode e não deve adivinhar qual sequência de bytes uma sequência de bytes representa. https://tripleee.github.io/8bit#a3 mostra 21 interpretações possíveis para o byte 0xA3 e isso é apenas das codificações herdadas de 8 bits; mas também poderia muito bem ser o primeiro byte de uma codificação de vários bytes. Mas, na verdade, eu acho que você está realmente usando o Latin-1, então você deveria ter
# coding: latin-1
como a primeira ou a segunda linha do seu arquivo de origem. De qualquer forma, sem o conhecimento de qual caractere o byte deve representar, um humano também não seria capaz de adivinhar.
Uma ressalva: coding: latin-1
definitivamente removerá a mensagem de erro (porque não há seqüências de bytes que não são tecnicamente permitidas nessa codificação), mas pode produzir completamente o resultado errado quando o código for interpretado se a codificação real for outra coisa. Você realmente precisa conhecer a codificação do arquivo com total certeza ao declarar a codificação.