在Python中只允许用户做一次函数?

2024-09-27 21:25:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python很陌生。在windows上运行,而我在等待我的Pi的一些东西。 我正在写一个游戏,用户通过文本输入穿过一座塔。你知道吗

用户可以使用“a”“d”“w”环视房间以收集sutff。但是如果用户已经在“a”(也就是“look left”)中查看了,我需要让他们知道他们已经在那里了。 这是我的代码,但它有一个明显的缺陷。你知道吗

#if user hits 'a' they look left
def roomOneLeft():
    print '-- You search some loose rubble and find some cloth'
    return roomOneMoves()

#where the user selects a movement
def roomOneMoves():
    left = 0
    move = raw_input("")
    if left == 1:
        print 'you have already looked here'
        return roomOneMoves()

    if move == "a":
        left = left + 1
        roomOneLeft()

我能把“left”设为static吗?ant解决了如何像java一样将其设置为全局变量。这显然不起作用,因为当它返回时,它会将自身设置回0。任何帮助都将不胜感激!你知道吗


Tags: 用户movereturnifwindowsdefpisome
2条回答

要使变量成为全局变量,请在模块作用域中声明,然后在函数中更改它,请使用global关键字。你知道吗

left = 0
def some_func()
    global left
    left = 1

这将允许您在函数中编辑全局变量。你知道吗

为了解决您的static变量问题,我相信您不能在python中这样做。参见this问题。你知道吗

您可以将“left”定义为全局。像这样:

left = 0

#where the user selects a movement
def roomOneMoves():
    global left

    move = raw_input("")
    if left == 1:
        print 'you have already looked here'
        return roomOneMoves()

    if move == "a":
        left = left + 1
        roomOneLeft()

相关问题 更多 >

    热门问题