El mensaje de error te dice exactamente qué está mal. El intérprete de Python necesita conocer la codificación del carácter no ASCII.
Si desea devolver U + 00A3 , puede decir
return u'\u00a3'
que representa este carácter en ASCII puro mediante una secuencia de escape Unicode. Si desea devolver una cadena de bytes que contiene el byte literal 0xA3, eso es
return b'\xa3'
(donde en Python 2 el b
es implícito; pero explícito es mejor que implícito).
El PEP vinculado en el mensaje de error le indica exactamente cómo decirle a Python "este archivo no es ASCII puro; aquí está la codificación que estoy usando". Si la codificación es UTF-8, eso sería
# coding=utf-8
o el compatible con Emacs
# -*- encoding: utf-8 -*-
Si no sabe qué codificación utiliza su editor para guardar este archivo, examínelo con algo como un editor hexadecimal y algunas búsquedas en Google. El desbordamiento de pilacodificación de caracterestag tiene una página de información de etiquetas con más información y algunos consejos para la solución de problemas.
En muchas palabras, fuera del rango ASCII de 7 bits (0x00-0x7F), Python no puede ni debe adivinar qué cadena representa una secuencia de bytes. https://tripleee.github.io/8bit#a3 muestra 21 posibles interpretaciones para el byte 0xA3 y eso es solo de las codificaciones heredadas de 8 bits; pero también podría ser el primer byte de una codificación de varios bytes. Pero, de hecho, supongo que en realidad estás usando Latin-1, por lo que deberías tener
# coding: latin-1
como la primera o segunda línea de su archivo fuente. De todos modos, sin saber qué carácter se supone que representa el byte, un humano tampoco podría adivinar esto.
Una advertencia: coding: latin-1
definitivamente eliminará el mensaje de error (porque no hay secuencias de bytes que técnicamente no están permitidas en esta codificación), pero podría producir un resultado completamente incorrecto cuando el código se interpreta si la codificación real es otra cosa. Realmente tiene que conocer la codificación del archivo con total certeza cuando declara la codificación.