编写input_stu()和output_stu()函数输入,输出5个学生的数据记录。请改正程序中的错误,使它能得出正确的结果。 N = 5 student = [] for i in range(5): student.append(['','',[]]) def input_stu(stu): for i in range(N): stu[i][0] = input("请输入学生学号: ") stu[i][1] = input("请输入学生姓名: ") for j in range(3): #**********FOUND********** stu[i][2].append(input("请输入第%d个成绩,: " %(j + 1))) def output_stu(stu): #**********FOUND********** for i in range(N+1): print('%-6s%-10s' % ( stu[i][0],stu[i][1] )) for j in range(3): #**********FOUND********** print('%-8d',stu[i][2][j]) def main(): input_stu(student) output_stu(student) if __name__ == '__main__': main()
时间: 2023-06-16 13:07:42 浏览: 272
python 编写input()和output()函数输入,输出5个学生的数据记录(示例)
下面是修改后的程序:
```python
N = 5
student = []
for i in range(5):
student.append(['', '', []])
def input_stu(stu):
for i in range(N):
stu[i][0] = input("请输入学生学号: ")
stu[i][1] = input("请输入学生姓名: ")
for j in range(3):
stu[i][2].append(int(input("请输入第%d个成绩: " % (j + 1))))
def output_stu(stu):
print('%-6s%-10s%-8s%-8s%-8s' % ('学号', '姓名', '成绩1', '成绩2', '成绩3'))
for i in range(N):
print('%-6s%-10s%-8d%-8d%-8d' % (stu[i][0], stu[i][1], stu[i][2][0], stu[i][2][1], stu[i][2][2]))
def main():
input_stu(student)
output_stu(student)
if __name__ == '__main__':
main()
```
修改说明:
1. 在定义 `output_stu()` 函数中,循环变量 `i` 的范围应该是 `range(N)` 而不是 `range(N+1)`,因为 `student` 列表中只有 5 个学生数据记录。
2. 在 `output_stu()` 函数中,`print()` 函数中的格式化字符串应该包含 5 个占位符,分别对应学号、姓名、成绩1、成绩2和成绩3。同时,成绩应该是整型,而不是字符串。
3. 在 `main()` 函数中,应该调用 `input_stu()` 和 `output_stu()` 函数,而不是 `input_stu()` 函数两次。
阅读全文