2010-11-04 17 views
7

Sto provando a creare un gioco testuale in python. Tutto va bene comunque, vorrei fare una funzione che mi consenta di stampare qualcosa sul terminale, ma in un cappello di moda sembra digitare.stampa lentamente (Simula la digitazione)

Attualmente ho:

def print_slow(str): 
    for letter in str: 
     print letter, 
     time.sleep(.1) 

print_slow("junk") 

L'output è:

j u n k 

Esiste un modo per sbarazzarsi degli spazi tra le lettere?

risposta

14

In Python 2.x è possibile utilizzare al posto di sys.stdout.writeprint:

for letter in str: 
    sys.stdout.write(letter) 
    time.sleep(.1) 

In Python 3.x è possibile impostare l'argomento opzionale end alla stringa vuota:

print(letter, end='') 
6

Questa è la mia funzione "tipo come una persona reale":

import sys,time,random 

typing_speed = 50 #wpm 
def slow_type(t): 
    for l in t: 
     sys.stdout.write(l) 
     sys.stdout.flush() 
     time.sleep(random.random()*10.0/typing_speed) 
    print ''