我试图在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。
感谢任何帮助。
答案 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