Skip to main content
 首页 » 编程设计

Python之函数将外部变量设置为用户输入作为副作用

2025年05月04日15tuyile006

我是一名休闲游戏玩家和业余程序员,懂一点 Python。我正在尝试制作一个简单的文本冒险游戏引擎,因此我需要从玩家那里获取原始输入。

这是 Python 3.2.2,所以我的行是这样的:

var = input("What do you want to do? ").lower() 

该行有效,但我不想输入整行,而是想将它变成一个函数(类似于“getinput()”)。从我读到的有关 input() 和函数的内容中,我正在寻找一个不返回任何内容,但会更改另一个变量的状态(此处为“var”)作为“副作用”的函数。

我确实有一个不带参数的工作函数“halt()”:

def halt(): 
    input("(Press Enter to continue...) ") 
    print("") 

调用“halt()”给出提示,等待 Enter,然后打印一个空行并继续,这是我想要的。

我试图开始工作的函数如下所示:

def getinput(x): 
    x = input("What do you want to do? ").lower() 
    print("") 

定义getinput(x)后:

var = "" 
getinput(var) 
print(var) 

该片段不打印用户的输入,我很困惑为什么。我需要做什么才能以预期的方式完成这项工作?

我试图用一个函数做的事情是不可能的,还是我对作用域一无所知?我应该在 codereview 吗? ?

请您参考如下方法:

你是对的,这个问题是关于范围的。此行中的 x:

x = input("What do you want to do? ").lower() 

不会更改传递给它的值 - 它会在函数的局部范围内创建一个新变量(也称为 x)。

正确的做法是:

def getinput(): 
    return input("What do you want to do? ").lower() 
 
x = getinput() 
print(x)