鱼C论坛

 找回密码
 立即注册
查看: 1821|回复: 5

[已解决]添加 修改 删除 显示学生信息

[复制链接]
发表于 2022-6-20 21:58:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

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[len(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[c]
    print("学生信息已经删除")

#修改学生信息
def modify(s):
    global st
    if c == len(st):
        name = input("输入修改后的学生名字")
        s[c]["name"] = name
        gender = input("输入要修改的学生性别")
        s[c]["gender"] = gender
        phone = input("输入要修改的号码")
        s[c]["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[len(st)]["phone"]: 是什么东西?
(二)if __name__ == ' __main__ ': 你注意看你的 '__main__' 为什么前后空格?
(三)b = input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 ") 这行代码中 b 明显是字符串,但是你的代码是 if b == 1: 这是整数('1234' 是字符串,1234 是整数,注意引号!!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-6-20 22:24:23 | 显示全部楼层    本楼为最佳答案   
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:

(一)st 是一维列表、还是二维?代码中 if a == st[len(st)]["phone"]: 是什么东西?
(二)if __name__ == ' __main__ ': 你注意看你的 '__main__' 为什么前后空格?
(三)b = input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 ") 这行代码中 b 明显是字符串,但是你的代码是 if b == 1: 这是整数('1234' 是字符串,1234 是整数,注意引号!!)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

(一) ...

还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-20 23:36:03 | 显示全部楼层
稍微改了一下,你这代码漏洞百出
  1. st = []
  2. #添加学生信息
  3. def addstudent():
  4.     #输入姓名 性别 电话
  5.     name = input("输入学生姓名")
  6.     if name == "":   #判断输入姓名是否正确
  7.         raise Exception("姓名错误")
  8.     gender = input("性别:") #判断输入性别是否正确
  9.     if gender != "女" and gender != "男":
  10.         raise Exception("性别错误")
  11.     phone = input("请输入电话")
  12.     for i in st:
  13.         if phone == i["phone"]:
  14.             raise Exception("号码错误")

  15. #字典s的key
  16.     s = {}
  17.     st.append(s)
  18.     s["name"] = name
  19.     s["gender"] = gender
  20.     s["phone"] = phone
  21.     print(st)

  22. #删除学生信息
  23. def delete(c):
  24.     del st[c]
  25.     print("学生信息已经删除")

  26. #修改学生信息
  27. def modify(c):
  28.     if c < len(st):
  29.         name = input("输入修改后的学生名字")
  30.         st[c]["name"] = name
  31.         gender = input("输入要修改的学生性别")
  32.         st[c]["gender"] = gender
  33.         phone = input("输入要修改的号码")
  34.         st[c]["phone"] = phone
  35.         print(st)


  36. #显示学生信息
  37. def show():
  38.         print(st)

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

  42.         b = int(input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 "))
  43.         if b == 1:
  44.             print(st)
  45.             addstudent()
  46.         elif b == 2:
  47.             c = int(input("输入要删除的学生序号:"))
  48.             print("已经删除学生信息")
  49.             delete(c)
  50.         elif b == 3:
  51.             c = int(input("输入要修改的学生序号:"))
  52.             modify(c)
  53.         elif b == 4:
  54.             show()
  55.         elif b == 5:
  56.             break
  57.         print("finished")
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-21 08:54:59 From FishC Mobile | 显示全部楼层
Victor0321 发表于 2022-6-20 23:10
还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global

没错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

(一) ...

是一维列表,然后我想在列表里添加多个学生信息的字典
st[len(st]是列表序号,我是这样表述的,大概弄错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 19:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表