首页 > 解决方案 > 为什么 Python 控制台会重复输入其中的内容?

问题描述

当我在 python 控制台中写一些东西时,它会重复我写的内容。

就像我写 1,它在输出中显示 1,如果我写 True,它给出 True。

为什么是这样?

例子:

>>1
1

>>True
True

在后台实际发生了什么?

标签: pythonobjectnumbers

解决方案


您正在输入REPL。它读取输入,E评估它,P打印结果,然后循环返回并重新开始。

你让它读取数字1,评估它(虽然它只是一个数字),然后打印评估结果(数字)。之后,它等待输入更多输入,以便再次运行。

如果您键入更复杂的表达式,它也会被计算。1 + 1将显示,例如2[1] * 5将显示。[1, 1, 1, 1, 1]

如果您想考虑如何在代码方面实现这一点,REPL 的最基本实现将类似于以下内容:

while True:
    user_input = input(">> ")

    result = eval(user_input) # eval evaluates a string as code

    print(result)

与此类似的代码(尽管可能要复杂得多)只是在后台运行。


推荐阅读