我有一个点名册包含有姓名学号和序号写出py代码完成:输入学号或者姓名输出学号和姓名学号或者姓名不完整时输出补全的提示输入数字选择之后输入成绩保存为xls文件
以下是一个可以实现你要求的代码:
import xlwt # 用于写入 xls 文件
# 学生名单,包含姓名、学号和序号
students = [
{'name': '张三', 'id': '001', 'number': 1},
{'name': '李四', 'id': '002', 'number': 2},
{'name': '王五', 'id': '003', 'number': 3},
{'name': '赵六', 'id': '004', 'number': 4},
]
# 输入学号或姓名
search_key = input('请输入学号或姓名:')
# 检索学生
result = []
for student in students:
if search_key in student['name'] or search_key == student['id']:
result.append(student)
# 输出查询结果
if len(result) == 0:
print('没有找到对应的学生')
elif len(result) == 1:
student = result[0]
print('姓名:', student['name'])
print('学号:', student['id'])
else:
print('找到多个学生,请选择:')
for i, student in enumerate(result):
print(i+1, ':', student['name'], student['id'])
choice = int(input()) - 1
student = result[choice]
print('姓名:', student['name'])
print('学号:', student['id'])
# 输入成绩
score = input('请输入成绩:')
# 保存为 xls 文件
workbook = xlwt.Workbook()
worksheet = workbook.add_sheet('成绩单')
worksheet.write(0, 0, '姓名')
worksheet.write(0, 1, '学号')
worksheet.write(0, 2, '成绩')
worksheet.write(1, 0, student['name'])
worksheet.write(1, 1, student['id'])
worksheet.write(1, 2, score)
workbook.save('成绩单.xls')
上述代码首先定义了一个学生名单,包含了每个学生的姓名、学号和序号。接着通过 input() 函数获取用户输入的学号或姓名,然后遍历学生名单,找到符合条件的学生,并输出学号和姓名。如果找到多个学生,需要让用户选择一个。之后通过 input() 函数获取用户输入的成绩,并将学生的姓名、学号和成绩保存为 xls 文件。
需要注意的是,上述代码并没有对输入的学号或姓名进行完整性检查。如果需要实现这个功能,可以在遍历学生名单之前先对输入的字符串进行处理,例如将学号转换为固定长度的字符串,然后再进行比较。
原文地址: https://www.cveoy.top/t/topic/bPLU 著作权归作者所有。请勿转载和采集!