• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

UnKnowN

.translate() e maketrans...

6 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 т г ι т о п  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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 ;)

0

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