Python编写存储学生信息

Python编写存储学生信息,第1张

  • 需求
    • 方案一
    • 方案二
    • 方案三

需求

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有详细示例说明,但我没找到

方案三

摸鱼中····

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/873351.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存