Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: S3kh en 3 Septiembre 2011, 23:15 pm



Título: [Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Publicado por: S3kh en 3 Septiembre 2011, 23:15 pm
 Estoy intentando hacer una función en la cuál se le pasa una cadena como parámetro, y obtiene el valor numérico de cada carácter, y los suma todos. Intenté con for y while, pero no le encuentro la vuelta. Alguien me podría decir si hay una función que haga esto?
          
edit: Que idiotez la mía olvidé decir que trabajo en Python.


Título: Re: Sumar valor numérico de cada carácter de una cadena.
Publicado por: criskapunk en 4 Septiembre 2011, 00:32 am
Con valor numérico te referís a por ejemplo a=1, b=2... etc? O al valor ascii de cada carácter?



 


Título: Re: Sumar valor numérico de cada carácter de una cadena.
Publicado por: WaAYa HaCK en 4 Septiembre 2011, 00:34 am
Con qué lenguaje?


Título: Re: [Python]Sumar valor numérico de cada carácter de una cadena.
Publicado por: S3kh en 4 Septiembre 2011, 00:50 am
 Es en Python, y hablo del código ASCII. Estuve intentando muchas cosas. Me da cualquier resultado, o no me da nada. No le encuentro la forma de hacerlo andar, en si la lista de pasos que hize es correcta, pero le estoy fallando en el código. Alguien se le ocurre una manera? No es necesario ningún código, sólo que estoy estancado.
 Cualquier ayuda sirve. Gracias.


Título: Re: [Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Publicado por: criskapunk en 4 Septiembre 2011, 00:57 am
Publica el código que llevas hecho así te podemos ayudar mejor.
Igualmente para obtener el valor ASCII de un carácter disponés de la función Ord().

http://docs.python.org/library/functions.html#ord

Un saludo.


Título: Re: [Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Publicado por: S3kh en 4 Septiembre 2011, 01:06 am
Es parte de otro código, pero que no viene al caso. Es experimental igual, y hay cosas que le faltan porque las estoy borrando y sacando:

Código:
class Jzk:

        def __init__(self, Llave):
                self.Llave = Llave
        def ObtenerValor(self):
                Contador      = 0
                for Caracter in self.Llave:
                        suma1 = ord(Llave[Contador]) + ord(self.Llave[Contador+1])
                        Contador += 1
                        suma  = suma1 + ord(Llave[Contador+2]
                return suma

Ya se que está mal programado y todo, es que estoy aprendiendo y experimento jeje.
 Mi razonamiento es que inicie un contador a 0 por cada caracter haga esto:
sume cadena[contador] + cadena[contador+1[ (Por ejemplo la cadena ABCD suma A + B). El resultado le suma cadena[contador+2], esto sería 0+2, que sería el 3er elemento, y así sucesivamente.
 Ya se que seguro me estoy pasando algo por alto, y que es un desastre el código jeje, pero bueno de los errores y peteadas se aprenden jeje
 Gracias por la ayuda n.n


Título: Re: [Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Publicado por: Jirp96 en 4 Septiembre 2011, 02:22 am
Hola!
Soy medio novato en el tema de la programacion y con python, pero(en mi opinion) deberias:
->Usar un bucle for en la variable "Llave" para ir recorriendo cada caracter
->Sumar(en un contador) el valor ascii de cada caracter(usando la funcion ord() que ya te comentaron)
->Luego hacer lo que necesites con ese valor(retornarlo, presentarlo por pantalla, etc)

Aca dejo el codigo(creo que no es "hacer la tarea", si es asi, pido disculpas y lo borro :P), y creo hace lo que pides, si no es asi, supongo que te entendi mal  :silbar:
Código
  1. class Jzk:
  2.  
  3.        def __init__(self, Llave):
  4.                self.Llave = Llave
  5.        def ObtenerValor(self):
  6.                tmpSuma = 0 #variable contador
  7.                for caracter in self.LLave: #Por cada caracter en "LLave"
  8. tmpSuma += ord(caracter) #Aumentamos el valor de tmpSuma en el valor ascii del caracter "actual"
  9.                return tmpSuma

Saludos!



Título: Re: [Python]Sumar valor numérico de cada carácter de una cadena(ASCII).
Publicado por: S3kh en 4 Septiembre 2011, 03:57 am
 Ah, y yo complicándome la vida. Lo peor es que eso lo pensé. Como se nota mi novatez jajaj. Gracias por la ayuda, y no, no fue hacer la tarea porque no lo voy a copiar  jeje. Me sirvió de mucho para orientarme, voy a implementarlo de otra forma. Te agradezco, entendí un poco mejor como es la onda jaja. Muchísimas gracias . :)