stu = {} stu['name'] = (input('输入第'+i+'学生的姓名:'))有错吗
时间: 2024-01-26 20:02:05 浏览: 29
是的,代码中的'i'没有被定义。应该将输入语句放在循环中,并使用一个计数器变量来代替'i'。例如:
stu = {}
for i in range(1, 6):
name = input('输入第{}个学生的姓名:'.format(i))
stu['name{}'.format(i)] = name
这将让你输入5个学生的姓名,并将它们存储在字典中。
相关问题
stu_name = input('请输入学生姓名:') 对于 i 在 stu_name: 如果 i=='': 继续打印(i,end = '')如何优化
这段代码有一些问题,应该改为:
```
stu_name = input('请输入学生姓名:')
for i in stu_name:
if i == '':
continue
print(i, end='')
```
如果你想优化这段代码,可以使用字符串的 `replace()` 方法来去除空格,如下所示:
```
stu_name = input('请输入学生姓名:')
name_without_space = stu_name.replace(' ', '')
print(name_without_space)
```
这样可以直接去除所有空格,不需要使用循环和判断语句。
def insert(): # 录入学生信息 student_list = [] while True: id = input('请输入学生学号:') if not id: break name = input('请输入学生姓名:') if not name: break try: english = int(input('请输入学生英语成绩:')) python = int(input('请输入学生python成绩:')) math = int(input('请输入学生数学成绩:')) data = int(input('请输入学生数据结构成绩:')) except: print('成绩录入有错,请检查后重新录入!') continue stu = {'id': id, 'name': name, 'english': english, 'python': python, 'math': math, 'data': data} student_list.append(stu) a = input('\n是否继续录入?y/n:') if a == 'y' or a == 'Y': # 当输入y时,执行下一轮循环,接着录入,否则终止循环 continue else: break save(student_list) # 向文件中写入学生成绩数据 print('\n学生成绩录入成功!') 写出上面这段代码的伪代码
1. 定义函数insert()
2. 初始化空列表student_list
3. 进入循环
4. 输入学生学号id
5. 如果id为空,跳出循环
6. 输入学生姓名name
7. 如果name为空,跳出循环
8. 尝试输入学生英语成绩english、python成绩python、数学成绩math、数据结构成绩data
9. 如果输入有误,输出提示信息,并返回第3步
10. 创建字典stu,包含学生学号、姓名、英语成绩、python成绩、数学成绩、数据结构成绩
11. 将字典stu添加到student_list列表中
12. 询问是否继续录入,如果是,返回第3步,否则跳出循环
13. 调用save()函数,将学生成绩数据写入文件
14. 输出学生成绩录入成功信息