擅长:python、mysql、java
<p>f-string只能计算源代码中f-string内部的表达式。你知道吗</p>
<p>如果要像计算源代码一样计算包含表达式表示形式的字符串,则需要使用<a href="https://docs.python.org/3/library/functions.html#eval" rel="nofollow noreferrer">^{<cd1>}</a>。你知道吗</p>
<^ >太长了,读不下去了,{{CD1>}几乎总是一个坏主意(TL;DR:任何人都可以改变你输入到{{CD1>}的输入,可以让你运行他们想要的任何代码)。但如果你真的想这么做,那就是方法:</p>
<pre><code>if line:
lines = line.strip()
input(f"Does {lines}?>")
print(eval(lines))
</code></pre>
<p>如果您想做一些更安全的事情,您唯一能做的就是将代码解析为比“任何Python表达式”更安全的东西。这并不像听起来那么难(特别是因为,如果您的语言是Python的一个精确子集,那么您可以使用<a href="https://docs.python.org/3/library/ast.html" rel="nofollow noreferrer">^{<cd4>}</a>模块来进行解析,并且您只需要编写解释器部分),但它并不完全是一个一行程序。你知道吗</p>