从控制台输入Student类的信息,包括学号、姓名、年龄,如输入错误,提示用户重新输入;实现保存对象到文件和从文件读出对象并显示。
时间: 2024-10-29 10:16:17 浏览: 10
学生信息管理系统,实现学生信息包括:学号、姓名、性别、年龄、班级等信息。
5星 · 资源好评率100%
在Python中,你可以使用内置的`input()`函数从控制台获取用户的输入,并结合`try-except`块来处理可能出现的错误。首先,我们需要定义一个`Student`类,包含属性`id`、`name`和`age`。然后实现两个功能:保存对象到文件和从文件读取对象。
这是一个简单的示例:
```python
class Student:
def __init__(self, id, name, age):
self.id = id
self.name = name
self.age = age
def input_student_info():
while True:
try:
id = int(input("请输入学生学号: "))
name = input("请输入学生姓名: ")
age = int(input("请输入学生年龄: "))
return Student(id, name, age)
except ValueError:
print("输入有误,请重新输入数字!")
def save_to_file(student, filename):
with open(filename, 'w') as f:
f.write(f"学号: {student.id}, 姓名: {student.name}, 年龄: {student.age}")
def read_from_file(filename):
try:
with open(filename, 'r') as f:
data = f.read()
student_info = data.split(',')
return Student(int(student_info[0]), student_info[1], int(student_info[2]))
except FileNotFoundError:
print(f"{filename} 文件不存在。")
except Exception as e:
print(f"读取文件时发生错误: {str(e)}")
# 示例操作
student = input_student_info()
save_to_file(student, "students.txt")
loaded_student = read_from_file("students.txt")
if loaded_student:
print(f"已加载的学生信息: 学号: {loaded_student.id}, 姓名: {loaded_student.name}, 年龄: {loaded_student.age}")
```
在这个例子中,如果用户输入了非数字字符,程序会捕获`ValueError`异常并提示重新输入。同样,在读取文件时,如果文件不存在或者解析出现问题,都会捕获相应的异常并给出相应提示。
阅读全文