我在使用python eval函数执行多行字符串时遇到问题/
code = '''
def main():
print "this is a test"
main()
'''
eval(code)
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
eval(code)
File "<string>", line 3
def main():
^
SyntaxError: invalid syntax
eval
只能评估Python 表达式
,不能评估语句。函数定义是语句,而不是表达式。
使用exec
执行Python语句。
请参阅“ 顶层组件”
文档
,该文档在
文件输入
和
表达式输入 之间进行区分(其中包括):
file_input ::= (NEWLINE | statement)*
在以下情况下使用此语法:
[…]
- 解析传递给该
exec
语句的字符串时;
和
[…]的字符串参数
eval()
必须具有以下形式:eval_input ::= expression_list NEWLINE*
千万 不要 用这个来执行不可信的用户提供的文本。eval()
并且exec
无法防范恶意用户,如果您使用了恶意用户,他们可以并且 将
接管网络进程。
实际上,除了在扔掉所有服务都已牢固关闭的一次性虚拟机中运行代码之外,没有任何“安全”的方法可以做到这一点。运行新的虚拟机以获取新代码,完成后或超时后丢弃整个VM。
本文向大家介绍Java评估算术字符串,包括了Java评估算术字符串的使用技巧和注意事项,需要的朋友参考一下 示例
问题内容: 我如何布尔计算包含布尔表达式的字符串?喜欢: 用户应该能够定义自己的变量(),并定义自己的布尔表达式()。因此,我将所有表达式仅作为字符串使用。我如何评估它们? 问题答案: 您可以使用Nambari评论的ScriptEngine: 打印0。 还要注意,该表达式不是布尔表达式,而是按位运算。
问题内容: 我必须从D / B检索一组列值并将其作为条件进行检查。 例如,我将有像字符串,在d / B柱。(值是一直比较的值)。我将在代码中声明一个变量值,我应该评估这种情况。 我怎样才能做到这一点??任何帮助都受到赞赏。谢谢。 问题答案: 这是使用标准(Java 1.6+)脚本库的示例:
我正在编辑从tesseract ocr收到的一些电子邮件。 以下是我的代码: 但输出不正确。 输入: 输出: 但是当我在每次替换后将结果赋给一个新的字符串时,它工作得很好。为什么在同一个字符串中连续赋值不起作用?
问题内容: 我有一个这样的字符串:现在我想用实际的换行符替换\ n,这样它将变成 理发师 这是我的代码 但是它不起作用并且给我相同的字符串 问题答案: 您需要做: 该方法在其第一个参数中期望使用正则表达式。当在Java字符串中传递2时,您实际上传递了1。问题是,是一种逃避字符也正则表达式,因此正则表达式是actualy ,所以你需要把额外的两次。
我最近开始在业余时间学习java。所以为了练习,我制作了一个程序,可以测量温度(摄氏度或华氏度),并将其转换为相反的温度。我已经导入了键盘扫描仪。 我不熟悉字符串和之类的东西,程序只是跳过了用户输入部分,在那里输入C或F。有人能解释一下我能做些什么来解决这个问题吗? 谢谢!