小编JCP*_*510的帖子

如何在python中检测无限循环

我正在学习Python 3并且正在进行一项练习,该练习要求编写一个模拟/读取BASIC程序作为输入的Python程序.我坚持编写应该检测无限循环的Python程序部分.这是我到目前为止的代码:

def execute(prog):
   while True:
      location = 0
      if prog[location] == len(prog) - 1:
         break
         return "success"
      getT = prog[location].split()
      T = len(getT) - 1
      location = findLine(prog, T)
   visited = [False] * len(prog)
Run Code Online (Sandbox Code Playgroud)

这里,prog是包含BASIC程序的字符串列表(字符串的格式为5 GOTO 30,10 GOTO 20等).

T是prog [location]中指示的目标字符串.

如果BASIC程序有一个无限循环,那么我的Python程序将有一个无限循环.我知道如果任何一行访问两次,那么它会永远循环,我的程序应该返回"无限循环".

教程助手给出的提示说"初始化一个访问的列表= [False]*len(prog),并在访问prog [i]时将visited [i]更改为True.每次循环时,访问的一个值更新[考虑如何更改列表中的单个值.然后考虑如何识别访问[]中需要更改的值."

所以这是我坚持的部分.如何跟踪prog中访问/循环的字符串?

python infinite-loop python-3.x

3
推荐指数
1
解决办法
7029
查看次数

标签 统计

infinite-loop ×1

python ×1

python-3.x ×1