目录
题目描述要求: 思路代码实现效果总结主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
题目
描述
读取附件中的图书数据信息,并按照下列要求对数据进行统计分析(文件编码为GBK)
文件包含信息格式:编号,书名,出版社,现价,原价,评论数,推荐指数
其中评论数形式为’1290021条评论’,书名可能包含书的简单描述,形如’雪落香杉树(福克纳奖得主,全球畅销500万册)'。
要求:
输入一个字符串
输入是’record’,统计输出图书数据的总数量,格式见示例
输入是’rank’,需要再输入一个书籍编号,分别输出编号对应的书籍信息(编号,书名,出版社,现价,原价,评论数,推荐指数),格式见示例
输入是’mincomment’,输出评论数最少的10本书的书名和评论数,按评论数量升序输出,格式见示例
输入是’maxname’,需要再输入一个数值n,按书名长度降序输出,输出书名最长的n本书的书名。
输入其他信息时,输出’无数据’
思路
根据输入的关键词分别执行不同的函数:
注意要大小写的问题,建议都转成大写或是小写好判断如果类似maxname
需要二次输入数字,那么在判断if下面新增一个input输入参数
代码
def maxname(n): # 输出名字最长的十本书,长度相同以现价从高到低排序ls.sort(key=lambda x: (len(x[1]), eval(x[3])), reverse=True)for i in ls[:n]:print(i[1])def namesort2(): # 输出名字最短的十本书,长度相同以原价从低到高排序ls.sort(key=lambda x: (len(x[1]), eval(x[4])))for i in ls[:10]:print(i[1], len(i[1]), i[4], sep='\n')def priceNow(): # 现价最高和最低l = sorted(ls, key=lambda x: eval(x[3]), reverse=True)for i in l[0][:-3]:print(i)for i in l[-1][:-3]:print(i)def priceOrgin(): # 原价最高和最低l = sorted(ls, key=lambda x: eval(x[3]), reverse=True)for i in l[0][:-3]:print(i)for i in l[-1][:-3]:print(i)def number():print(len(ls))def maxcomment(): # 评论数量多的书籍前10l = sorted(ls, key=lambda x: eval(x[-2][:-3]), reverse=True)for i in l[:10]:print(i[1], i[-2])def mincomment(): # 评论数量少的书籍前10l = sorted(ls, key=lambda x: eval(x[-2][:-3]))for i in l[:10]:print(i[1], i[-2])def rank():n = input()for i in ls:if n == i[0]:for j in i:print(j)breakwith open('CBOOK.csv', 'r', encoding='GBK') as f:ls = []for i in f.readlines()[1:]:ls.append(i.strip().split(','))c = input().lower()if c == 'record':number()elif c == 'rank':rank()elif c == 'maxname':n=eval(input())maxname(n)elif c == 'sname':namesort2()elif c == 'nprice':priceNow()elif c == 'oprice':priceOrgin()elif c == 'maxcomment':maxcomment()elif c == 'mincomment':mincomment()else:print('无数据')
实现效果
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python习题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright mzh
Crated:-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】
如果觉得《图书数据分析(D)【Python习题】(保姆级图文+实现代码)》对你有帮助,请点赞、收藏,并留下你的观点哦!