背景
Python 最大的优势是不需编译,而且代码简洁。我初学 Python 时,被它的简洁震惊到了,尤其是文件操作和数组操作,只需要一行代码搞定文件读入,相同功能, Java 的 IO 操作基本上是十行代码量。所以,偶尔也会用 Python 做一些小事情。
今天来整理一个 Python 的练习题,需求描述如下:
按Q结束输入,并将合法输入的数据写入到一个文件。
实现分析
本例用到的知识点:
成绩信息收集
编写一个 score_writer.py 脚本文件,内容如下:
- import re
- try:
- # define file reader
- f1 = open('E:/score.log','w',encoding='utf-8')
- f1.write('name,score\r\n')
- # a pattern check score input
- pattern = "^[0-9]{1,2}(\.[0-9]{1,2})?$"
- print('请输入姓名和考试成绩,按 Q 结束,成绩范围 [1-100],最多允许两位小数。')
- # receive name
- name = input("姓名:")
- while name != 'Q' and name != 'q' :
- score = input("成绩:").strip()
- while re.match(pattern,score)==None and score != '100':
- score = input("成绩不合法,请重新输入:").strip()
- print(name,':',score)
- f1.write(name+','+score+'\r\n')
- name = input("姓名:")
- print('输入结束,存储数据')
- except IOError:
- print("操作异常")
- finally:
- f1.close()
运行结果:
成绩数据计算
编写一个 score_reader.py 脚本文件,内容如下:
- from pandas import DataFrame
- import pandas as pd
- # array to load score
- try:
- # define file reader
- data = pd.read_csv('E:/score.log')
- print(data)
- print('平均值',data['score'].mean(axis = 0))
- print(data['name'][data['score'].idxmax()],' 分数最高:',data['score'].max(axis = 0))
- print(data['name'][data['score'].idxmin()],' 分数最低:',data['score'].min(axis = 0))
- except IOError:
- print("文件不存在")
由于存储成的是 CVS 文件,标题是 name,scroe ,转换成 DataFrame 后计算最值的索引小标后取名字列对应的元素就能输出最值的姓名了。
换一个不存在的文件路径,程序捕获异常:
编程启示录
Python 读写文件真是简洁呀,两行代码搞定,而 Java 要写几十行,真是两个极端。
想起前两天看到一个语言对比图:
OBS流量产生原则 对OBS发送请求,请求和响应消息中如果带有消息体,则会产生流量...
编者按:本文源自阿里云云效团队出品的《阿里巴巴DevOps实践指南》,扫描上方二...
想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://...
在过去的几年中,Docker和Node.js都变得非常流行。对于开发人员来说利用这些新技...
本文转载自微信公众号「五分钟学大数据」,作者园陌 。转载本文请联系五分钟学大...
ALIYUN::PVTZ::ZoneVpcBinder 用于关联或解关联Zone与VPC列表两者之间的关系。 ...
TOP云 (west.cn)7月6日消息,据外媒domainnamewire报道,日前全球大型跨国连锁...
本文介绍如何通过 API 创建和配置包含定时、动态、自定义、固定模式的整体伸缩方...
金融市场L1/L2的报价和交易数据是量化交易研究非常重要的数据 随着数字业务快速...
数据库安全审计的操作日志会一直保存。 父主题: 日志类...