Python 3.7.1尝试在命令行中以错误的顺序阻止块发生

时间:2018-11-19 03:11:18

标签: python python-3.x printing try-except

我是一个初学者,正在研究非常基本的技能。

我正在Windows的命令行中制作一个简单的文字游戏,并且具有让用户读取最新语句并通过像Ctrl-C一样引起KeyboardInterrupt来跳过它的功能。

from time import sleep
def wait(seconds):
    try:
        sleep(seconds)
    except KeyboardInterrupt:
        pass
    return

当我要打印某些东西而以后没有换行符时,就会出现问题。在这种情况下,wait()函数将在print()函数之前执行

# functions properly, but has unwanted newline
print("test", end='test\n')
wait(3)
# in windows CMD, wait() executes before print()
print("test", end='test')
wait(3)

我知道有多种方法可以使用TKinter,但是我想知道为什么会这样,而不是完全避免这种情况。

编辑:我一直在搜索,发现问题不是除了块以外的尝试,而是sleep(): Error with Print and Sleep in Python 答案副本:

您应该使用:

print (a, end="", flush=True)

因为控制台输出是行缓冲的。

1 个答案:

答案 0 :(得分:0)

我同意你的回答。您应该使用:

print(a, end="", flush=True)

因为控制台输出是行缓冲的。