- 需求
- 方案一
- 方案二
- 方案三
1、写一个程序,任意输入n个学生的信息,形成字典后存于列表中。学生的信息包括:姓名(字符串),年龄(整数),成绩(整数);循环输入学生信息,直到输入学生姓名为空时结束输入,最后形成字典列表:L=[{‘name’:‘xiaozhang’,‘age’:‘20’,‘score’:‘50’},{‘name’:‘xiaoli’,‘age’:‘21’,‘score’:‘18’},{‘name’:‘xiaowang’,‘age’:‘19’,‘score’:‘56’},…]
2、将得到的学生信息格式化输出:
+----------+-----+-------+
| Name | Age | Score |
+----------+-----+-------+
| lisi | 23 | 435 |
| zhangsan | 39 | 54 |
+----------+-----+-------+
3、可以修改和删除学生成绩
4、实现打印菜单,并根据提示选择对应的 *** 作
问题分析
- 循环输入学生信息
- 输入的信息形成字典
- 形成的字典存到列表中
- 字典中需要有姓名、年龄、成绩
- 学生姓名为空时结束输入
#创建数组
student=[]
#定义循环控制值
s=True
while s:
#创建循环清空的字典
dict = {}
a = input("请输入学生姓名:")
#判断名称是否为空,为空则中断循环
if a=='':
break
dict['name']=a
b = input("请输入学生年龄:")
dict['age']=b
c = input('请输入学生成绩:')
dict['score']=c
#将字典添加至列表中
student.append(dict)
print(student)
方案二
问题分析
- 表格输出(使用第三方库prettytable)
- 将方案一的列表中的字典按行添加数据
import prettytable as pt
#定义表
tb = pt.PrettyTable()
#定义表格头
tb.field_names = ['Name', 'Age', 'Score']
#循环将列表中的值分配给循环清空的sum空列表,最后将数据添加到表格中
for i in range(len(student)):
sum=[]
sum.append(student[i]['name'])
sum.append(student[i]['age'])
sum.append(student[i]['score'])
# 按行添加数据
tb.add_row(sum)
print(tb)
第三方库prettytable参考,说是 GitHub有详细示例说明,但我没找到
摸鱼中····
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)