タイトルが示すように、私は現在、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)」部分が壊れていることです。前に説明したように修正するには、何らかの助けが必要です。これをデバッグするための助けをいただければ幸いです。これが少しあいまいである場合はお詫び申し上げます。何を書くべきかよくわかりません。