タイトルが示すように、私は現在PythonでBASICシミュレーターに取り組んでいます。この問題に対する私のコードは次のとおりです。
def getBASIC():
l = []
x = 1
while x == 1:
i = input()
l.append(i)
if len(i.split()) != 3:
x = 0
return l
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
visited = [False] * len(prog)
while True:
T = prog[location].split()[2]
location = findLine(prog, T)
visited[location] = True
if visited[len(visited)-1] == False:
return "infinite loop"
else:
return "success"
最初の関数は、本来の目的、つまり BASIC コードの入力をリストに変換します。2 番目の関数である findLine も、入力と等しい文字列を含むアイテムを検索するという点で、本来の目的を果たします。しかし、最後の機能は、仕事に行くことができません。私は何をしなければならないかを知っています。それは、その一部が 2 回訪問されたかどうかを確認することです。while ループが存在するため、これを行う方法がわかりません。この結果、その関数の後半は単なるプレースホルダーです。これを解決する方法を教えていただければ幸いです。ありがとう。