Спасибо всем за вашу помощь, это мой окончательный код, я сделал случайный выбор времени для задержки, как упомянуто Wooble:

у, чтобы текст отображался так, как будто он просто печатается. Поэтому мне нужно немного задержаться после каждого письма.

Я пытался сделать это так:

import time

text = "Hello, this is a test text to see if all works fine."
for char in text:
   print char,time.sleep(0.2),

Работает нормально, за исключением одной проблемы. Я получаю «Нет» после каждого персонажа.

Это вывод:

H Нет e Нет l Нет l Нет o Нет, нет Нет Нет t Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет o Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет Нет. Никто

Я не знаю, почему это происходит. Я надеюсь, что кто-нибудь может мне помочь.

 S.Lott07 янв. 2011 г., 17:01
Почему вы печатаете значениеtime.sleep(0.2)?

Ответы на вопрос(7)

time.sleep в отдельной строке. С запятой вы также печатаете возвращаемое значение.

Вы печатаете результатtime.sleep(0.2), которыйNone, Переместите его на следующую строку.

text = "Hello, this is a test text to see if all works fine."
for char in text:
    print char,
    time.sleep(0.2)

Конечно, у вас все еще есть проблема пробела между каждым символом, которую можно решить, заменивprint заявление с призывом кsys.stdout.write.

text = "Hello, this is a test text to see if all works fine."
for char in text:
    sys.stdout.write(char)
    time.sleep(0.2)

я думаю (по крайней мере, на окнах). Вы можете использовать печать дляsys.stdout чтобы обойти это.

import time, sys
for character in text:
    sys.stdout.write(character)
    time.sleep(0.2)

эта строка:

print char, time.sleep(0.2)

декодирует как «печать значенияchar, а затем выведите возвращаемое значение функцииtime.sleep() (которыйNone)».

Вы можете разбить их на отдельные строки, но поведение по умолчаниюprint после запятой останутся пробелы между символами, которые вы, вероятно, не хотите. Если нет, посмотрите, как изменить поведениеprintили сделать что-то вроде этого:

>>> import sys
>>> import time
>>> for char in "test string\n":
...    sys.stdout.write(char)
...    time.sleep(0.2)
...
test string
>>>

это мой окончательный код, я сделал случайный выбор времени для задержки, как упомянуто Wooble:

import time
import sys
from random import randrange

text = "This is the introduction text."

for c in text:
    sys.stdout.write(c)
    sys.stdout.flush()
    seconds = "0." + str(randrange(1, 4, 1))
    seconds = float(seconds)
    time.sleep(seconds)

которое является None. Поместите это на отдельной строке. Запятая после «print char» будет препятствовать печати новой строки, но будет вводить один пробел после каждого символа.

Попробуйте это вместо этого:

>>> import sys
>>> import time
>>> text = "Hello, this is a test text to see if all works fine."
>>> for char in text:
...     sys.stdout.write(char)
...     time.sleep(0.2)
 Jeremy Brown07 янв. 2011 г., 16:29
Мэтт избил меня до удара и также правильно включил вызов flush ().
Решение Вопроса
>>> import time
>>> import sys
>>> blah = "This is written slowly\n"
>>> for l in blah:
...   sys.stdout.write(l)
...   sys.stdout.flush()
...   time.sleep(0.2)
...
This is written slowly
 Wooble07 янв. 2011 г., 16:31
+1 заflush(), Конечно, если вы действительно хотите, чтобы он отображался напечатанным, время паузы должно быть случайным; кто печатает в совершенно нормальном темпе?
 bgporter07 янв. 2011 г., 16:51
+1 за флеш, который я забыл.
 MattH07 янв. 2011 г., 16:37
Зависит от машинистки. Сенсорные наборы на клавиатуре дома: задержка будет больше между теми же пальцами ... и, вероятно, самая короткая между чередующимися руками. Более длительная задержка смещения и т. Д. Я начал что-то кодировать, но потом решил вернуться к работе :)

Ваш ответ на вопрос