为什么python似乎无法按顺序执行代码?

时间:2019-10-03 16:21:49

标签: python

执行后,将在其上方的input()之前打印print()提示符。 执行的结果是打印

Color1:Guess the code

我正在使用顶篷编辑器。我已经尝试过guess[x]=input("Color %s:") % str(x+1)guess[x]=input("Color"+str(x+1))

guess=[None]*n
print("Guess the code")
for x in range(5):
   tempstring = "Color"+str(x+1)+":"
   guess[x]=input(tempstring)

我希望输出是

Guess the code
Color1:

然后允许用户输入字母

2 个答案:

答案 0 :(得分:1)

当我复制并运行此代码时,它按预期工作。

对我来说,这似乎是一个冲洗问题。您是否可以尝试在打印功能中使用flush=True来强制刷新,如下所示:

print("Guess the code", flush=True)

答案 1 :(得分:-1)

在代码print("Guess the code")的行中添加一个'newline'字符或与您等效的操作系统,

print("Guess the code\n")

\n是reg ex中的新行

我相信您的操作系统正在将输出读取到输入命令和打印输出的'tag'表达式<Guess the Code>中。添加换行符可以防止操作系统认为它是标签,并将其更改为标准输出。


添加的答案


如果删除第一行中的“星号n”,

代码将在Linux机器上运行:

guess=[None]
print("Guess the code")
for x in range(5):
   tempstring = "Color"+str(x+1)+":"
   guess[x]=input(tempstring)

输出

Python 3.7.4 (default, Jul  9 2019, 00:06:43)
[GCC 6.3.0 20170516] on linux
Guess the code
Color1: