目录
主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『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(): # 评论数量多的书籍前10
l = sorted(ls, key=lambda x: eval(x[-2][:-3]), reverse=True)
for i in l[:10]:
print(i[1], i[-2])
def mincomment(): # 评论数量少的书籍前10
l = 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)
break
with 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 2022 mzh
Crated:2022-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】