有限状态机的元算法。如何修复错误"无法连接' str'和' int'对象?

时间:2016-09-29 16:11:16

标签: python

alphabet = open('alphabet.txt', 'r')
finalStates = open('finalStates.txt', 'r')
startState = open('startState.txt', 'r')
states = open('states.txt', 'r')
transitionTable = open('transitionTable.txt', 'r')

start = startState.readline()
curState = start[1]
final = finalStates.readline()
finalState = final[1]

import sys
input = sys.argv[1]
i = 0    

for c in input:
    while True:
        pirate = transitionTable.readline()
        if not pirate: break
        value = 2
        index = pirate[value]
        if (curState == index and input[i] == (index + 4)):
            curState = pirate[index + 9]
            if(curState == finalState):
                print ('accept')
        value = value + 13
        i = i + 1

这是我的代码,它使用5个文件和命令行中的字符串,并通过有限状态机运行它们并返回接受或拒绝。在if(curState == index and input[0] == (index + 4)):出现我的错误,因为我假设命令行中的input是一个字符串,并且无法与transitiontable.txt文件中的(index + 4)的int类型进行比较。然而,我尝试将它们转换为相同的类型,它没有用,也不知道如何前进。

可转换文件采用以下格式: " Q0"" B"" Q1" " Q0"""" NULL" 等等,然后是第一个状态,然后是被测试的字符,然后是它将移动到的状态。

0 个答案:

没有答案