我有一个测试.txt现在有两行的文件
not False == True
not True == True
我正在尝试将它导入到我的函数中,这样它就可以显示带有输入的文本,然后实际执行布尔运算 然后每行重复一次。第6行的输入是有效的,但第7行不行,我知道为什么,我只是不知道怎么做我想做的。。。你知道吗
def calc (read):
line = read.readline()
if line:
lines = line.strip()
input(f"Does {lines}?>")
print(f"{lines}")
return calc(boolfile)
boolfile = open("test.txt")
calc(boolfile)
f-string只能计算源代码中f-string内部的表达式。你知道吗
如果要像计算源代码一样计算包含表达式表示形式的字符串,则需要使用^{} 。你知道吗
<^ >太长了,读不下去了,{{CD1>}几乎总是一个坏主意(TL;DR:任何人都可以改变你输入到{{CD1>}的输入,可以让你运行他们想要的任何代码)。但如果你真的想这么做,那就是方法:如果您想做一些更安全的事情,您唯一能做的就是将代码解析为比“任何Python表达式”更安全的东西。这并不像听起来那么难(特别是因为,如果您的语言是Python的一个精确子集,那么您可以使用^{} 模块来进行解析,并且您只需要编写解释器部分),但它并不完全是一个一行程序。你知道吗
好像你在找
eval
。 试试这个:输出:
相关问题 更多 >
编程相关推荐