训练了一会 AI 助手,由结果倒推过程的快乐,我也体验一把【玩转Python】
"卷王"的 Python 学习之路
"卷"个寂寞
作为一个平平无奇的"卷王",我很久之前就去学过 Python。
那时候,我在公司的一个跨国部门里做开发,当时的网站是国外同事开发的,使用的 Django 框架。
得学啊,不学工作都保不住。
于是,我报了个班。

然而(此处应有转折):
学成了,没用上。
用不上,又惦记着。
惦记着,但全忘了。
岁月可回首,Python 得从头。
但是,从头学也要有方法,方能事半功倍,节约学习成本。
"卷"对路子
有时候学东西就像搭积木,先局部实现,最后拼装在一起。
如果一开始就像绘画那样完成一副画作,可能会有些难度。
但是,搭积木,初始状态下,不需要拥有太多的基础能力,能看得懂图纸就行。
因为入门快,所以能很快体会到搭积木的乐趣。
学东西亦是如此,先感兴趣,然后能上手并有所收获,得到持续的满足感,可以帮助保持学习的热情。
我这次选择的方法是:
先实现功能,然后根据实现的结果代码,倒推每一步实现思路。
"卷王"的代码智能生成之路
CodeArts Snap:我的 AI 编程助手
CodeArts Snap 是华为云提供的智能编程助手,支持函数级代码自动生成、代码生成推荐、多个生成结果方案提供等。
还有很重要的一点是,PyCharm 中有现成的插件可用。
小试牛刀:查看表格的统计数据
CodeArts Snap 用起来挺方便的,在 PyCharm 中安装好插件,登录华为云的账户(前提是已经成功申请试用)。
新增 py 文件,在文件中加入功能注释,然后单击"return"键,便可以自动生成代码。
下面,我们来实验一个"查看表格的统计数据"的功能。
数据表格
日期 | 销量 |
---|---|
2023/6/1 | 2742.8 |
2023/6/2 | 3014.3 |
2023/6/3 | 5 |
2023/6/4 | 865 |
2023/6/5 | 3036.8 |
2023/6/6 | 44 |
功能注释
CodeArts Snap 支持中英文双语注释,我一般会采用中文注释:
"""
实现一个函数并打印函数结果:
1、读取Excel表格,指定表格中的"日期"列为索引列;
2、返回描述性统计数据。
:return:
"""
生成代码
在注释下方,单击"return"键,便可以自动生成代码。
import pandas
def read_excel(file_name):
data = pandas.read_excel(file_name)
return data
def describe_data(data):
print(data.describe())
函数调用
上面的代码其实不太完美,没有自动生成函数调用的代码(也许我没有加对正确的注释),于是我自己加了一行:
describe_data(read_excel('abnormal.xlsx'))
运行结果

运行结果中每个值的释义如下:
count:观测的计数
mean:平均值
std:标准差
min:最小值
25%:1/4分位数
50%:1/2分位数
75%:3/4分位数
max:最大值
代码解析
因为我实验的这个功能相对简单,所以代码解析起来也不费劲。
这次代码实现的关键在于 pandas 库,借助它读取Excel文件并打印统计数据信息。
# pandas是一个快速、强大、灵活且易于使用的开源数据分析和操作工具,建立在Python编程语言之上
import pandas
# 文件读取函数
# 根据文件名读取Excel文件,并返回读取到的数据
def read_excel(file_name):
# read_excel:pandas 提供的读取Excel文件的函数
data = pandas.read_excel(file_name)
return data
# 打印统计数据信息函数
# 根据文件数据,打印统计数据信息
def describe_data(data):
# describe 函数:生成描述性统计数据,总结数据集分布的集中趋势,分散和形状。
print(data.describe())
注:想了深入了解 pandas,可以单击pandas 官网查看更多。
升级挑战:获取统计数据中的极差
极差公式
极差 = 最大值 - 最小值
功能注释
"""
实现一个函数:
1、读取Excel表格;
2、获取表格的描述性统计数据ds;
3、获取ds的最大值减去最小值的差值range,打印range。
:return:
"""
生成代码
这个代码里,有两个小瑕疵:
- 把最大值和最小值都打印了,注释中没有写需要打印这两个值,说明对注释解析的还不够透彻;
- 虽然加了注释,但是注释加的不准确。
def get_min_max(file_name):
# 打开文件
data = pandas.read_excel(file_name)
# 获取表格的描述性统计数据
ds = data.describe()
# 获取表格的最大值去最小值的差值range,打印range
print(ds.loc['max'])
print(ds.loc['min'])
# 返回表格的最大值去最小值的差值range,打印range
print(ds.loc['max'] - ds.loc['min'])
函数调用
get_min_max('abnormal.xlsx')
运行结果
这个结果还是相对符合预期的

代码解析
def get_min_max(file_name):
# 打开文件,获取Excel文件的数据,保存到data中
data = pandas.read_excel(file_name)
# 获取表格的描述性统计数据,保存到ds中
ds = data.describe()
# loc:通过标签或布尔数组访问一组行和列。
# 打印描述性统计数据中的最大值
print(ds.loc['max'])
# 打印描述性统计数据中的最小值
print(ds.loc['min'])
# 打印最大值去最小值的差值
print(ds.loc['max'] - ds.loc['min'])
"卷王"的总结发言
总结一下本篇文章的收获和待提升的内容。
本次收获
先来说说收获吧:
1、通过"结果倒推过程"的方式,实验过程充满乐趣,让我对较为陌生的知识的抵触感降低了很多。
2、两个实验结束之后,对于 Python 的语法和写法都有了一定了解。
3、熟悉了一个第三方库——pandas,知晓了它的应用场景,可用于数据分析。
待提升
之后还有些地方需要提升:
1、对 CodeArts Snap 使用的熟练度还有待提升,尤其是功能注释文字的准确度,有时候得到的代码并不是自己想要的。
2、Python 的学习之路还得延续下去。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
转载自:https://juejin.cn/post/7243796937199140901