Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: dian1919 en 22 Agosto 2022, 06:54 am



Título: Bucle aprendiendo
Publicado por: dian1919 en 22 Agosto 2022, 06:54 am
Saludos soy principiante en python deseo saber como mantener activa una orden un tipo contador creo un bucle que cuando llegue a dicho numero, haga una accion, no tengo un ejemplo por que apenas estoy iniciando


Título: Re: Bucle aprendiendo
Publicado por: Tachikomaia en 22 Agosto 2022, 07:41 am
No entiendo bien lo que dices, pero quizá te refieras a algo así:
Pseudocódigo:
Código:
N = 0
Repetir
  N++
Mientas N<10000
Realizar acción
Sin embargo, creo que no se recomienda hacer eso, es decir, creo que alguna vez lo he usado en un lenguaje llamado Clipper, hace que una acción suceda luego de cierto tiempo, pero en computadoras rápidas habría que poner un número más grande, además imagino que en lenguajes más nuevos debe haber algo como "esperar a que pasen 10 segundos, luego realizar acción". Ojalá alguien te lo aclare mejor. Y creo que tú también deberías aclarar mejor qué es lo que quieres, porque al menos yo, no sé si te entendí.


Título: Re: Bucle aprendiendo
Publicado por: dian1919 en 22 Agosto 2022, 08:04 am
Si algo asi busco un bucle que dicho numero lo interumpa y al finalizar haga una accion como un print apenas voy conociendo a cual es la extructura de el codigo bien armado, por que ponerlo asi en python creo me va salir error


Título: Re: Bucle aprendiendo
Publicado por: timer en 22 Agosto 2022, 09:15 am
Buenas como ha comentado Tachikomaia eso es basicamente lo que debes hacer, para que lo veas con un ejemplo real, en python sería algo asi:

Código
  1. num = 7
  2. count = 0
  3.  
  4. while count < num:
  5.    count += 1
  6.    print(count)
  7.    if count == num:
  8.        print("Hola")
  9.        break

Lo que estamos haciendo es coger un numero al cual queremos que pare el contador, en mi caso 7 y le decimos que contador empieza en 0, una vez aplicado nuestras variables lo que haremos será un bucle, en este caso con while. Aplicamos que mientras que contador seá mas pequeño que numero esté sumará 1 a contador, se aplica de esta manera dado que es lo mismo que poner
Código
  1. count = count + 1
. Una vez esto para saber que el contador está funcionando lo que hago es que me lo muestre. Ahora lo que hacemos es un if, con este if diremos que cuando contador sea igual al numero nos haga la acción que deseamos, en mi caso nos muestra por consola la palabra "Hola", y al final rompemos bucle con break para que pare.

Espero que esto te haya servido.

Un saludo.


Título: Re: Bucle aprendiendo
Publicado por: reymosquito en 22 Agosto 2022, 13:51 pm
si bien parece que funciona, hayvarias cosas:
  
Código
  1. num = 7

salvo que lo obtengas de forma dinámica, ésta declaración es una redundancia
  
Código
  1. count = 0
  2.  
  3.    while count < num:
  4.        count += 1
  5.        print(count)

modificar el contador al inicio, no es una buena práctica, en este caso no estarías imprimiendo el 0 que es el valor original del contador

      
Código
  1.  if count == num:
  2.            print("Hola")
  3.            break

el comparador y el cortar están de más si lo estás haciendo al final del bucle, solo necesarias para interrumpir antes del final,que no es ahora

lo mismo:
Código
  1. contador = 0
  2. while contador <= 7:
  3.    print(contador)
  4.    contador +=1
  5.  
  6. print('hola')

tampoco es necesario un while:

Código
  1. for x in range(8):
  2.    print(x)
  3.  
  4. print('hola')

Edito: No está bueno hacerle las tareas a quién no pone ni una línea de código, estar aprendiendo es una excusa vana


Título: Re: Bucle aprendiendo
Publicado por: timer en 22 Agosto 2022, 14:26 pm
Gracias por tu corrección y aportación reymosquito.

Me apunto tu explicacón para futuros usos

Gracias y un saludo!


Título: Re: Bucle aprendiendo
Publicado por: CAEL20 en 22 Agosto 2022, 21:13 pm
Muy bien si es lo que buscaba, una pregunta mas creo algo igual bueno a ecepcion de que seria una cadena comparar el resultado deseo fusionar el resultado con otro que tengo pero busco cuando mi resultado cambie reconozca una cadena como seria la forma tipo while en un tipo bucle alguien tiene un ejemplo?


Título: Re: Bucle aprendiendo
Publicado por: Tachikomaia en 22 Agosto 2022, 22:32 pm
Muy bien si es lo que buscaba, una pregunta mas creo algo igual bueno a ecepcion de que seria una cadena comparar el resultado deseo fusionar el resultado con otro que tengo pero busco cuando mi resultado cambie reconozca una cadena como seria la forma tipo while en un tipo bucle alguien tiene un ejemplo?
Probablemente mi escaso conocimiento sobre programación hace que me cueste entender a los que hablan sobre el tema, pero hermanos, intenten expresarse bien, no me refiero a que usen comas, ni tildes, ni que escriban sin faltas de ortografía... solo que... no, no entiendo bien cual es el error realmente, pero los minierrores incluyen verbos mal conjugados o falta de palabras ("seria una cadena comparar el resultado", cuando quizá en realidad se quiere decir "sería una cadena, quisiera comparar el resultado" ¿aunque comparar con qué? En fin, ni idea, no sé si mi interpretación es correcta siquiera)
("busco cuando mi resultado cambie reconozca una cadena" -> "busco QUE cuando mi resultado cambie reconozca una cadena")
Ya incluso comentaron que deberían poner algunas líneas de código, es raro que sepas tan poco que ni siquiera sepas ponerlas, pero si encima parece que no sabes "lo básico" de español, o no tienes "la consideración" de usarlo bien, te la veo difícil en este campo: ¿Vas a escribir en Phyton cometiendo errores similares a los que cometes al escribir en español? Probablemente se debe a que escribes usando celulares, pero ahí viene el tema de "la consideración", o respeto, no sé cómo llamarle: Si quieres ayuda, presenta bien las cosas, no pretendas que la gente tenga que andar adivinando o rompiéndose la cabeza sobre qué es lo que quieres decir. Aunque bueno, siempre hay gente más comprensiva y paciente que otra...


Título: Re: Bucle aprendiendo
Publicado por: reymosquito en 22 Agosto 2022, 22:37 pm
la red está llena de ejemplos, ¿que has intentado, o querés todo hecho sin poner ni una línea de código? En otro foro hay exactamente el mismo pedido, ni una coma de diferencia y tampoco hay nada hecho, aprender no significa que no hagas nada, puede ser mal, pero intenta algo, claro siempre puede haber alguien que sea muy altruista y te haga el código.


Título: Re: Bucle aprendiendo
Publicado por: dian1919 en 22 Agosto 2022, 23:10 pm
Gracias por la ayuda, la verdad es que no deseo agarrarme del conocimiento de nadie, se agradecer, solo he buscado igual el entender como ocupar los bucles voy a poner el ejemplo utilizando lo que me ayudaron.

ya me salio creo o haber si alguien me puede decir si esta bien definido lo que pretendo es aprender de los bucles con numeros y con cadenas, gracias a todos por la ayuda.



Código
  1. palabra = ""
  2. num = 7
  3. count = 0
  4.  
  5. while count < num:
  6.    count += 1
  7.    print(count)
  8.    if count == num:
  9.        print("Hola")
  10.        palabra = "esta es una cadena grande"
  11.        break
  12.  
  13.  
  14.  
  15.    while palabra == palabra:
  16.          palabra = "esta es una cadena grande"
  17.          print(palabra)
  18.  


Título: Re: Bucle aprendiendo
Publicado por: Tachikomaia en 23 Agosto 2022, 03:16 am
Creo que tienes 2 errores.

1ero, si pones
while palabra == palabra:
entonces ese bucle no va a terminar, a menos que le pongas un break luego (pero lo normal es especificar en la condición, en qué caso se quiere que se repita), o sea ¿quieres un bucle que no termine? No es que esté mal, pero en algunos casos no tiene sentido, incluso en algunos lenguajes se te puede "trancar" la computadora, o sea, se tiene que cerrar el programa de un modo anormal, porque por sí solo no termina...
Además, si quieres hacer eso, creo que es mejor hacerlo así por ejemplo:
while 0 == 0:
porque de ese modo no haces que la computadora tenga que averiguar o leer el valor de una variable.
¿Entiendes? Si pones "a == a", o "juanito == juanito", etc, esas condiciones siempre se van a cumplir, porque cada valor es igual a si mismo.

2ndo, no tiene sentido definir una variable dentro de un bucle, a menos que le cambies el valor de algún modo.
Es como que digas:
Repetir:
"Soldado, párese derecho."
mientras a==a
No tiene sentido que des la orden infinitas veces, porque el soldado no se va a sentar ni nada hasta que tú se lo digas, va a seguir parado derecho hasta que le digas que cambie, no necesitas decirle a cada segundo "siga parándose derecho". Con las definiciones de variables es igual, una vez que las definís se quedan así hasta que las cambies, no necesitas repetir la misma definición a cada segundo.