这个if嵌套合理不,为什么不能删除列表中的元素,格式不对吗?小白请大神们路过的帮帮忙,谢谢!

#coding=utf-8
card = ['huihui','xiaomei','xiaowei','ashun']

while True:
InPut = raw_input("添加用户(1) 删除用户(2) 更改用户(3) 查找用户(4) 退出请按(5):")

#整形
inPut = int(InPut)

if inPut == 1:
    add = raw_input('请输入要添加的用户名:')

    #添加成功
    card.append(add)
    print('你已添加成功')

    for d in card:
        print(d)
    image()

elif inPut == 2:
    for d in card:
        print(d)
    i =raw_input('请输入要删除用户的序号:')

    nameLen = len(card)

    #没有删除直接跳到下面的 'else'语句中路了
    if i <= nameLen-1:         
        del card[int(i)]
    else:
        print("-"*20) #打印分割线

    #执行完删除后 打印列表
    for d in card:
        print(d)

#一下条件没问题

看上没有问题,尝试在 del card[int(i)] 前后,用print函数 打印 card 列表 和 i 试试,看看可不可以找出 bug

你del card[int(i)]删除元素的时候,都知道要把字符串i转换为整型,为何上一句if条件判断的时候不把i强制转换

if int(i) <= nameLen-1:
    del card[int(i)]