大银豚 发表于 2022-6-20 21:58:44

添加 修改 删除 显示学生信息


st = []
#添加学生信息
def addstudent():
    global st
    #输入姓名 性别 电话
    name = input("输入学生姓名")
    if name == "":   #判断输入姓名是否正确
      raise Exception("姓名错误")
    gender = input("性别:") #判断输入性别是否正确
    if gender != "女" and gender != "男":
      raise Exception("性别错误")
    phone = input("请输入电话")
    for a in phone(): #判断输入电话正确,是否重复
      if a == st["phone"]:
            raise Exception("号码错误")

#字典s的key
    s = {}
    st.append(s)
    s["name"] = name
    s["gender"] = gender
    s["phone"] = phone
    print(st)
    return s

#删除学生信息
def delete():
    global st
    del st
    print("学生信息已经删除")

#修改学生信息
def modify(s):
    global st
    if c == len(st):
      name = input("输入修改后的学生名字")
      s["name"] = name
      gender = input("输入要修改的学生性别")
      s["gender"] = gender
      phone = input("输入要修改的号码")
      s["phone"] = phone


#显示学生信息
def show(st):
      print(st)


if __name__ == ' __main__ ':
#选择添加 删除 修改 显示学生信息
    while True:

      b = input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 ")
      if b == 1:
            print(st)
            addstudent()
      elif b == 2:
            c = input("输入要删除的学生序号:")
            print("已经删除学生信息")
            addstudent()
            delete()
      elif b == 3:
             c = input("输入要修改的学生序号:")
             print("显示学生信息")
             modify()
      elif b == 4:
            addstudent()
            delete()
            modify()
            show()
      elif b == 5:
            break
      print("finished")


已经废了,求解决

傻眼貓咪 发表于 2022-6-20 22:24:23

我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:

(一)st 是一维列表、还是二维?代码中 if a == st["phone"]: 是什么东西?
(二)if __name__ == ' __main__ ': 你注意看你的 '__main__' 为什么前后空格?
(三)b = input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 ") 这行代码中 b 明显是字符串,但是你的代码是 if b == 1: 这是整数('1234' 是字符串,1234 是整数,注意引号!!)

Victor0321 发表于 2022-6-20 23:10:39

傻眼貓咪 发表于 2022-6-20 22:24
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:

(一) ...

还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global

临时号 发表于 2022-6-20 23:36:03

稍微改了一下,你这代码漏洞百出
st = []
#添加学生信息
def addstudent():
    #输入姓名 性别 电话
    name = input("输入学生姓名")
    if name == "":   #判断输入姓名是否正确
      raise Exception("姓名错误")
    gender = input("性别:") #判断输入性别是否正确
    if gender != "女" and gender != "男":
      raise Exception("性别错误")
    phone = input("请输入电话")
    for i in st:
      if phone == i["phone"]:
            raise Exception("号码错误")

#字典s的key
    s = {}
    st.append(s)
    s["name"] = name
    s["gender"] = gender
    s["phone"] = phone
    print(st)

#删除学生信息
def delete(c):
    del st
    print("学生信息已经删除")

#修改学生信息
def modify(c):
    if c < len(st):
      name = input("输入修改后的学生名字")
      st["name"] = name
      gender = input("输入要修改的学生性别")
      st["gender"] = gender
      phone = input("输入要修改的号码")
      st["phone"] = phone
      print(st)


#显示学生信息
def show():
      print(st)

if __name__ == '__main__':
#选择添加 删除 修改 显示学生信息
    while True:

      b = int(input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 "))
      if b == 1:
            print(st)
            addstudent()
      elif b == 2:
            c = int(input("输入要删除的学生序号:"))
            print("已经删除学生信息")
            delete(c)
      elif b == 3:
            c = int(input("输入要修改的学生序号:"))
            modify(c)
      elif b == 4:
            show()
      elif b == 5:
            break
      print("finished")

傻眼貓咪 发表于 2022-6-21 08:54:59

Victor0321 发表于 2022-6-20 23:10
还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global

没错

大银豚 发表于 2022-6-21 13:42:33

傻眼貓咪 发表于 2022-6-20 22:24
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:

(一) ...

是一维列表,然后我想在列表里添加多个学生信息的字典
st是列表序号,我是这样表述的,大概弄错了
页: [1]
查看完整版本: 添加 修改 删除 显示学生信息