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 originalimport sys
try:
input_file = open(sys.argv[1])
except IndexError:
# no hay un parámetro para el programa, leer desde la entrada estándar
print 'Ingresa texto, finaliza con Ctrl-D:'
input_file = sys.stdin
except IOError:
# hay un parámetro, pero no se puede abrir el archivo cuyo nombre es ese parámetro
print 'ERROR: No puedo abrir %s' % (sys.argv[1],)
sys.exit(1)
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 originalfor caracter in cadena:
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 originalfor pos, car in enumerate(cadena):
print "%d: %s %d" (pos, car, ord(car))
Saludos.