0

我刚刚熟悉了图灵机。我正在制作一个半精确的虚拟图灵机,但我遇到了一个看似简单的问题,我只知道有一个解决方案。我在网上进行了研究,但找不到任何能满足我的问题的东西。

如何使变量 'l' 在函数中可调用。它必须是可调用的,因为如果我在函数中定义变量的初始值,当函数循环时,它会将值重置为 0。

这是我的代码:

blanktape = []
for x in range(1,251):
    x = ' '
    blanktape.append(x)

global l
l = 1
non = ' '
head = blanktape[l]
symbols = [3, 'ee', 'x']

def mconfigb():
    if head == non:
        blanktape[blanktape.index(head)] = 0
        l = l + 2

def mconfigc():
    if head == non:
        blanktape[blanktape.index(head)] = 1
        l = l + 2

def turingmachine():
        while l < len(blanktape) + 1:
            mconfigb()
            mconfigc()
        return blanktape

print turingmachine()
4

3 回答 3

0
def mconfigb():
     global l

其他功能也这样做。

于 2013-03-20T05:09:15.863 回答
0
def function(input):
    global globvar
    ....

它们必须按功能声明。但是,我认为您应该将所有创建包装到图灵机类中并使用实例变量。

于 2013-03-20T00:02:52.677 回答
0

你需要把:

global l

函数本身内(你可能想重新考虑你的变量命名约定,l这不是一个好名字)。

例如:

xyzzy = 1

def fn():
    global xyzzy
    xyzzy = xyzzy + 1
于 2013-03-20T00:03:37.413 回答