-1

感谢您花时间帮助我。上个学期我一直在学习 Python 3.2,所以我的知识只不过是一个新手。我在 Windows 7 上,使用 Python 3.2 并使用 Python 的 IDLE。

我正在使用 for 循环以类似滚动的方式打印一系列字符串。我的意思是 IDLE 会一个字母一个字母地打印字符串。下面是我正在使用的代码。

import os, sys, time

message=('Enter string in here. It will print what is in here letter by letter.')

for line in message:
    print(line,end='')
    sys.stdout.flush()
    time.sleep(0.03)

我的问题是:如果用户要在整个字符串打印期间随时按“输入”,有没有办法打印整个字符串(消息)。因此,即使用户在开始时点击“输入”;将打印整个字符串。

再次感谢您抽出宝贵时间帮助我。非常感谢。

4

1 回答 1

-1

您的代码有点令人困惑,因为您的循环谈论的是行,但不是在行上工作。

message=('Enter string in here. It will print what is in here letter by letter.')

所以消息是一个字符串

for line in message:

如果我们遍历一个字符串,我们会得到字符。所以每次循环我们都会设置line到下一个字符。像这样命名变量只会让任何阅读它的人感到困惑,包括你自己。

如果用户在整个字符串打印期间随时点击“输入”,有没有办法打印整个字符串(消息)。因此,即使用户在开始时点击“输入”;将打印整个字符串。

我认为您要问的是是否可以免疫输入将光标移动到下一行。这个问题详细介绍了许多这样做的方法,wim 在他的回答中有一个例子。不过,这只是部分解决方案,对于这种类型的事情,我更喜欢使用诅咒(请参阅链接)。

如果这不是您要问的,那么我认为您需要重新提出您的问题。

于 2012-05-08T12:27:28.360 回答