首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从负基础学编程,这样的思维方式你知道吗?

本文约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呢?这是一个全新的问题,那么我们如何去寻找这个问题的答案呢?科学上网?查官方文档?技术论坛提问?这些都是好方法,但是,并不一定适合零基础初学者:科学上网——不会;查文档——看不懂;论坛提问——没人搭理

其实,简单的问题百度一下都是有的啦~提问方式也是很重要滴:

下面是一个错误的提问方式,问题大而宽泛,没有针对性。结果也是五花八门:

而正确的提问方法是这样的,言简意赅,重点明确:

看!问题的答案相当统一哈~是不是很棒棒!

熟能生巧的编程技术,还是需要大家自己多思考,多练习,但总结一些可行的方式和套路还是可以的——

好了~今天就说到这里,代码和小工具欢迎大家拿去玩,希望大家能够多多动手实践,总结方法,快乐学习!

关注“数据团学社”

即可免费获取文中逐行注释的示例代码和小工具!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180831G085LS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券