文本游戏-道德跟踪器/全局变量-Python
我的代码上载到githib的以下位置: 所以,我想做的是使用一个全局变量来跟踪“道德” 现在,这不是真正的道德选择,但我想用它来追踪球员的选择 我基本上有这样的设置:文本游戏-道德跟踪器/全局变量-Python,python,global,Python,Global,我的代码上载到githib的以下位置: 所以,我想做的是使用一个全局变量来跟踪“道德” 现在,这不是真正的道德选择,但我想用它来追踪球员的选择 我基本上有这样的设置: morality = 0 def pick(): while True: choice = input("") if choice == "Hesitate": hesitate() #hesitate() is defined already, i just d
morality = 0
def pick():
while True:
choice = input("")
if choice == "Hesitate":
hesitate() #hesitate() is defined already, i just didn't include it to save space.
morality = 1
break
elif choice == "Walk":
walk() #again, walk() is previously defined.
morality = 2
break
else:
print("Invalid Input")
#+#+#+#+#+#+#+#+#+#+#+#+#+#
#Clean Up
#+#+#+#+#+#+#+#+#+#+#+#+#+#
pick()
print(morality) #This is to see if the morality worked.
遗憾的是,它不起作用。我怎样才能正确地设置它
(我的设置是这样的:第一个选项将设置第一个数字,1或2,然后第二个选项将第一个小数点设置为#.1或#.2,然后第三个选项将设置为#.1或#2等)
我所说的“它不起作用”是指
应该是什么时候
>>>What's your choice?
walk
>>>
>>>You Walk
>>>2
在函数中对变量名执行赋值时,除非使用,否则将创建局部变量。尝试将以下行添加到
pick
函数的顶部:
global morality
或者更好的方法是,让pick
函数返回道德值,然后在调用时使用morality=pick()
有关global
语句的更详细解释,请参阅以下博文:在函数中对变量名执行赋值时,除非使用,否则它将创建一个局部变量。尝试将以下行添加到
pick
函数的顶部:
global morality
或者更好的方法是,让pick
函数返回道德值,然后在调用时使用morality=pick()
有关global
语句的更详细解释,请参阅以下博文:为了简化您的问题,请查看以下代码:
morality = 0
def foo():
morality = 99
print "in foo:", morality
print "morality before foo:", morality
foo()
print "morality after foo:", morality
它产生输出:
morality before foo: 0
in foo: 99
morality after foo: 0
现在,请使用此版本的foo()
:
我认为同样的问题也适用于您的代码。为了简化您的问题,请查看以下代码:
morality = 0
def foo():
morality = 99
print "in foo:", morality
print "morality before foo:", morality
foo()
print "morality after foo:", morality
它产生输出:
morality before foo: 0
in foo: 99
morality after foo: 0
现在,请使用此版本的foo()
:
我认为同样的问题也适用于您的代码。您所说的“不工作”是什么意思?@traceur它不会打印1或2它会打印0。您所说的“不工作”是什么意思?@traceur它不会打印1或2它会打印0。实际上我已经尝试过了。遗憾的是,它只是返回相同的问题。@GameWylder您能用您尝试此操作的代码编辑您的问题吗?也许我能发现一些东西。顶部的链接将您带到github上的我的代码副本。@GameWylder您是否在
addmoral
中有输入错误:您将choicepath
设置为1,而不是choicepath
。我实际上已经尝试过了。遗憾的是,它只是返回相同的问题。@GameWylder您能用您尝试此操作的代码编辑您的问题吗?也许我能发现一些东西。顶部的链接将您带到github上的我的代码副本。@GameWylder您是否在addmoral
中有输入错误:您将choicepath
设置为1,而不是choicepath
。