Python中函数中包含的变量值

时间:2013-08-18 00:12:04

标签: python variables

我正在编写一个程序,其中我的函数guessgetter定义如下:

def guessgetter():
    print("What number do you choose?")
    num = int(input())
    if num > 100 or num < 1:
        print("Please choose a number between 1 and 100")
        guessgetter()

我知道这种语法是有效的。但是,当我稍后在代码中引用(是的,在运行我创建的函数之后)到num时,它表示我没有为它定义一个值。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

问题是虽然num是在函数guessgetter的范围内定义的,但它并没有在代码的其他地方定义。如果要使用函数生成的num值,请尝试添加函数的最后一行

return num

然后按如下方式调用该函数:

x = guessgetter()

将您获得的值存储到可以在函数外部使用的变量x中。

答案 1 :(得分:0)

在函数guessgetter的范围之外,变量num不存在。如果您稍后想知道num的价值是什么,则必须使变量num 全局(即可在任何地方访问)。最简单的方法是添加行

global num
在分配num之前

到你的函数:

def guessgetter():
    print "What number do you choose?"
    global num
    num = int(input())
    if num > 100 or num < 1:
        print("Please choose a number between 1 and 100")
        guessgetter()

答案 2 :(得分:0)

您需要从函数返回值,并在调用函数时捕获返回的值。您还需要处理尾递归。这导致:

def guessgetter():
    print("What number do you choose?")
    num = int(input())
    if num > 100 or num < 1:
        print("Please choose a number between 1 and 100")
        num = guessgetter()
    return num

您可以将其用作:

guess = guessgetter()