java怎么判断python脚本命令是否符合语法规则?

在输入框编写python代码后会传到到后台,由后台在虚拟机里生成python脚本,java代码怎么在接收到python代码后验证代码是否符合语法要求

2个回答

我的想法是:
在python的代码前加上try:, 在后面加上

except Exception as e:
return e
运行后就会返回错误的代码,就可以验证代码是否符合语法要求

像python这样的动态语言,只有执行才能知道脚本是否有语法错误。像一个程序运行了几个小时,才得到一个语法错误的事情经常遇到。

这有点类似“停机问题”。

我们知道,有很多世界级的数学难题,比如哥德巴赫猜想、黎曼猜想、费马定律,都很难以证明,但是写一个程序,代入计算,寻找有没有反例,这个不难写。问题是,这种程序写出来,运行时间很长,甚至无限长(如果没有反例,就一直算下去)。
于是有人就想了,如果我们编写这么一个程序,去寻找反例。比如哥德巴赫猜想(任一大于2的偶数都可写成两个质数之和),我们就写一个死循环,从2开始遍历偶数,分解质数看看能不能写成两个质数之和,如果不能,程序停止循环,退出,如果能就继续。
那么如果说我们能找到一个方法,分析这个程序本身(而不是循环执行它),就能知道这个程序是否会停止还是无限循环下去,岂不是我们就能证明哥德巴赫猜想了么?也就是如果程序会停止,我们就知道这个猜想是不成立的,如果不会停止,就是成立的。这就是“停机问题”。

但是这个分析程序的方法是不可能找到的。证明的过程很简单。如果我们能写出这么个分析的程序,它分析自身,如果得到的结果是会停机,我们就死循环,如果会死循环,我们就跳出循环,也就是自己判断自己,那么会如何呢?显然这就是悖论了。

好了,回到你的问题,python的程序是动态的,因此可以在运行的时候生成代码,比如说:
obj
if 今天是2018年:
obj.a=1
print(obj.a)
那么obj有没有a这个属性全凭借今天是不是2018年的某天,如果明年运行就a没有定义了。

因此,你看无论是 IPython PyCharm,没有一种环境可以在编写代码的时候找出所有的语法错误。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐