【发布时间】:2009-10-20 20:30:26
【问题描述】:
我必须在课堂上制作一个基本的 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 的方式来执行此操作。
【问题讨论】:
-
“Pythonnic 方式”是什么意思?编写大而难以阅读的代码行?