【发布时间】:2015-08-25 15:33:45
【问题描述】:
我一直在使用 ><> (Fish) 解释器进行练习,但遇到了一个错误。有问题的代码似乎在这里:
import sys
from random import randint
file = sys.argv[1]
code = open(file)
program = code.read()
print(str(program))
stdin = sys.argv[2]
prgmlist = program.splitlines()
length = len(prgmlist)
prgm = {}
for x in range(0,length-1):
prgm[x+1] = list(prgmlist[x])
这里的目标是获取代码并将其放入某种网格中,以便可以单独获取和计算每个命令。通过网格,我的意思是映射到列表:
{line1:["code","code","code"]
line2:["code","code","code"]
line3:...}
等等。
但是,当我尝试使用cmd = prgm[y][x] 检索命令时,它给了我KeyError: 0。
感谢任何帮助。
这是一个回溯:
Traceback (most recent call last):
File "/Users/abest/Documents/Python/><>_Interpreter.py", line 270, in <module>
cmd = prgm[cmdy][cmdx]
KeyError: 0
还有整个代码的pastebin。
输入是来自 wiki 页面的 hello world 程序:
!v"hello, world"r!
>l?!;o
【问题讨论】:
-
您也应该添加导致问题的代码吗?以及相同的完整回溯。
-
另外,您应该让我们知道您的输入/输出是什么。
-
请举例说明您的输入内容。
-
@AnandSKumar 抱歉,添加了回溯和输入。
标签: python debugging interpreter keyerror