【发布时间】:2013-03-27 18:50:45
【问题描述】:
正如标题所示,我目前正在使用 Python 开发 BASIC 模拟器。这个程序应该打印“成功”或“无限循环”,这取决于哪个是真的。这是我的代码:
def findLine(prog, target):
for l in range(0, len(prog)):
progX = prog[l].split()
if progX[0] == target:
return l
def execute(prog):
location = 0
while True:
if location==len(prog)-1: return "success"
else: return "infinite loop"
T = prog.split()[location]
location = findLine(prog, T)
FindLine 应该接受这样的输入:findLine(['10 GOTO 20', '20 END'], '20') 并输出出现目标的 prog 的索引。
execute 应该接受这样的输入:execute(['10 GOTO 21', '21 GOTO 37', '37 GOTO 21', '40 END'])
问题是,这段代码的“def execute(prog)”部分被破坏了,我需要一些帮助来修复它,这样它才能完成我之前描述的操作。任何有关调试的帮助都将不胜感激,如果这有点含糊,我们深表歉意——我不太确定要写什么。
【问题讨论】:
-
到底是什么问题? 破碎是什么意思?您能否描述正在发生的事情以及您的预期?
-
@CharlesBrunet 坏了,我只是说代码没有按应有的方式运行。发生的事情是它应该返回“成功”时返回“无限循环”。