【问题标题】:Input statement following a print statement prints first打印语句后面的输入语句首先打印
【发布时间】:2018-12-28 08:13:00
【问题描述】:

我有一个打印语句之前和输入语句。但是输入语句首先打印。

print('Warning this program renames files')
char =input ('Enter  Y to continue N to quit')

终端画面的结果是:

Enter Y to continue N to quit
Warning this program renames files

如果我在两个语句之间引入某种形式的延迟,它可以正常工作。示例代码:

print('Warning this program renames files')
for i in range (1,10000):
    j=i*i
char=input('Enter  Y to continue N to quit')

终端中的输出以正确的顺序打印

Warning this program renames files
Enter  Y to continue N to quit

任何人都知道为什么会发生这种情况,这看起来像是两条语句之间的竞争,以访问打印功能,并且输入似乎获胜,除非您延迟其执行。

【问题讨论】:

  • 我似乎无法重现这一点。什么版本的 Python,你使用什么操作系统和终端?这是在函数内部还是只是脚本的顶层?

标签: python


【解决方案1】:

与其拖延,不如试试

import sys

print('Warning this program renames files')
sys.stdout.flush()
char = input('Enter  Y to continue N to quit')

【讨论】: