2010-11-04 8 views
7

मैं अजगर में एक टेक्स्ट गेम बनाने की कोशिश कर रहा हूं। सब ठीक है, हालांकि, मैं एक ऐसा फ़ंक्शन बनाना चाहता हूं जो मुझे टर्मिनल पर कुछ प्रिंट करने की अनुमति दे, लेकिन फैशन टोपी में टाइपिंग की तरह दिखता है।धीरे-धीरे प्रिंटिंग (टाइपिंग सिम्युलेट)

वर्तमान में मेरे पास है:

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

print_slow("junk") 

उत्पादन होता है:

j u n k 

वहाँ एक रास्ता पत्र के बीच रिक्त स्थान से छुटकारा पाने के है?

उत्तर

14

पायथन 2.x में आप sys.stdout.write बजाय print उपयोग कर सकते हैं:

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

अजगर 3.x में आप रिक्त स्ट्रिंग पर वैकल्पिक तर्क end सेट कर सकते हैं:

print(letter, end='') 
3

इस प्रयास करें :

def print_slow(str): 
    for letter in str: 
     sys.stdout.write(letter) 
     sys.stdout.flush() 
     time.sleep(0.1) 

print_slow("Type whatever you want here") 
6

यह मेरा "वास्तविक व्यक्ति की तरह टाइप करें" फ़ंक्शन:

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 '' 
संबंधित मुद्दे