Python - problema en cuenta regresiva

 
Vista:
sin imagen de perfil

problema en cuenta regresiva

Publicado por felipe (4 intervenciones) el 10/01/2024 15:04:18
Buenos días a todos.

Estoy aprendiendo a programar en Python. Tengo un pequeño problema con un pequeño e inicial programa de una cuenta regresiva.
El código lo tengo casi terminado, pero creo que me falta algo porque no funciona como yo esperaba.

Mi intención es hacer la cuenta regresiva y que donde aparece el primer numero, aparezcan los siguientes, pero lo que tengo es que el segundo numero me aparece debajo del primero y así sucesivamente con los siguientes.

¿Podrían ayudarme? gracias.

El código es el siguiente:

1
2
3
4
5
import time
 
for i in range (5,0,-1):
    print (i , end= "\r")
    time.sleep (1)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

problema en cuenta regresiva

Publicado por Costero (92 intervenciones) el 10/01/2024 21:34:49
Yo no tengo Windows para comprobar pero puedes tratar asi:
1
2
3
4
5
6
7
import time
from os import system
 
for i in range (5,0,-1):
    system("cls")
    print (i , end= "\r")
    time.sleep (1)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema en cuenta regresiva

Publicado por felipe (4 intervenciones) el 11/01/2024 01:26:09
Continúa dando error o escribiendo hacia la derecha, según el editor de codigo que elija. todo esto en linux.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema en cuenta regresiva

Publicado por Costero (92 intervenciones) el 11/01/2024 03:24:35
Si es Linux entonces es asi:

1
2
3
4
for i in range(5, 0, -1):
    system("clear")
    print(i, end="\r")
    time.sleep(1)

A mi me funciona
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema en cuenta regresiva

Publicado por felipe (4 intervenciones) el 11/01/2024 12:58:03
gracias.

Como no me funcionaba correctamente en IDLE y en Sublimetext, me he puesto a buscar otro editor de codigo y al fin me funciona en Visual Studio, pero me aparece un mensaje que no sé que significa porque con el traductor de google tampoco lo entiendo.

el mensaje es el siguiente:


1
2
[238 preload-host-spawn-strategy] Warning: waitpid override ignores groups
sh-5.1$
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

problema en cuenta regresiva

Publicado por Costero (92 intervenciones) el 11/01/2024 16:25:48
Por lo que he encontrado googleando, pasa cuando instalas Visual Studio usando to Linux package manager. Asi que recomiendand una de 2 soluciones.

1-) Installa Visual Code del website: https://code.visualstudio.com/

2-) O en tu Visual Code, en settings.json pones lo siguiente:

1
2
3
"terminal.integrated.env.linux": {
"LD_PRELOAD": null,
},

Yo haria el paso 1.

Otra cosa, tambien debes de aprender de correr el programa fuera de tu IDE.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

problema en cuenta regresiva

Publicado por felipe (4 intervenciones) el 12/01/2024 00:23:25
Gracias.

Como no encontraba la segunda solución por parecerme más rápida, he optado por la primera y todo está OK.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Benjamin

problema en cuenta regresiva

Publicado por Benjamin (1 intervención) el 09/02/2024 10:04:43
Buenos días a todos.

He estado revisando tu código y parece estar en el camino correcto para crear una cuenta regresiva en Python. Sin embargo, puedo ver dónde está el problema que mencionas.

Lo que estás experimentando, donde cada número aparece debajo del anterior en lugar de reemplazarlo, es probablemente debido a cómo se está imprimiendo en la consola. La razón es que el caracter especial "\r" (retorno de carro) solo funciona correctamente en ciertos entornos de consola, como el de la línea de comandos de Windows.

Una forma de solucionar esto es utilizar la biblioteca os para borrar la línea anterior antes de imprimir el siguiente número. Aquí te dejo una versión modificada de tu código que debería funcionar como esperas:
import time
import os

for i in range (5, 0, -1):
print(i, end="\r")
time.sleep(1)
os.system('cls' if os.name == 'nt' else 'clear') # Limpiar la línea anterior antes de imprimir el siguiente número
Con esta modificación, el número anterior se borrará antes de imprimir el siguiente, lo que debería crear una cuenta regresiva que se actualiza en el mismo lugar en la consola.

Espero que esto te sea útil. ¡Buena suerte con tu aprendizaje de Python!

Saludos. Además, si deseas experimentar más con tus habilidades de programación, te recomendaría echar un vistazo a algunos ejemplos prácticos en https://jokerjewelsslot.ar/demo/.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar