Python:定义中的if语句导致名称错误

Python:定义中的if语句导致名称错误,python,if-statement,nameerror,Python,If Statement,Nameerror,我在一个更大的代码中遇到了一个小问题。。。我可以在下面的例子中重现它 def graph(form): if form == single: print 1 if form == multi: print 2 我打字的时候 graph(single) 我明白了 --------------------------------------------------------------------------- NameError

我在一个更大的代码中遇到了一个小问题。。。我可以在下面的例子中重现它

def graph(form): 
    if form == single:
        print 1
    if form == multi:
        print 2
我打字的时候

graph(single)
我明白了

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-146-c730e3c6bbf1> in <module>()
----> 1 graph(single)

<ipython-input-143-cf1ff0a5e57e> in graph(form)
      5     if form == single:
      6         print 1
----> 7     if form == multi:
      8         print 2
      9 

NameError: global name 'multi' is not defined

1
我的错误在哪里?

单一和多重都没有价值。它们没有在函数中的任何位置或全局定义

您需要定义它们的含义,然后您的函数才能工作


如果它们只是单词,您需要将它们用单引号括起来,而不是单引号括起来。

错误告诉您问题所在:

NameError: global name 'multi' is not defined

在上面的某个地方,您要么输入错误,要么忘记定义多变量。如果这些是在方法外部定义的全局变量,则应在方法顶部使用。这里有一个很好的全局使用示例。

单和多到底是什么?这些变量指的是什么?是单变量、多变量还是常量?或者它们应该是文本值,在这种情况下,它们应该只包含在名称中。。。。用我的真实脚本,我只想决定是绘制一个数据集还是一个文件夹中的所有数据集。你所说的名字是什么意思?如果要将它们作为字符串文字引用,则应将它们括在引号中。像格拉辛格。同样,在函数定义中。因此,它们应该是字符串。single显然有一个值,因为调用成功,第一个if语句也是如此。def graphform:if form='single':print 1 if form=='multi':print 2解决了这个问题。现在我可以使用graphmulti或graphsingle访问if语句