Print na stejném řádku s přepsáním hodnoty – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Print na stejném řádku s přepsáním hodnoty – Python – Fórum – Programujte.comPrint na stejném řádku s přepsáním hodnoty – Python – Fórum – Programujte.com

 

Marv
~ Anonymní uživatel
7 příspěvků
2. 12. 2018   #1
-
0
-

Ahoj, jsem absolutní začátečník v Pythonu  a potřeboval bych zobrazit data na jednom řádku tak, aby se přepisovala (např, počitadlo sekund). mám tento kód

import time
 for n in range(1, 6):
    print(' time is 0.{}sec'.format(n), end='\r')
    time.sleep(0.1)

ale po spuštění, se mi to zobrazí všechno na jednom řádku za sebou..

time is 0.1sec time is 0.2sec time is 0.3sec time is 0.4sec time is 0.5sec

 POtřeboval bych aby se to přepisovalo. Nevíte kde je chyba? Co jsem tak prolezl různá fora, tak tento zápis by měl fungovat.

Mám Python 3.7.1 (win).

Díky moc.

Martin.

Nahlásit jako SPAM
IP: 91.187.35.–
jerry
~ Anonymní uživatel
512 příspěvků
3. 12. 2018   #2
-
0
-

#1 Marv
obávám se že python nemá klasický příkaz LOCATE jako byl kdysi v basicu takže budeš muset použít něco jakotohle (viz sekce python):

https://rosettacode.org/wiki/Terminal_control/Cursor_positioning#C.2FC.2B.2B

je vhodné si uvědomit, že i okno konsole v pythonu je grafické okno, protože klasické textové okno už dnes spadá do éry msdosu :) případně linux a pod....

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:7d93:52c7:9c8f:e5b7...–
Belpir
~ Anonymní uživatel
3 příspěvky
18. 12. 2018   #3
-
0
-

#1 Marv

Ahoj,

Co zkusit pomocí curses (nativně v Linux&MAC, ve win např modul 

 

#! /usr/bin/env python3

import curses
# curses jen v *NIX like OS).
# pro win: import windows-curses as curses

def main(screen):
    i = 0
    while i in range(10):
        screen.addstr(curses.LINES-2, 1, f'time is {i}sec', curses.color_pair(0))
        screen.refresh()
        curses.napms(600)   # sleep v ms
        i += 1

curses.wrapper(main)

Nahlásit jako SPAM
IP: 131.207.242.–
peter
~ Anonymní uživatel
4016 příspěvků
18. 12. 2018   #4
-
0
-

Googlem jsem nasel toto. Na pohled to vypada, ze by to mohlo fungovat.

import time
import sys

time_start = time.time()
seconds = 0
minutes = 0

while True:
    try:
        sys.stdout.write("\r{minutes} Minutes {seconds} Seconds".format(minutes=minutes, seconds=seconds))
        sys.stdout.flush()
        time.sleep(1)
        seconds = int(time.time() - time_start) - minutes * 60
        if seconds >= 60:
            minutes += 1
            seconds = 0
    except KeyboardInterrupt, e:
        break
Nahlásit jako SPAM
IP: 2001:718:2601:258:dc8e:71bf:5a43:8df1...–
gna
~ Anonymní uživatel
1891 příspěvků
18. 12. 2018   #5
-
0
-

V konzoli by to mělo fungovat. Myslím si, že to spouští v nějakém IDE, které ten výstup zachytává a interpretuje jinak.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Java - 2 hodnoty na 1 řádku — založil Maveric1990

Pomoc s přepsáním kódu — založil Jakub

Problem s přepsáním přípony — založil georginho

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý