elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] En que falla mi script?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] En que falla mi script?  (Leído 3,144 veces)
.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
[Python] En que falla mi script?
« en: 6 Noviembre 2015, 23:48 pm »

Código
  1. import itertools
  2. res = itertools.product('abcdefghijklmnopqrstuvwxyz', repeat=2) # 2 is the length of your result.
  3. res2 = itertools.product('0123456789', repeat=4) # 4 is the length of your result.
  4.  
  5. for i in res:
  6. varA = ''.join(i)
  7. for x in res2:
  8. varB = ''.join(x)
  9. print varA + varB
  10.  

Mi intención es que imprima
Citar
aa0000
aa0001
....
..
ww9999

pero no logro que funcione, sospecho que el problema es el for o algo así, pues al momento de imprimir ambos separados, me muestran:
Citar
aa
...
ww

y el otro
Citar
0000
...
9999

ayuda y gracias :D


En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: [Python] En que falla mi script?
« Respuesta #1 en: 7 Noviembre 2015, 00:00 am »

No es necesario complicarse tanto, recuerda que las cadenas comparten algunas propiedades con las listas y las tuplas:

Código
  1. letras = 'abcdefghijklmnopqrstuvwxyz'
  2. numeros = '0123456789'
  3.  
  4. for letra in letras:
  5.    for numero in numeros:
  6.        print (letra * 2 ) + (numero * 4)

Saludos!


En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: [Python] En que falla mi script?
« Respuesta #2 en: 7 Noviembre 2015, 00:22 am »

Und3r: perdón pero no entiendo, como querés imprimir
así sale:

¿a qué te referís con imprimir separados?

Edito: me olvidé soy rejeropa!

11sep: tu script no tendría el mismo resultado, ya que la salida sería:
aa0000
aa1111
aa2222
« Última modificación: 7 Noviembre 2015, 00:40 am por tincopasan » En línea

Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: [Python] En que falla mi script?
« Respuesta #3 en: 7 Noviembre 2015, 00:44 am »

Iba a editar mi comentario, ya que no había notado que lo quieres hacer es generar todas las combinaciones (imagino para un diccionario) pero como respondieron hago uno nuevo.

El código está bien, lo que no estás considerando es que itertools te está devolviendo un generador y los generadores se agotan apenas llegan al final. Así cuando recorres el primer elemento de res obtienes "aa" pero en el bucle interior agotas el generador res2. cuando llegas al segundo elemento de res ya no te quedan elementos en res2 así que no se entra al segundo for y no te imprime nada más (aunque el primer busle sí itera todo res).

Por ahora sólo se me ocurre que conviertas el generador res2 en una lista:

Código
  1. res2 = list(itertools.product('0......', repeat=4))
  2.  

Aunque no es muy recomendable.

Edito I: O puedes generar cada vez, dentro del primer for a res2

Edito II: @tincopasan tienes razón, pensé que solo queria generar cada letra repetida dos veces y cada número cuatro (eso me pasa por leer rápido). Y lo que necesita es generar las permutaciones de longitud dos de las letras unidas a las permutaciones de longitud cuatro de los números.

Saludos!


« Última modificación: 7 Noviembre 2015, 00:59 am por 11Sep » En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [Python] En que falla mi script?
« Respuesta #4 en: 7 Noviembre 2015, 01:04 am »

Parece que no se entendió bien jaja, lo que quiero hacer en realidad es una especie de diccionario, tal como comenta 11Sep, la estructura puntual del diccionario es el siguiente

2 letras y 4 dígitos, quedando de esta forma:

Citar
AZ0123
BA1999
etc.

Por eso mi idea era crear iteraciones para tener todas las combinaciones posibles:
Citar
AA0000

hasta:

Citar
WW9999



Und3r: perdón pero no entiendo, como querés imprimir
así sale:

¿a qué te referís con imprimir separados?

Edito: me olvidé soy rejeropa!

11sep: tu script no tendría el mismo resultado, ya que la salida sería:
aa0000
aa1111
aa2222

arroja eso perfectamente, pero llega hasta aa9999 pero después debería comenzar con ab0000, pero no ocurre, ha de ser lo que dice 11Sep


Gracias por demostrar interés en querer ayudarme, me emociona mucho  ;-)

EDIT:

Creo que 11Sep me dio una pista, estoy corriendo esto a ver que arroja pero creo que funcionará:
Código
  1. import itertools
  2. res = itertools.product('abcdefghijklmnopqrstuvwxyz', repeat=2) # 2 is the length of your result.
  3.  
  4. #for i in res:
  5. # print ''.join(i)
  6.  
  7. for i in res:
  8. varA = ''.join(i)
  9. res2 = itertools.product('0123456789', repeat=4) # 4 is the length of your result.
  10. for x in res2:
  11. varB = ''.join(x)
  12. print varA + varB
« Última modificación: 7 Noviembre 2015, 01:07 am por .:UND3R:. » En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Once

Desconectado Desconectado

Mensajes: 120


Ver Perfil WWW
Re: [Python] En que falla mi script?
« Respuesta #5 en: 7 Noviembre 2015, 01:14 am »

Cuentanos como te va, pero en teoría debe funcionar. Eso sí, ten en cuenta que la lista de letras va hasta la z así que lo más seguro (si itertools hace las permutaciones en orden) es que te llegue hasta zz9999 y no hasta ww9999

Saludos!
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: [Python] En que falla mi script?
« Respuesta #6 en: 7 Noviembre 2015, 01:47 am »

Cuentanos como te va, pero en teoría debe funcionar. Eso sí, ten en cuenta que la lista de letras va hasta la z así que lo más seguro (si itertools hace las permutaciones en orden) es que te llegue hasta zz9999 y no hasta ww9999

Saludos!

toda la razón, me equivoqué en escribir el hasta, pero funciona de maravilla, gracias por la ayuda  ;-)
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Masita

Desconectado Desconectado

Mensajes: 120


pythoneando


Ver Perfil
Re: [Python] En que falla mi script?
« Respuesta #7 en: 9 Noviembre 2015, 15:48 pm »

Aunque ya resolviste tu problema, te dejo aqui otro script para que veas otras maneras de resolver el problema.

Código
  1. letras = 'abcdefghijklmnopqrstuvwxyz'
  2.  
  3. for i in letras:
  4.    for j in letras:
  5.        for z in range(10000):
  6.            print i+j+str(z).zfill(4)

Con el metodo .zfill(numero de digitos) rellenamos con 0 a la izquierda hasta tener la cantidad de digitos que ingresamos.
« Última modificación: 9 Noviembre 2015, 16:22 pm por Masita » En línea

En el cielo estan suspendidas las palabras que cantamos en nuestros sueños....
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Script]Que me Falla?.
PHP
MonzterKuki. 4 2,665 Último mensaje 30 Julio 2010, 23:40 pm
por Zazú
script falla por un echo...¬¬
PHP
|Miguel| 4 2,321 Último mensaje 31 Marzo 2012, 13:19 pm
por |Miguel|
[BATCH] Donde falla este script. Alguien me puede ayudar?. Gracias.
Scripting
legolas266 5 6,162 Último mensaje 14 Marzo 2013, 13:28 pm
por Eleкtro
¿Dónde falla este script para slide con jQuery? « 1 2 »
Desarrollo Web
Linton 11 7,426 Último mensaje 19 Marzo 2014, 07:52 am
por Linton
PYTHON : Py2EXE falla al importar un modulo
Scripting
carlos1962 2 2,982 Último mensaje 11 Diciembre 2014, 15:40 pm
por carlos1962
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines