本文约1500字,阅读需要4分钟
关键词:Python 零基础 思维方式
本文为Python微专业学员聚聚作品~适合有一定Python基础的朋友交流学习,也适合没有接触过Python的朋友了解思维方式。
p.s.文末有文中软件和示例代码分享~
大家好,我是数据团的一名普通学员,半年前我还是一个对python数据分析负基础的职场打(ban)拼(zhuan)者(gou),在这半年里,我接触、学习、实践python,做了一些有意思的小研究:
总有些好学的小可爱问我,学习Python的过程中,我已经很努力了,但总觉得思维方式还是差着“一口气儿”,总是需要问人,不能自己解决问题,这可急死人了!
想当年,我初学编程那会儿,我给自己买了许多编程的书籍,书单我列在下面,大家可以参考一下,是不是和你书库里的书如出一辙:
但是!通读了那么多本书,我却总结出了一套失败的学习方法:
仿佛已经听到一波又一波的叹气了——别急,今天就是带领大家来避坑的~
我发现我花了大量的时间,却是在不断的重复别人的思考过程,却没有形成一套有效的思维体系。所以,我把学习方法稍作调整,先独立思考问题,再去参考别人的解决方案。最后证明,效果不错~
▼
引入- 案例作品展示
今天,我会通过一个小案例的制作,向大家讲述编程学习的秘籍~先看图——
这是一个查询POI的小软件,只要有百度API的密钥,输入地址和关键词,可以以一定半径获取附近的POI:
POI是“Point of Interest”的缩写,中文可以翻译为“兴趣点”。在地理信息系统中,一个POI可以是一栋房子、一个商铺、一个邮筒、一个公交站等。
不但可以获取到数据,也可以通过地图展示——
好玩么~~稍微拆分一下,小工具的制作过程由这几个部分构成:
用户交互界面的搭建
内部处理逻辑的构建
程序的封装
下面将为大家一一讲解~
▼
用户交互界面的搭建-面向对象的编程思维
面向对象——这是一个耳熟能详,初学者却难以理解的概念。网上的解释洋洋洒洒十几页,不明觉厉。其实,面向对象不仅仅是一种编程方法,还是一种编程的思维过程、甚至是我们认识这个世界的方式。
举个形象点的例子。某天,我去海边看到蓝天白云大海沙滩~
令人心旷神怡对吧!我勾勒了一幅速写:
这个过程的逻辑是这样的,我们把一个具体的事物(眼前的美景),在脑海中抽象化(对象),最后用素描的方式还原在纸上(以绘画的形式具象化)。而编程的过程同样如此。
下图是小工具需要构建的界面样式。
我们把其中的细节先全部去除。只保留框架,如下图:
数一数,一共8个部分,之间关系为:
每个部分,可以看做一个对象,而我们需要通过代码构建这些对象,再给每个对象加上具体的属性(参数),比如长宽,颜色,功能等。过程如下:
虽然代码看上去挺复杂的,然而仔细研究,哪怕零基础,也能看懂个大概:
app.title('POI检索工具') --给小工具起个名字,叫” POI检索工具”。
app.geometry('600x480') --界面的形状,长600,宽300。
……
title, geometry…这些单词总认识吧,不认识查个字典总可以吧~如果认识了,代码自然而然就能读懂了。能读懂,那也一定可以用起来了呀!
▼
内部逻辑的构建-面向过程的方法
我们通过完成界面的制作,给工具搭了一个框架;接下来,我们要编写具体的逻辑。
对于简单的、流程清晰的项目,我们首选面向过程的编程方法,也就是我们常说的函数式编程。你也许还听说过不明觉厉的面向对象的编程方法,也可能有人会对你说起后者的优越性,但如果你是初学者,函数式编程更加通俗、易懂,适合上手。
(关于函数式编程的示例,还可以看这篇:
从零代码爬虫到python函数式编程,不变的竟然是……
)
如图举例,流程中每个功能就是一个函数。
i. 获取输入信息的函数
ii. 转换地址为经纬度的函数
后面还有根据经纬度获取POI的函数、保存数据的函数和地图展示的函数。详细代码篇幅较长,请在文末获取~
Tips:这些功能的实现,主要通过调用百度API,密钥获取和使用方法可以百度一下~如果大家感兴趣,之后可以详细讲一讲~
▼
程序的封装-面向对象的编程思维
脚本构建完毕,不过每次需要打开代码编辑器运行太麻烦,那么是不是可以把程序封装成一个exe呢?这是一个全新的问题,那么我们如何去寻找这个问题的答案呢?科学上网?查官方文档?技术论坛提问?这些都是好方法,但是,并不一定适合零基础初学者:科学上网——不会;查文档——看不懂;论坛提问——没人搭理。
其实,简单的问题百度一下都是有的啦~提问方式也是很重要滴:
下面是一个错误的提问方式,问题大而宽泛,没有针对性。结果也是五花八门:
而正确的提问方法是这样的,言简意赅,重点明确:
看!问题的答案相当统一哈~是不是很棒棒!
熟能生巧的编程技术,还是需要大家自己多思考,多练习,但总结一些可行的方式和套路还是可以的——
好了~今天就说到这里,代码和小工具欢迎大家拿去玩,希望大家能够多多动手实践,总结方法,快乐学习!
关注“数据团学社”
即可免费获取文中逐行注释的示例代码和小工具!
领取专属 10元无门槛券
私享最新 技术干货