if t_name == 0:
exit = input('查询错误,请重确认要修改的学生姓名,退回主菜单请按N')
if exit == 'n':
break
continue
else:
exit = input('查询成功,输入名字继续查询,退回主菜单请按N')
if exit == 'n':
break
continue
while int(order) == 4:
name = input("请输入你要删除信息的学生的姓名:")
t_name = 0 # 输入正确标志位
for sname in student:
if name == sname['姓名']:
student.remove(sname)
t_name = 1
break
if t_name == 0:
exit = input('查询错误,请重确认要删除的学生姓名,退回主菜单请按N')
if exit == 'n':
break
continue
else:
exit = input('查询成功,输入名字继续删除,退回主菜单请按N')
if exit == 'n':
break
continue
while int(order) == 5:
if len(student) == 0:
print('系统里面没有数据,请录数据')
break
else:
for s_name in student:
print(s_name)
exit = input('预览成功!按任意键返回主菜单\n')
break
if int(order) == 6:
print('感谢你的使用,再见!\n')
break
else:
print('输入有误,请输入序号1~6')
m += 1
if m > 2:
print('你已经重复输错三次,结束本次操作')
break
continue
解决问题一的方式:(1)加入一个死循环,强制输入整数
while True:
order = input('请输入序号,进行你想要的操作:')
try:
order = int(order)
break
except:
print("pls enter number")
continue上一个
(2)加入一个字符串检测:isdigit()函数检测输入的字符串是不是数字,是的话返回True,否则继续上一个循环
order = input('请输入序号,进行你想要的操作:')
if order.isdigit():
order = int(order)
else:
print('请输入正确的数字')
continue
问题二,跳出for循环,在外面在套一层while循环,加入标志位
while int(order) == 1:
valid = 0
while not valid:
valid = 1
name = input('请输入学生的姓名:')# 数据录入#需要解决重复录入的问题
for stu_name in student:
if name == stu_name['姓名']:
stu_id = input('该学生已经录入信息,请确认是否重复录入,并比较学号')
if stu_id == stu_name['学号']:
print('重复录入!请录入下一个')
valid = 0
break
print('请继续接下来的信息录入!')