Foros del Web » Programando para Internet » Python »

[Aporte] Programa Chars-ASCII

Estas en el tema de [Aporte] Programa Chars-ASCII en el foro de Python en Foros del Web. Hola a todos!! Bueno hoy voy a aportar un programa bastante útil que les servirá si desean saber el código ASCII de algún caracter, ya ...
  #1 (permalink)  
Antiguo 27/03/2014, 22:16
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
[Aporte] Programa Chars-ASCII

Hola a todos!!

Bueno hoy voy a aportar un programa bastante útil que les servirá si desean saber el código ASCII de algún caracter, ya sea letra, número o símbolo, esto es muy útil porque muchas veces necesitamos trabajar con chrs.
El programa es sencillo, lo ejecutan y escriben un texto, número o símbolo, puede ser el largo que quieran, por ejemplo una frase.
También pueden ir los caracteres mezclados (letras, números, símbolos).
Aquí dejo un ejemplo de su uso:

Escribi un texto o letra: hola amigos
h 104
o 111
l 108
a 97
32
a 97
m 109
i 105
g 103
o 111
s 115


Escribi un texto o letra: ¿Como estan?
¿ 168
C 67
o 111
m 109
o 111
32
e 101
s 115
t 116
a 97
n 110
? 63


Escribi un texto o letra: Nos vemos, suerte!
N 78
o 111
s 115
32
v 118
e 101
m 109
o 111
s 115
, 44
32
s 115
u 117
e 101
r 114
t 116
e 101
! 33


Lo que está con negrita es el mensaje del programa, lo que está de color azul es lo que deben escribir y lo que está en verde y a la izquierda son los caracteres de la frase que escribieron y a la derecha su código ASCII!!!!
Por las dudas, el código ASCII del espacio (hecho con la barra espaciadora) es el char 32.

Aquí está el código:

Código Python:
Ver original
  1. # -*- coding: utf-8 -*-
  2. # Programa Chars-ASCII - Creado con Python 2.7.5
  3. # Autor: Daniel Delgado - Nick:(Príncipe_Azul)
  4.  
  5. def Caracteres():
  6.     Cadena = raw_input("\nEscribi un texto o letra: ")
  7.     if "salir!!" != Cadena:
  8.         for Caracter in enumerate(Cadena):
  9.             print " " + Caracter[1], ord(Caracter[1])
  10.         Caracteres()
  11.     else:
  12.         exit()
  13.  
  14. Caracteres()

El programa tiene un bucle en la misma función que no se lo ve (aparte del for), osea no se lo ve como for ni while, pero es un bucle que siempe llama a su misma función, esto lo hice así para no tener que estar abriendo el programa a cada rato.
Para salir del programa, osea para que la consola se cierre, deben escribir el comando:

salir!!

en minúsculas y con los 2 signos de exclamción al final.

Aquí pueden ver el mismo ejemplo pero en modo gráfico desde la consola:

http://subefotos.com/ver/?899445f659f853aa380ba9b5dbfaecf0o.jpg

Espero que les sirva.
Hasta luego.
  #2 (permalink)  
Antiguo 01/04/2014, 09:22
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa Chars-ASCII

Una idea interesante para un programa sencillo, me permito sugerirte algunas modificaciones (solamente ideas, si te interesan investiga cómo hacerlo de la mejor manera)

1. Permite leer un archivo, o desde la entrada estándar:
Código Python:
Ver original
  1. import sys
  2.  
  3. try:
  4.     input_file = open(sys.argv[1])
  5. except IndexError:
  6.     # no hay un parámetro para el programa, leer desde la entrada estándar
  7.     print 'Ingresa texto, finaliza con Ctrl-D:'
  8.     input_file = sys.stdin
  9. except IOError:
  10.     # hay un parámetro, pero no se puede abrir el archivo cuyo nombre es ese parámetro
  11.     print 'ERROR: No puedo abrir %s' % (sys.argv[1],)
  12.     sys.exit(1)
  13.  
  14. cadena = input_file.read()

De esta manera, llamando al programa como "programa.py archivo.txt" se lee archivo.txt como entrada, de lo contrario se lee la entrada estándar (en Linux, se quedará esperando que ingreses el texto, que deberá finalizar con Ctrl-D).

2. ¿por qué usas enumerate en este caso?
Código Python:
Ver original
  1. for caracter in cadena:
  2.     print "%s: %d" % (caracter, ord(caracter))
enumerate te puede servir para, además, mostrar la posición del caracter en la cadena:
Código Python:
Ver original
  1. for pos, car in enumerate(cadena):
  2.     print "%d: %s %d" (pos, car, ord(car))


Saludos.
  #3 (permalink)  
Antiguo 01/04/2014, 11:54
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: [Aporte] Programa Chars-ASCII

Un error:



Saludos
__________________
Grupo Telegram Docker en Español
  #4 (permalink)  
Antiguo 01/04/2014, 17:32
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa Chars-ASCII

AlvaroG el código es bastante simple, pero cláro se lo puede mejorar mucho más, está buena tu idea, y si es mejor mejorarlo.

Cita:
2. ¿por qué usas enumerate en este caso?
la verdad lo habia probado mal al código, entónces enumerate me había salvado, pero está demás enumerate y una mejora al código sería esta:

Código Python:
Ver original
  1. def Caracteres():
  2.     cadena = raw_input("Escribe tu frase: ")
  3.     for chr in cadena:
  4.         print " " + chr + " " + str(ord(chr))
  5.     return cadena
  6.  
  7. while 1:
  8.     if (Caracteres() == "salir!!"):
  9.         break

eso evitaría las recursiones en caso extremos.
Te agradezco por tus consejos y cláro son bienvenidos!!


Carlangueitor
A mi me funciona bien, pero como vos estás usando Linux u otro S.O. creo que te falta el:

Código:
# -*- coding: utf-8 -*-
al comienzo del código, prueba a verificar si te falta eso.
Una pregunta, ¿cómo hacés para que se vea la imágen en el post?
yo he utilizado la etiqueta [IMG]/IMG], por ej:
Código:
[IMG]http://pagina.com/captura.jpg/IMG]
pero no se vé la imágen.

Gracias a los 2!!
  #5 (permalink)  
Antiguo 02/04/2014, 11:02
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa Chars-ASCII

Cita:
Iniciado por Principe_Azul Ver Mensaje
Una pregunta, ¿cómo hacés para que se vea la imágen en el post?
yo he utilizado la etiqueta [IMG]/IMG], por ej:
Código:
[IMG]http://pagina.com/captura.jpg/IMG]
pero no se vé la imágen.
El problema es que aún no tienes 30 días en el foro. Ciertas acciones están restringidas a usuarios con más de 30 mensajes y 30 días en el foro.
  #6 (permalink)  
Antiguo 02/04/2014, 11:22
Principe_Azul
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: [Aporte] Programa Chars-ASCII

Gracias amigo por la aclaración y respuesta!!

Etiquetas: ip, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.