Python NameError

时间:2010-01-17 13:56:24

标签: python syntax

list1 = [a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z]

for item in list1:
    print item

不确定为什么上面的代码会抛出此错误:

NameError: "name 'a' is not defined"

7 个答案:

答案 0 :(得分:12)

除了正确使用引号外,请勿重新键入字母。

>>> import string
>>> string.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'
>>> L = list(string.ascii_lowercase)
>>> print L
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', ...
>>> help(string)

答案 1 :(得分:7)

您必须将字符串放入(双)引号

list1 = ["a","b","c",...] 

应该有效

答案 2 :(得分:2)

字符串文字应该用引号括起来:)

list1 = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]

答案 3 :(得分:1)

挑选并选择以前最好的帖子,这就是我要做的事情,因为字符串可以迭代。

>>> import string
>>> for letter in string.ascii_lowercase:
...     print(letter)
... 

答案 4 :(得分:1)

python将列表中的成员解释为变量,您应该将它们包含在

'或“

答案 5 :(得分:1)

每种语言都需要区分常量和名称/变量。最令人困惑的是你必须区分字符串常量和标识符/名称/变量。

shell(sh,bash,ksh,csh,cmd.com等)倾向于使用常量;因此,您只需键入一个常量,并在需要其值时为名称/变量添加特殊字符($表示unix shell,%表示cmd.com等)。

$ echo hello
hello
$ echo $PWD
/home/tzot
$ cd /tmp
$ cd $OLDPWD

大多数其他通用编程语言倾向于使用变量而不是常量,所以它是另一种方式:你只需键入一个变量的名称,你(通常)将字符串常量括在引号中('',“”,[ ]等):

# assumed: a_name= "the object it points to"

>>> print ("a constant")
a constant
>>> print (a_name)
the object it points to

答案 6 :(得分:0)

当我需要创建一个字符列表时,如果它们尚未在std lib中定义的内容中可用,并且如果我真的需要列表而不仅仅是字符串,我使用这个表格:

punc = list(r";:`~!@#$%^&*()_-+=[]{}\|,./<?>")
vowels = list("aeiou")  # or sometimes list("aeiouy")

比所有这些额外的引号和逗号简单得多,并且读者很清楚我真的想要一个列表,而不仅仅是一个字符串。