weicheng 发表于 2021-1-27 01:07

这段python代码中添加学员中,当我再次添加学员时,为啥不会再次显示info里的数据

本帖最后由 weicheng 于 2021-1-27 01:19 编辑

# 定义功能界面函数
def info_print():
    print('请选择功能------')
    print('1、添加学员')
    print('2、删除学员')
    print('3、修改学员')
    print('4、查询学员')
    print('5、显示所有学员')
    print('6、退出系统')
    print('-' * 20)


# 等待存储所有的信息
info = []


#
# 一、添加学员信息的函数
def add_info():
    """添加学员函数"""
    # 1、用户输入
    new_id = input('请输入学号:')
    new_name = input('请输入姓名:')
    new_tel = input('请输入手机号:')
    # 声明全局变量
    global info
    # 判断姓名是否重复,提示用户。
    for i in info:
      if new_name == i['name']:
            print('此用户已经存在')
      return

    # 2、判断是否添加这个学员,存在添加,不存在不添加
    info_dict= {}

    # 字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    #print(info_dict)
    # 列表追加字典
    info.append(info_dict)
    print(info)


# 二、删除学员函数
# def del_info():
#   del_name = input('请输入要删除的姓名:')
#   global info
#   for i in info:
#         if del_name == i['name']:
#             info.remove(i)
#             break
#   else:
#         print('用户不存在。')


# 循环执行下面代码,直到输入6
while True:
    # 1、显示主界面
    info_print()
    # 2、用户输入功能序号
    user_num = int(input('请输入功能序号:'))
    # 3按照用户输入的功能序号,执行不同的功能
    if user_num == 1:
      # print('添加')
      add_info()
    elif user_num == 2:
      print('删除')
      #del_info()
    elif user_num == 3:
      print('修改')
    elif user_num == 4:
      print('查询')
    elif user_num == 5:
      print('显示所有学员信息')
    elif user_num == 6:
      print('退出系统')
    else:
      print('输入有误')




第一次添加数据

weicheng 发表于 2021-1-27 01:13

本帖最后由 weicheng 于 2021-1-27 01:20 编辑

下面的第二张图事第二次添加数据,没有显示列表里的数据

lgsp_Jim 发表于 2021-1-27 01:27

本帖最后由 lgsp_Jim 于 2021-1-27 01:29 编辑

因为你return位置没对,31行的return缩进一下
    for i in info:
      if new_name == i['name']:
            print('此用户已经存在')
            return

# 定义功能界面函数
def info_print():
    print('请选择功能------')
    print('1、添加学员')
    print('2、删除学员')
    print('3、修改学员')
    print('4、查询学员')
    print('5、显示所有学员')
    print('6、退出系统')
    print('-' * 20)


# 等待存储所有的信息
info = []


#
# 一、添加学员信息的函数
def add_info():
    """添加学员函数"""
    # 1、用户输入
    new_id = input('请输入学号:')
    new_name = input('请输入姓名:')
    new_tel = input('请输入手机号:')
    # 声明全局变量
    global info
    # 判断姓名是否重复,提示用户。
    for i in info:
      if new_name == i['name']:
            print('此用户已经存在')
            return

    # 2、判断是否添加这个学员,存在添加,不存在不添加
    info_dict= {}

    # 字典新增数据
    info_dict['id'] = new_id
    info_dict['name'] = new_name
    info_dict['tel'] = new_tel
    #print(info_dict)
    # 列表追加字典
    info.append(info_dict)
    print(info)


# 二、删除学员函数
# def del_info():
#   del_name = input('请输入要删除的姓名:')
#   global info
#   for i in info:
#         if del_name == i['name']:
#             info.remove(i)
#             break
#   else:
#         print('用户不存在。')


# 循环执行下面代码,直到输入6
while True:
    # 1、显示主界面
    info_print()
    # 2、用户输入功能序号
    user_num = int(input('请输入功能序号:'))
    # 3按照用户输入的功能序号,执行不同的功能
    if user_num == 1:
      # print('添加')
      add_info()
    elif user_num == 2:
      print('删除')
      #del_info()
    elif user_num == 3:
      print('修改')
    elif user_num == 4:
      print('查询')
    elif user_num == 5:
      print('显示所有学员信息')
    elif user_num == 6:
      print('退出系统')
    else:
      print('输入有误')

fanvalen 发表于 2021-1-27 01:28

本帖最后由 fanvalen 于 2021-1-27 01:32 编辑

我看错了 有个global

weicheng 发表于 2021-1-27 01:31

lgsp_Jim 发表于 2021-1-27 01:27
因为你return位置没对,31行的return缩进一下
    for i in info:
      if...

谢谢。解答

有、 发表于 2021-1-27 08:23

谢谢。解答

ghoob321 发表于 2021-1-27 09:01

global 是全局的吗?
页: [1]
查看完整版本: 这段python代码中添加学员中,当我再次添加学员时,为啥不会再次显示info里的数据