未定义全局名称列表。只是模块变量

时间:2014-03-07 13:27:39

标签: python variables

好的,所以使用这段代码我运行了一些测试,看看主要问题是什么。我发现电话号码输入验证有问题,所以我对它进行了调整,因此它处于非活动状态。(如果你能够解决这个问题,那么就会给你一个贴纸。 无论如何:

def main():

    name = []
    phone = []
    groupno = []
    score = []
    review = []

    q = input('Do you wish to Continue Y/N')
    while q != "Y":


        def data(name, phone, groupno, score, namelist, groupsizes,phonumber, mealscore):

            name =  input("Please enter the customer's name.")
        namelist.append(name)

        #phone = int(input("Please enter the customer's Phone Number."))
        #if len.str(phone) == 11:
        #    else: phone = int(input("Please enter the customer's Phone Number."))
        #phonumber.append(phone)

        sizeofgroup = int(input('Please enter the size of group: '))
        while sizeofgroup < 1 or sizeofgroup > 20:
            sizeofgroup = int(input('Please enter a valid group size: '))
        groupsizes.append(sizeofgroup)



        score = int(input('Please enter the rating of the meal: '))
        while score <= 1 or score >= 10:
            score = int(input('Please enter the rating of the meal- between 1 and 10: '))
        mealscore.append(score)

main()

我得到了这个错误:

  

你想继续Y / N吗?:y追溯(最近的呼叫最后一次):   文件“\ QRSTORAGE \ SMCPupilData $ \ stirlim \ Work \ S5 \ Computing \ Coursework
  在main()文件中的Task \ Program \ code2.py“,第35行   “\ QRSTORAGE \ SMCPupilData $ \ stirlim \工作\ S5 \计算\习作
  主\ namelist.append(name)中的Task \ Program \ code2.py“,第16行   NameError:未定义全局名称'namelist'

不确定错误意味着什么,但它与变量声明有关

1 个答案:

答案 0 :(得分:2)

由于Python使用缩进进行作用域,因此必须缩进作业namelist以与name的赋值对齐。否则它位于函数外部的范围内,并且没有名为namelist的变量。一个更有用的错误消息是“行需要缩进”,但Python无法猜测。

此外,len.str(phone)失败,因为它试图获取str的{​​{1}}属性,但它没有。{1}}。你的意思是len