Oi, Catia! Tudo bem? A função sorted()
, além de ordenar a tupla, a transforma em uma lista. Quando você deixa dessa forma, no console do Python, a lista é imprimida por conta do método __repr__()
nativo das listas. Esse método, entretanto, mostra a representação de uma lista em uma string, por isso os valores internos ficam desse jeito. Para imprimir com os acentos corretamentes, não podemos imprimir como lista, mas como string separada. Olha só:
>>> nomes = ('Flávio', 'Romulo', 'Jose Leonardo')
>>> nomes_repr = sorted(nomes).__repr__()
>>> nomes_repr
"['Fl\xa0vio', 'Jose Leonardo', 'Romulo']"
>>> nome = nomes[0]
>>> nome
'Fl\xa0vio'.
>>> print(nome)
Flávio
Repare que a string ainda ficou estranha quando só usamos nome
na linha de comando. Isso é porque, da mesma forma, o método chamado automaticamente foi o __repr__()
, que mostra a representação em string do objeto. Usando o print()
, o método chamado é o __str__()
, que converte tudo bonitinho :).
Talvez tenha ficado um pouco confuso, mas espero que tenha entendido! Qualquer dúvida pode falar! Abraços e bons estudos.