Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743

    [python] print senza invio a capo

    Sto usando per la prima volta python

    questa è una porzione del codice che uso
    codice:
    
    print "0"
    
    for x1 in caratteri_1:
    	for x2 in caratteri_2:
    		for x3 in caratteri_3:
    			parola = x1 + x2 + x3
    			x = x + 1
    			percentuale_calcolata = int( 100 * x / totale_risultati )
    			if percentuale_calcolata > percentuale_visualizzata:
    				percentuale_visualizzata = percentuale_calcolata
    				print percentuale_visualizzata
    
    così i numeri della percentuale_visualizzata compaiono uno sotto l'altro, pensavo di farli comparire uno dopo l'altro senza l'invio a capo e quindi ho aggiunto la virgola alla fine del print all'interno dei cicli

    però così facendo, durante l'esecuzione dello script non viene visualizzato niente ed i numeri compaiono solo quando finisce l'esecuzione.

    come mai? grazie
    Errare humanum est, perseverare ovest

  2. #2
    L'output su standard output, quando effettuato su terminale, è bufferizzato di default a linea; questo significa che se vai a capo l'output viene immediatamente inviato al terminale, se non lo fai, Python lo tiene in un buffer per evitare di perdere tempo ad inviare i dati per ogni minimo output.

    Per forzare un flush del buffer di output, comunque, ti basta fare:
    codice:
    import sys
    # ...
    
    sys.stdout.flush()
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Grazie mille, adesso va.

    Ma se volessi che non comparissero tutti i numeri, ma solo quello della percentuale corrente, è possibile?

    Sto cercando ma non trovo niente in merito.
    Errare humanum est, perseverare ovest

  4. #4
    Su Linux puoi usare il carattere "\b" per tornare indietro nel terminale, non ricordo se funziona anche su Windows (ma credo di sì).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    Ok, adesso funziona

    (non uso win)

    ciao grazie
    Errare humanum est, perseverare ovest

  6. #6


    (tra parentesi, se hai bisogno di controllo completo sul terminale puoi usare il modulo curses)
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,743
    neanche sapevo che esisteva questa roba

    Una figata

    grazie
    Errare humanum est, perseverare ovest

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.