欢迎光临散文网 会员登陆 & 注册

Python真的简单吗?

2020-11-23 13:14 作者:爱骑车的小胖墩  | 我要投稿

        最开始接触Python是2018年的一个物理实验竞赛,当时选择了Python这门语言,有两个原因:简单和调包。学习Python都会想起一句话“人生苦短,我用Python”,第一次听到这句话还是蛮搞笑的(本科非计院,学习Python之前,有点C和C++的基础)。初学这门语言,看了网上也写程序,发现Python简简单单,就这?但是上手第一天就遇见了难题,初学Python使用的是Python官网的解释器(应该叫这个吧?),安装后发现无法使用,遇见困难就度娘,发现Python安装后还需要配置环境,但是就很懵逼,还有这个?以前使用VS和codeblock都是下载完软件就可以使用的,虽然配置环境不难,百度一下很多结果,跟着教程迷迷糊糊就结束了环境的配置,然后就可以使用Python写代码了,第一个代码肯定是Hello World了,当时看见输出,心里贼开心,马上要开始自己的Python之旅了。

        然后就开始学习Python,当时没学习什么语法,因为我的目的就是解决竞赛的一个问题,实现数据拟合和可视化输出。可视化肯定要设计一个界面,经过多方了解,选择了Tkinter这个库,看了B站的莫烦视频,跟着视频做了例子,对界面编程有了大概的了解,当时我一直吐槽Python,界面设计为什么没有像VS的MFC工程,可以直接拖拽键控来进行界面编程,什么鬼的人生苦短,而且界面出来太丑了。花了两天时间从熟悉Python到编写一个可视化软件,在这个过程另外一个最头疼的问题是调包,当时赶时间没有从基础学习Python,在调包过程中发现各种bug,数据类型不匹配什么的等等,而且还不熟悉个个函数的功能(文档都是英文,看不懂,哈哈哈),虽然最终实现了目的,但是我从来没有去了解Python。结束了项目,我就没有再接触Python,因为我觉得这门语言并没有那么好,不值得我花时间去学习。

        第二次接触Python是2020年的本科毕业设计,当时我的需要对数据进行处理、分析、并通过数据的潜在信息来进行缺陷判断,涉及了机器学习和深度学习领域,但是我对这个领域就是一个小白,但是我知道当时这个领域很热门。后来通过知乎、CSDN等了解了这个领域,因为是毕业设计,人生就一次,我就打算从基础理论走起,找到了周志华的西瓜书和GoodFollow的花书,这两本书是这个领域的代表作,在这个领域使用的最多的语言就是Python。但是Python在我心里就是难用的代表,我就很纳闷,为啥都用这个,困惑促使我去认真了解这门语言,也是这个机会,让我真真邂逅了Python,发现了这个语言的“美”。

        由于是穷苦学生,当时找的是网上的各种资料去学习,发现Python和C++差不多,无非就是数据类型、if判断、循环、函数这些的,然后尝试写了一些代码,很容易上手。当时想这就会了Python?Python就这???然后尝试了一些别的代码,也成功实现了我的目的。此时,我觉得我已经掌握了Python,觉得Python很简单。但是当我看了另外一本书《流畅的Pyhon》时,我发现我错了,Python真的不简单。这本书不是主要讲解Python的语法,而且作者通过自己的亲生经历探讨了Python这门语言,也是这本书改变了我对Python的看法。此时我发现Python没有我想的那么简单。据两个问题:

                1. 函数参数默认为可变时,调用后这个默认参数会发生什么变化?

                2. 闭包时,变量的作用域是什么?

                3. list类型变量在=赋值后id是否一样?

        在学习Python的时候,你考虑过这些问题了吗?肯定很多人都会忽视这些问题,虽然你现在不会发现这些问题,但是随着你的使用,你肯定会接触这些,会造成很多的bug。我觉得我掌握Python,但是实际上我只是会Python,根本谈不上掌握,只是初窥门径。

        最后谈谈我对Python的看法,从容易和调包侠两个角度来谈谈我的看法,不喜勿喷,可以评论区共同探讨。第一点:简单。现在网上都有“小白一周掌握Python”的教程,让很多人都觉得Python简单。是的,Python上手真的很容易,即使小白也可以在几天内入门,但是仅仅是入门罢了,但是你真的掌握了Python吗?可能你一周的学习会发现自己能够实现简单的代码实现了你的目的,但是这并不代表你会了,因为随着你的使用,你会发现你将要遇到很多bug,但是你的代码在你的认知里边并没有问题,所以你会去搜索、学习。这时你会发现你对Python的理解更深,发现自己学习的并不完整,只是学习无法让自己掌握一门语言,而是去使用这门语言,随着你遇到的bug增多,你去解决这个bug,你就会发现自己没有学到的新知识,发现Python没有想的那么简单。如果你遇到bug只是去搜一个解决方案,而没有去想为什么出现这个bug,就当我没说,哈哈哈。第二点:调包。很多人说Python就是调包侠。调包这点我不否认,我就是一个调包侠,因为在写Python的过程中,我大部分都是调用别人写库(pandas、numpy、scipy、sklern等待),但是我觉得调包也没有错,一个人的精力是有限的,不可能什么都做,我可能为实现构造一个数组,就去编写一个数组类,那我一年可能都写不完一个项目,调包就是为了不重复造轮子,将自己的时间用在真正有意义的事情上,例如我实现音频数据分析,我的主要任务是去实现数据分析,而不是去实现怎么去读取音频数据,这样就是浪费时间。关键是如何看待调包这个问题,使用语言的目的是解决一个问题,而不是重复前人做的事情,有前人写好的为什么不可以直接使用那?这样不是可以大大提高效率。而且在实际项目中,你不可能全是调包,肯定有自己的想法,自己的优化算法,通过公式写出自己的代码,对我而言,一个好的程序不是掉不调包,而是如何体现自己的思想,将自己的思想融入到代码中。

        到这里就差不多了,最后给大家分享一些书,帮大家避避坑。

                1. 廖雪峰的Python程序入门,可以快速Python入门。

                2. 《流畅的Python》,这本书不适合一开始就开,这个更倾向于讲解工程师的经验,让你更深入了解Python。

最后希望大家能够点个赞!

微信公众号:DeepThinkerr

CSDN:DeepThinkerr

Python真的简单吗?的评论 (共 条)

分享到微博请遵守国家法律