目录
主要内容是校设课程的习题和课外学习的一些习题。
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
题目
描述
数据来源:武汉市住房和保障房屋管理局
附件中为‘2021年第一季度全市预计达到销售条件的商品房项目清单’,文件名为‘wuhan2021s1.csv’,文件编码格式为’GBK’。
数据表格部分内容如下所示:
数据格式如下所示:
请分析数据格式及内容,完成以下功能:
输入选项n
1 如果n为’规模升序’,输出按照’可售住宅总规模’的数据从小到大排序,并依次输出数据,每行内的数据间以空格间隔,输出格式见示例
2 如果n为’规模降序’,输出按照’可售住宅总规模’的数据从大到小排序,并依次输出数据,每行内的数据间以空格间隔,输出格式见示例
3 如果n为’区属’中的某个区,如’洪山区’,
首先按照文件数据顺序依次每行输出该区属的项目信息,每行内的数据间以空格间隔,输出格式见示例
然后输出该区属内的可售住宅总规模之和,单位为平方米,保留两位小数,输出格式见示例
4 如果n为’总规模’,则输出该文件中所有项目的可售住宅总规模之和,单位为平方米,保留两位小数,输出格式见示例
5 如果n不是以上输入,则输出’错误输入’
思路
-
参考答案没有在输入区名时输出区域规模大小
-
参考答案中没有加入错误输入的判定
else:
print("错误输入")
- 第四个测试点是保留2位小数(所以我们要认真审题呀)
print("{:.2f}平方米".format(sum([eval(i[-1]) for i in ls])))
代码
with open("wuhan2021s1.csv", "r", encoding='GBK') as f:
ls = []
for i in f.readlines()[1:]:
ls.append(i.strip().split(','))
n = input()
if n == '规模降序':
for i in sorted(ls, key=lambda x: eval(x[-1]), reverse=True):
print(' '.join(i))
elif n == '规模升序':
for i in sorted(ls, key=lambda x: eval(x[-1])):
print(' '.join(i))
elif n in set([i[1] for i in ls]):
result=0
for i in ls:
if i[1] == n:
print(' '.join(i))
result=result+eval(i[-1])
print("{:.2f}平方米".format(result))
elif n == '总规模':
print("{:.2f}平方米".format(sum([eval(i[-1]) for i in ls])))
else:
print("错误输入")
实现效果
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多有趣好玩的Python习题!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2022 mzh
Crated:2022-3-1
欢迎关注 『Python习题』 系列,持续更新中
欢迎关注 『Python习题』 系列,持续更新中
【更多内容敬请期待】