添加 修改 删除 显示学生信息
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")
已经废了,求解决
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:
(一)st 是一维列表、还是二维?代码中 if a == st["phone"]: 是什么东西?
(二)if __name__ == ' __main__ ': 你注意看你的 '__main__' 为什么前后空格?
(三)b = input("请输入数字 1.添加学生信息 2.删除学生信息 3.修改学生信息 4.显示学生信息 5.退出 ") 这行代码中 b 明显是字符串,但是你的代码是 if b == 1: 这是整数('1234' 是字符串,1234 是整数,注意引号!!) 傻眼貓咪 发表于 2022-6-20 22:24
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:
(一) ...
还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global 稍微改了一下,你这代码漏洞百出
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") Victor0321 发表于 2022-6-20 23:10
还需要加一句,我记得变量如果是可变类型的 比如说列表,就不需要加global
没错 傻眼貓咪 发表于 2022-6-20 22:24
我大概随便看了一下,你的语法很多错,我只列出三个错,可能还有其它更多问题,自己慢慢检查吧:
(一) ...
是一维列表,然后我想在列表里添加多个学生信息的字典
st是列表序号,我是这样表述的,大概弄错了
页:
[1]