如果这个问题之前已经得到解答,那么请提前道歉,但我看起来彻底,似乎找不到任何有用的东西。我做了一个非常简单的游戏,你只需要猜测一个介于1和1000之间的数字,如果它不正确,计算机会猜到一个数字高于或低于你的猜测。这是我用来确定猜测是否太低的函数
def numLow(userInput, low, high):
while userInput < num:
print ("The guess of {0} is low".format(userInput))
compGuess = (userInput + 1)
print ("My guess is {0}".format(compGuess))
low = (userInput + 1)
if compGuess < num:
print("The guess of {0} is low".format(compGuess))
userInput = int(input("Enter a value between {0} and
{1}:".format(low, high)))
else:
print("The guess of {0} is correct!".format(compGuess))
print("I WON!!!")
showTermination()
return (userInput, low)
现在我的问题是我想在函数中更改全局变量userInput,low和high。香港专业教育学院尝试插入
global userInput
global high
global low
在函数之前,但它似乎不起作用,如果我把全局变量放在函数中我得到&#34; name&#39; userInput&#39;是参数和全球&#34;。现在我猜测while循环导致问题,但我似乎无法解决它。我对编码很新,所以如果我违反任何编码规则或任何事情,我道歉。谢谢你的帮助。
答案 0 :(得分:0)
userInput
是函数的输入参数。错误消息确切地说明了问题所在。你想使用一个名为userInput
的全局变量,你有一个名为userInput
的输入参数,它是python的两个不同的东西。如果userInput
应该是全局的,那么只需在全局某处定义userInput = None
,然后将其作为参数传入函数,只需在函数global userInput
中写入,python就会知道你正在引用它全局实例化的变量。两者同时不起作用。
答案 1 :(得分:0)
像这样使用globals()
:
globals()['userInput'] = ...