为什么会报错呀?
在网上自学的python,关于学生信息管理系统的
问题点:第121行的 format_data最后面多了一个 '}'。
处理方法: 删除第121行最后面的'}'就行.
format_data 的结尾多了一个后花括号
输入:input("提示消息:")
// 输入
name=input("请输入你的名字:")
输出:print(变量名)
// 输出
print(name)
格式化输出
使用百分号(%)字符串格式化
// 使用百分号字符串格式化
print("你的姓名:%s,你的年龄:%d" %(name,age))
使用format字符串格式化
//位置参数
print("你的姓名:{},你的年龄:{}".format(name,age))
print("你的姓名:{1},你的年龄:{0}".format(name,age))
位置参数
//关键字参数
print("my name is {name}, and my age is {age}".format(age=18,name="jack"))
print("my name is {age}, and my age is {name}".format(age=18,name="jack"))
问题的报错内容如下:
Traceback (most recent call last):
File "<stdin>", line 15, in <module>
KeyError: 'name'
这个报错的原因是在删除学生信息时出现了KeyError,也就是找不到键'name'。 为了解决这个问题,我们可以使用try-except语句来捕获这个错误并给出相应的提示。
以下是修复后的代码:
import pprint
students = [
{'name': '正心', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '张三', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '李四', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
{'name': '王五', 'chinese': 59, 'math': 59, 'english': 59, 'total': 177},
]
# 5. 如果查询到指定的学生信息,用户可以选择 修改 或者 删除 信息 (多分支选择里面的逻辑)
name = input('请输入你要删除学生的姓名:')
# 先遍历所有学生
for stu in students:
try:
# 找到学生
if name == stu['name']:
# 删除学生
students.remove(stu)
break
except KeyError:
# 键不存在
print('学生信息缺少必要的键,请检查学生信息的完整性!')
break
else:
# 没找到
print('该学生不存在, 请检查名字是否输入正确!')
pprint.pprint(students)
这样,当删除学生信息时如果学生信息中的键'name'不存在,就会给出一个错误提示。