在编码时,生成“名称未定义”的错误

时间:2017-07-05 14:23:05

标签: python

我正在编写“编写一个带有两个列表的Python函数并且如果它们至少有一个共同成员则返回True”的问题。

代码:

first = [a,b,c,d,e,f]
second = [a,s,d,f,g,h]
for word1 in first:
    for word2 in second:
     if word1==word2:
        print("success")

错误:

first = list[a,b,c,d,e,f]
NameError: name 'a' is not defined

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

我假设你的列表是字符串列表。所以你忘记了引号:

first = ['a','b','c','d','e','f']
second = ['a','s','d','f','g','h']
for word1 in first:
    for word2 in second:
     if word1==word2:
        print("success")

a是变量名,而'a'是字符串。实际上,这里a未定义,因为您从未影响a的任何值。

例如,如果您真的想要从现有的定义值创建列表,那么您可能已经完成了:

a=5
b=10
l=[a,b]

此处,l将为[5,10]

答案 1 :(得分:1)

您需要为字符串使用引号。

first = ['a', 'b', 'c', 'd', 'e', 'f']
second = ['a', 's', 'd', 'f', 'g', 'h']

答案 2 :(得分:0)

未定义名称'a',因为您从未定义Python变量'a'。我认为你的意思是比较字符串数组,如:

first = ["a", "b", "c", "d", "e", "f"]
second = ["a", "s", "d", "f", "g", "h"]
for word1 in first:
    for word2 in second:
     if word1==word2:
        print("success")