【发布时间】:2021-01-27 22:12:43
【问题描述】:
我正在构建一个程序,该程序最终将能够构建有限自动机,并且处于读取 txt 文件以设置变量(分别为状态、字母、起始位置、最终位置和规则)的早期阶段.这是我到目前为止的代码:
def read_dfa(dfa_filename):
dfa = open(dfa_filename, 'r')
count = 0
for line in dfa:
count += 1
states, alphabet, initial, final, rules = (line.format(count, line.strip()))
我目前面临的问题是第 1:4 行将始终提供我需要的数据,但是,rules 变量可能只是第 5 行,也可能是多行(5: n)。我如何做到这一点,以便我可以成功地将我想要的行存储到每个适当的变量中? 这是我面临的错误:'ValueError: Too many values to unpack (expected 5)' 这是 dfa_filename 的一个示例:
q1,q2 #states
a,b #alphabet
q1 #initial
q2 #final
q1,a,q2 #rules
q1,b,q1 #rules
q2,a,q2 #rules
q2,b,q2 #rules
【问题讨论】:
-
我认为一个简单的解决方案是切断最初的 4 并分别映射/解析它们,然后您可以使用剩下的全部作为“规则”。