Ir para o conteúdo
UnKnowN

.translate() e maketrans...

Mensagens Recomendadas

UnKnowN    0
UnKnowN

Neste code:

from string import maketrans
x = raw_input('Escreva o texto a traduzir\n\n')
table = maketrans('a', 'å')
print x.translate(table)
raw_input('Press any key to continue...')

O Erro que me dá é que a Length tem de ser a mesma no caso do a e å, e eu percebo pkek o erro acontece, já que å na realidade é \u00E5 como se pode verificar fazendo:

>>> print u'\u00E5'

A minha pergunta é:

Existe alguma forma de usar o translate sem existir a regra do length, ou seja, poderei de alguma forma, atraves do translate, traduzir por exemplo "a" para "ei" ?

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

O erro não é do tamanho do character, é que falta indicares que queres usar o Unicode (UTF-8) encoding.

  # -*- coding: utf-8 -*-
from string import maketrans
x = raw_input('Escreva o texto a traduzir\n\n')
table = maketrans('a', 'å')
print x.translate(table)
raw_input('Press any key to continue...')

Basta colocar aquela primeira linha e voilá... :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
UnKnowN    0
UnKnowN

O erro não é do tamanho do character, é que falta indicares que queres usar o Unicode (UTF-8) encoding.

  # -*- coding: utf-8 -*-
from string import maketrans
x = raw_input('Escreva o texto a traduzir\n\n')
table = maketrans('a', 'å')
print x.translate(table)
raw_input('Press any key to continue...')

Basta colocar aquela primeira linha e voilá... :P

ROTFL pensava que isso era a indicar um erro apenas... :-[

Thanks т г ι т о п  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
UnKnowN    0
UnKnowN

Bom de qq das maneiras fico sem saber se é possível traduzir caracteres sem terem a mesma length, isto é.. modificar "a" por "ei" por exemplo...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Triton    12
Triton

Bom de qq das maneiras fico sem saber se é possível traduzir caracteres sem terem a mesma length, isto é.. modificar "a" por "ei" por exemplo...

Como já te mostrei existem outras formas sem utilizar o translate.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
UnKnowN    0
UnKnowN

Bom de qq das maneiras fico sem saber se é possível traduzir caracteres sem terem a mesma length, isto é.. modificar "a" por "ei" por exemplo...

Como já te mostrei existem outras formas sem utilizar o translate.

Pois, mas queria saber usando o translate ;)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade