从python列表中添加、访问和删除项目

2024-04-25 09:49:20 发布

您现在位置:Python中文网/ 问答频道 /正文

学习列表和数组,我不知道我在这个程序中哪里出错了。请记住,我对python还是新手。不确定我是否做对了。我读了一些教程,也许我没有掌握列表和数组。我得到了它,你可以键入一个名字,但它不会转移到一个列表,然后我得到列表是空的不断以及其他错误下的代码中的其他函数

 def display_menu():
    print("")
    print("1. Roster ")
    print("2. Add")
    print("3. Remove ")
    print("4. Edit ")
    print("9. Exit ")
    print("")
    return int(input("Selection> "))


def printmembers():
        if namelist > 0:
            print(namelist)
        else:
            print("List is empty")


def append(name):
    pass


def addmember():
    name = input("Type in a name to add: ")
    append(name)

def remove():
    pass

def removemember():
    m = input("Enter Member name to delete:")
    if m in namelist:
        remove(m)
    else:
        print(m, "was not found")

def index():
    pass

def editmember():
    old_name = input("What would you like to change?")
    if old_name in namelist:
        item_number = namelist.index(old_name)
        new_name = input("What is the new name? ")
        namelist[item_number] = new_name
    else:
        print(old_name, 'was not found')


print("Welcome to the Team Manager")

namelist = 0

menu_item = display_menu()

while menu_item != 9:
    if menu_item == 1:
        printmembers()
    elif menu_item == 2:
        addmember()
    elif menu_item == 3:
        removemember()
    elif menu_item == 4:
        editmember()
    menu_item = display_menu()
print("Exiting Program...")

Tags: tonamein列表inputifdefdisplay
3条回答

对于一开始,你有正确的想法,你正在取得良好的进展。主要问题是如何定义namelist = 0,使之成为一个数字。相反,namelist需要是一个实际的list才能添加或附加任何内容。另外,不需要使用append()方法,因为一旦将namelist定义为list,就可以使用内置的list.append()方法,而不必编写自己的方法。 所以这里有一些建议/修正,一旦你有了正确工作的基础,你应该能够解决其余的错误修复和逻辑

  1. 由于没有任何main()方法,因此可以在上定义namelist 在任何其他代码之前的代码的第一行,因此 在每个方法中引用:
    namelist = [] # an empty list

  2. addmember()方法更改为:

    def addmember(): name = raw_input("Type in a name to add: ") namelist.append(name)

  3. 由于namelist是一个列表,我们可以使用built-inlen()上的nameslist方法来检查它在打印内容时是否为空(如果有的话):

    def printmembers(): if len(namelist) > 0: # Get the length of the list print(namelist) else: print("List is empty")

既然Add()菜单选项用于向namelist添加名称,您应该能够使用类似的逻辑实现删除和编辑列表中的名称

您应该考虑将列表初始化为空而不是零(除非您想要该元素)

namelist = list()

另外,append方法不执行任何操作。这也是非常不必要的,因为您可以只使用list的append方法

def addmember():
    name = input("Type in a name to add: ")
    namelist.append(name)

如果您确实想创建自己的append方法,那么应该理解函数定义中的变量是输入,因此只说def append(name)不会执行任何操作。在本例中,name是应用于输入参数的标识符。你可以随便叫它什么。理解这一点的一个好方法是为参数指定一个不同于您传递给它的变量名。像这样:

def append(nameToAppend):
    namelist.append(nameToAppend)

您可以在addmember中调用append方法,如下所示:

def addmember():
    name = input("Type in a name to add: ")
    append(name)

从输入中获取名称后,调用append(name)方法,但是append方法还没有执行任何操作

在append方法中,必须将获得的名称添加到名称列表中,就像在editmember方法中一样

相关问题 更多 >