在python 3中使用def和return

时间:2015-08-15 13:33:36

标签: python python-3.x

我试图在python 3中使用def并返回,这将检查一个数字是否高于另一个,然后返回状态为True或False。但是,我似乎无法做到这一点。当我运行它时,我得到一个nameError。代码是这样的:

on_off_status=600

def Status(data):
    if data <= on_off_status:
        status = True
    elif data > on_off_status:
         status = False
    return (status)


while True:
    data=int(input("what is the status?: "))
    Status(data)

    print (status)

我希望能够在稍后的另一段代码中使用状态为True或False。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

使用

data = int(input("what is the status?: "))

你指定一个表达式(即int()返回的对象) 到名为data的名称,这是从头创建的。

您需要对status执行相同操作并为其分配新创建的对象(由Status函数返回)

status = Status(data)

data一样,上面的行会创建名称status,并使其引用新对象。

在您的代码中

Status(data)

创建一个新对象,但它已经丢失了#34;,因为你没有记下它所在的位置,所以没有人可以通过一个名字来访问它(在其他地方也称为变量) 语言,或多或少)。

然后

print (status)

尝试将名为status的对象传递给print,但此类名称从未被分配(即添加到名称的公共目录,正确称为namespace)。

因此,Python无法找到它并抛出nameError