在python

时间:2017-11-10 23:02:32

标签: python

如果这个问题之前已经得到解答,那么请提前道歉,但我看起来彻底,似乎找不到任何有用的东西。我做了一个非常简单的游戏,你只需要猜测一个介于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循环导致问题,但我似乎无法解决它。我对编码很新,所以如果我违反任何编码规则或任何事情,我道歉。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

例如,

userInput是函数的输入参数。错误消息确切地说明了问题所在。你想使用一个名为userInput的全局变量,你有一个名为userInput的输入参数,它是python的两个不同的东西。如果userInput应该是全局的,那么只需在全局某处定义userInput = None,然后将其作为参数传入函数,只需在函数global userInput中写入,python就会知道你正在引用它全局实例化的变量。两者同时不起作用。

答案 1 :(得分:0)

像这样使用globals()

globals()['userInput'] = ...