问题:在python中构造一种名为Adder REPL的编程语言。
Adder语言只有几个简单的语句:
“ 退出”以退出REPL或终止程序。
“ 输入var ”提示并允许用户输入名为var的变量的值。
“ 打印值”以打印值val。
“ var gets val ”变量var被赋值为val。
“ var添加val ”变量var已为其添加值val。
位置:
•var始终是仅包含字母的变量名;和
•val可以是:
仅包含字母的变量名;或
仅包含数字的自然数。
加法器REPL允许用户以交互方式输入命令。使用字典,此练习的问题更长。
提示:充分利用字符串方法。您可以通过定义函数将程序分成更小的部分吗?
到目前为止我的解决方案
我使用无限的while循环创建了一个简单的解决方案,但是我似乎无法为我的程序实现字典,任何想法或帮助将不胜感激。
def decor(func):
def wrap():
print("======================")
func()
print("======================")
return wrap
@decor
def print_text():
print("Welcome to Adder REPL.")
print_text()
def loop():
while 1:
x = input("??? ")
if x == 'quit':
print('Goodbye.')
break
try:
y = eval(x)
if y: print(y)
except:
try:
exec(x)
except Exception as e:
print("Error:", e)
loop()
预期的输入/输出
Welcome to the Adder REPL.
??? a gets 1
??? input b
Enter a value for b: 2
??? c gets a
??? c adds b
??? print a
a equals 1
??? print b
b equals 2
??? print c
c equals 3
??? print z
z is undefined.
??? print 32
32
??? blerg
Syntax error.
??? 23 gets z
Syntax error.
??? quit
Goodbye.