gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:52 28 4
gpt4 key购买 nike

我是一名休闲游戏玩家和业余程序员,懂一点 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)

关于Python - 函数将外部变量设置为用户输入作为副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10134385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com