Python - Crear traductor con Python

 
Vista:
Imágen de perfil de william

Crear traductor con Python

Publicado por william (4 intervenciones) el 10/09/2021 18:01:08
Tengo un proyecto personal que consiste en crear un programa que sea capaz de convertir los caracteres de un texto alfanumérico que se ingresa por teclado o se lea de un archivo tipo txt , a una codificación numérica personal. Por ejemplo:
Cadena de texto a convertir: "Hoy es lunes"
Cadena convertida: "680233421754421939201754"
La idea es convertir cada letra o numero por un código numérico de dos enteros y que para este ejemplo sería la siguiente:
H='68'
o='02'
y='33'
_=42 (espacio en blanco)
e='17'
s='54'
_='42'(espacio en blanco)
l='19'
u='39'
n='20'
e='17'
s='54'
Obviamente tengo que disponer de unas variables o tablas de equivalencias para poder reemplazar cada carácter por el código que corresponda.
Lo que no sé como hacer es cómo recorrer toda la cadena de texto y crear una nueva cadena pero convertida a números.
Yo intente hacerlo con ciclos While y con If else pero no funciona.
Muchas gracias por cualquier ayuda que me puedan ofrecer.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear traductor con Python

Publicado por tincopasan (1082 intervenciones) el 10/09/2021 20:46:50
es muy simple, pero poné lo que has intentado, aunque no funcione.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de william

Crear traductor con Python

Publicado por william (4 intervenciones) el 11/09/2021 00:59:39
He intentado dos formas pero la primera ya no la tengo aunque tampoco funcionaba. Esto es lo que tengo

# Codigo para reemplazar los caracteres del texto a codificar (Tabla de equivalencia)

H1 = '68'
o1 = '02'
y1 = '33'
e1 = '17'
s1 = '54'
l1 = '19'
u1 = '39'
n1 = '20'
#= '42' #Este pertenece a el espacio en blanco para separar palabras


#Cadena de texto a convertir
texto="Hoy es lunes"
textonew=""

#Determino la longitud del texto para darle un limite al recorrido
longcadena=len(texto)
#print (longcadena)

#Inicio un contador de posicion inicial y final
posini=0
posfin=0

#Ciclo while que recorre el texto
while posini < longcadena:
posfin=posfin+1
letra=string(texto[posini:posfin])
if letra=='H':
textonew=textonew+H1
else:
textonew=textonew+letra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Crear traductor con Python

Publicado por algoritmo (245 intervenciones) el 11/09/2021 13:59:31
Hola

Espero que te sirva :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
codigo = {'H': '68',
          'o': '02',
          'y': '33',
          'e': '17',
          's': '54',
          'l': '19',
          'u': '39',
          'n': '20',
          '#': '42'}
 
 
#Cadena de texto a convertir
texto="Hoy es lunes"
textonew=""
 
for caracter in texto:
    if caracter in codigo.keys():
        textonew += codigo[caracter]
    else:
        textonew += caracter
 
print(textonew)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de william

Crear traductor con Python

Publicado por william (4 intervenciones) el 11/09/2021 16:21:24
Este emoticon es para mí por ser tan torpe.
Claro que me sirvió muchísimo tu código. Eres un crack y yo le estaba dando vueltas a este problema y no veía como hacerlo. Pero gracias a ti y a este código me has animado a estudiar con mas ganas este lenguaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar