クラスで初歩的な 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
入力値を文字列として保持しながら、一度に1行ずつ読み取り、状態をintに変換する、よりpythonicな方法を考え出そうとしています。基本的に、これはアイデアです:
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 な方法でこれを行うことを望んでいました。