Olá!
Seria interessante, saber o erro, mas batendo o olho vejo a
palavra "diácriticos" com acento no lugar errado, o correto seria
"diacríticos". Toda via, nome de variáveis (ponteiros) não podem ter
acentos, somente letras "normais", números ou _ (sublinhado), não
podendo iniciar por números, portanto retire os diacríticos dos nomes
das variáveis.
Dito isso, vai encontrar problemas em strings acentuadas se não
especificar o "coding" no início do programa, algo do tipo que costumo
utilizar nas duas primeiras linhas dos meus programas em UTF-8:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Em Python 2.7 reside outro problema que é a função "count",
pois ela conta bytes e não caracteres, onde cada caractere pode ter um
ou mais bytes, como é o caso dos diacríticos, portanto deve converter
tudo para unicode, o que não é necessário em Python 3.x, visto que o
mesmo já trabalha em unicode por padrão.
Para trabalhar tudo em unicode, coloque um "u" antes das aspas
em todas as strings que tiver no código, por exemplo:
diacriticos = u'àáôóêéíúüçãõ'
Também aconselho fazer o seguinte para assegurar que "string"
seja sempre unicode:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function
import sys
ENCODING = sys.getfilesystemencoding()
def to_unicode(string, encoding=ENCODING):
if sys.version_info.major == 3: # Python 3.x
if isinstance(string, bytes):
return string.decode(encoding)
if not isinstance(string, str):
return str(string)
elif not isinstance(string, unicode): # Python 2.7
return str(string).decode(encoding)
return string
def conta_caracteres(string, encoding=ENCODING):
string = to_unicode(string, encoding)
[... o restante da função ...]
--
[]'s
Junior Polegato