【发布时间】:2018-09-01 17:34:11
【问题描述】:
我已经做了一个代码。它就像我们正在运行原始的 python 一样工作。它使用eval 和exec。当我尝试在其中创建一个函数或任何 if 语句时,它不起作用。代码如下:
print("Python\n")
while True:
command =input(">>> ")
if command == "quit()":break
try:
try:
eval(command)
except:
exec(command)
except Exception as err:
print("Exception: "+str(err))
跑步:
Python
>>> a = input("Enter your name: ")
Enter your name: abc
>>> print(a)
abc
>>> if True:
Exception: unexpected EOF while parsing (<string>, line 1)
>>> if True:print(a);if a == "abc":print("Great Abc")
Exception: invalid syntax (<string>, line 1)
>>>
【问题讨论】:
-
您的问题不清楚,请多提一下您发布的两个代码快照之间的关系
-
if True:失败,因为:之后需要有一些东西。你可以把pass放在那里。 -
你为什么要模仿 REPL 行为?
-
@Carcigenicate 我尝试按回车键在其中输入我的代码。
-
@mmmmmmmm
eval不知道。你可以试试(if True然后按回车,但我怀疑它会起作用。再说一次,为什么你要重新发明 REPL?
标签: python python-3.x exec eval