python - 为什么 Python 控制台会重复输入其中的内容?
问题描述
当我在 python 控制台中写一些东西时,它会重复我写的内容。
就像我写 1,它在输出中显示 1,如果我写 True,它给出 True。
为什么是这样?
例子:
>>1
1
>>True
True
在后台实际发生了什么?
解决方案
您正在输入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)
与此类似的代码(尽管可能要复杂得多)只是在后台运行。
推荐阅读
- javascript - 带有笑话的png静态图像的配置问题
- javascript - 对数组中的项目进行分组和计数的简洁方法
- php - 在递增和递减时从表单获取值到 php 很热
- c# - 与 Fluent Api 等效的 [ForeignKey("ForeignId")] 的一对一关系 - EF Core
- javascript - TreeTable的对象到树,按两次Typescript / JavaScript分组
- python - 如何查询列表django
- neo4j - Neo4j 嵌入式 DROP INDEX 抛出奇怪的错误
- vue.js - Vue 3 发射道具
- javascript - 如果一列值在文本中,另一列是 html 中的单选按钮,则比较两列
- javascript - 如何使用 puppeteer(node js)保持登录 gmail