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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python] - while
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [Python] - while  (Leído 21,664 veces)
Meta


Desconectado Desconectado

Mensajes: 3.441



Ver Perfil WWW
[Python] - while
« en: 13 Octubre 2010, 05:38 am »

Hola:

Por fin estoy con los while, ya va siendo hora. Este PDF de Python enseña muy bien, aún así hay ejercicios que uno se queda pescando...

Citar
Hacer un programa que muestre todos los múltiplos de 6 entre 6 y 150, ambos inclusive.

Muchas veces no me deja claro que es lo que ha que hacer. Por lo que entiendo arriba, hay que hacer un bucle while. Haber como hay que hacer el múltiplo que piden.

Por ahora empecé así:

Código
  1. i = 1
  2. while i <= 150:
  3.    i *= 6
  4.    print i

Citar
6
36
216

Esto suena a raro, no creo que sea así lo que me está pidiendo.

Código
  1. i = 1
  2. while i <= 150:
  3.    i += 6
  4.    print i
  5.  

Citar
7
13
19
25
31
37
43
49
55
61
67
73
79
85
91
97
103
109
115
121
127
133
139
145
151

Saludo.


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - while
« Respuesta #1 en: 13 Octubre 2010, 05:54 am »

Creo que debería ser así,
Código
  1. i = 0
  2. while(i <= 150):
  3.    i += 6
  4.    print i
ó
Código
  1. i = 6
  2. while(i <= 150):
  3.    print i
  4.    i += 6

Resultado,
Código
  1. shellroot@alex-laptop:~/Escritorio$ python PoC.py
  2. 6
  3. 12
  4. 18
  5. 24
  6. 30
  7. 36
  8. 42
  9. 48
  10. 54
  11. 60
  12. 66
  13. 72
  14. 78
  15. 84
  16. 90
  17. 96
  18. 102
  19. 108
  20. 114
  21. 120
  22. 126
  23. 132
  24. 138
  25. 144
  26. 150
  27. 156


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
.:WindHack:.

Desconectado Desconectado

Mensajes: 167

Prisionero de mi propia mente...


Ver Perfil WWW
Re: [Python] - while
« Respuesta #2 en: 13 Octubre 2010, 06:02 am »

Ibas por buen camino, simplemente estabas inicializando mal la variable.  :D
En línea

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [Python] - while
« Respuesta #3 en: 13 Octubre 2010, 06:28 am »

Meta te recomiendo que detengas un poco el aprendizaje de Python y tomes un pequeño libro de fundamentos de programacion o incluso te pongas a solucionar problemas de forma sistematica, la mayoria de los problemas que tienes no radican en que desconozcas el lenguaje, sino en que interpretas mal el ejercicio como te sucedio en el primer codigo, El segundo fue un concepto mas de logica, si todos los valores te dan un multiplo de 6 mas 1, podias tambien restar uno en el print o inicializar la variable con un valor menor.

Aqui va otra forma de hacerlo:
Código
  1. i=0
  2. while(i<=150):
  3.    i+=1
  4.    if i%6==0: print i

@ShellRoot: el limite era 150, tu codigo se excede.
« Última modificación: 13 Octubre 2010, 06:29 am por Lord R.N.A. » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: [Python] - while
« Respuesta #4 en: 13 Octubre 2010, 06:35 am »

@ShellRoot: el limite era 150, tu codigo se excede.
Seh, es por el,
Código
  1. i = 0
  2. while(i <= 150):
  3.    i += 6
  4.    print i
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
[L]ord [R]NA


Desconectado Desconectado

Mensajes: 1.513

El Dictador y Verdugo de H-Sec


Ver Perfil WWW
Re: [Python] - while
« Respuesta #5 en: 13 Octubre 2010, 06:48 am »

@ShellRoot: el limite era 150, tu codigo se excede.
Seh, es por el,
Código
  1. i = 0
  2. while(i <= 150):
  3.    i += 6
  4.    print i

No, el problema esta en el while,
Código
  1. i = 0
  2. while(i < 150):
  3.    i += 6
  4.    print i
En línea

Meta


Desconectado Desconectado

Mensajes: 3.441



Ver Perfil WWW
Re: [Python] - while
« Respuesta #6 en: 13 Octubre 2010, 07:13 am »

Gracias a todos. Al final lo averigué antes de leerles a ustedes y me funcionó, pero es bueno saber de qué me está hablando el ejercicio.
En línea

Anco

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: [Python] - while
« Respuesta #7 en: 13 Octubre 2010, 10:52 am »

No, el problema esta en el while,
Código
  1. i = 0
  2. while(i < 150):
  3.    i += 6
  4.    print i


Desconozco totalmente python, pero a pesar de que esa es una manera de solucionar ese problema, shell root tambien tenia razon cuando dijo que su problema era lugar donde estaba el i+= 6, si lo hubiese puesto despues del print, creo que daria el resultado esperado. Esto lo digo para conocimiento de Meta y aquellos que seamos novatos en el tema.

Código
  1. i = 0
  2. while(i <= 150):
  3.    print i
  4.    i += 6
En línea

???
Meta


Desconectado Desconectado

Mensajes: 3.441



Ver Perfil WWW
Re: [Python] - while
« Respuesta #8 en: 13 Octubre 2010, 11:32 am »

Mejor poner el print al final, que se actulice primero la variable, después visualiza los datos con print.

En caso de este otro que no se si es el indicado dice así:
Citar
Haz un programa que muestre todos los múltiplos de n entre n y m·n, ambos inclusive, donde n y m son números introducidos por el alguien.

¿La parte m·n hay que multiplicar?

Por ahora lo hice normal de esta manera.
Código
  1. # Introducir variables.
  2. i = int(raw_input('Valor inicial: '))
  3. inc = int(raw_input('Incremento; '))
  4.  
  5. # Bucle.
  6. i = 0
  7. while i < 150:
  8.    i += inc
  9.    print i

Citar
Valor inicial: 150
Incremento; 6
6
12
18
24
30
36
42
48
54
60
66
72
78
84
90
96
102
108
114
120
126
132
138
144
150



Edito :

Código
  1. # Introducir variables.
  2. n = int(raw_input('Valor inicial: '))
  3. m = int(raw_input('Incremento: '))
  4.  
  5. # Bucle.
  6. n = 0
  7. while n < 150:
  8.    n += m
  9.    print n

« Última modificación: 13 Octubre 2010, 11:57 am por Meta » En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: [Python] - while
« Respuesta #9 en: 13 Octubre 2010, 14:11 pm »

Tu código está bien, pero no hace exactamente lo que pide el enunciado.

El mismo dice que dados dos valores n y m, obtener todos los múltiplos de n en el intervalo [n ; n*m], incluyendo los extremos. Entonces, el contador del bucle no tendría que comenzar en cero, sino en n.

Otra manera de hacerlo:

Código
  1. n = int(raw_input("Ingrese el valor de n: "))
  2. m = int(raw_input("Ingrese el valor de m: "))
  3. i = n    # Funcionara como divisor
  4. k = n * m    # Funcionara como valor limite del bucle
  5.  
  6. print "Los multiplos de ", n, " entre [", n,";", n * m,"] son: "
  7.  
  8. while n <= k:
  9.    if n % i == 0:
  10.        print n
  11.    n += 1

Un saludo ;)
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines