我刚用图灵机熟悉自己。我正在制作一个半精确的虚拟图灵机,但我遇到了一个看似简单的问题,我只知道有一个解决方案。我在网上研究但找不到满足我的问题的任何东西。
如何在函数中调用变量'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()
答案 0 :(得分:0)
def function(input):
global globvar
....
必须按功能声明它们。但是,我认为您应该将所有创建包装到turingmachine类中并使用实例变量。
答案 1 :(得分:0)
你需要把:
global l
函数本身(您可能想重新考虑变量命名约定,l
不是一个好名字)。
例如:
xyzzy = 1
def fn():
global xyzzy
xyzzy = xyzzy + 1
答案 2 :(得分:0)
def mconfigb():
global l
其他功能也可以这样做。