медленная печать (имитация набора текста) - PullRequest
7 голосов
/ 04 ноября 2010

Я пытаюсь сделать текстовую игру на питоне. Все идет хорошо, однако, я хотел бы сделать функцию, которая позволит мне печатать что-то в терминал, но в модной шапке выглядит как печатать.

В настоящее время у меня есть:

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

print_slow("junk")

Вывод:

j u n k

Есть ли способ избавиться от пробелов между буквами?

Ответы [ 4 ]

15 голосов
/ 04 ноября 2010

В Python 2.x вы можете использовать sys.stdout.write вместо print:

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

В Python 3.x вы можете установить необязательный аргумент end впустая строка:

print(letter, end='')
7 голосов
/ 06 марта 2013

Это моя функция "типа как настоящий человек":

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 ''
4 голосов
/ 01 мая 2012

Попробуйте это:

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")
0 голосов
/ 01 февраля 2019

Попробуйте это:

import sys,time

def sprint(str):
   for c in str + '\n':
     sys.stdout.write(c)
     sys.stdout.flush()
     time.sleep(3./90)

sprint('hello world')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...