我必须在课堂上制作一个基本的 FSM,并用 Python 编写它。作业要求我们从文本文件中读取机器的转换。例如,一个具有 3 个状态的 FSM,每个状态都有 2 个可能的转换,可能的输入“a”和“b”,会有一个如下所示的文本文件:
2 # first line lists all final states
0 a 1
0 b 2
1 a 0
1 b 2
2 a 0
2 b 1
我试图想出一种更 Pythonic 的方式来一次读取一行并将状态转换为整数,同时将输入 vals 保留为字符串。基本上是这样的想法:
self.finalStates = f.readline().strip("\n").split(" ")
for line in f:
current_state, input_val, next_state = [int(x) for x in line.strip("\n").split(" ")]
当然,当它尝试 int("a") 时,它会抛出一个 ValueError。我知道我可以使用传统的循环并捕获 ValueError 但我希望有一种更 Pythonic 的方式来执行此操作。