为什么觉得Python学习起来容易,但是实际开发应用难以掌握?

每日一发小视频


这个感觉是对的,学起来容易用起来难。



Python作为编程语言里比较容易上手的语言,他的语法就是一种脚本语言的特点,如果你玩过Linux中的shell脚本,敲命令的感觉与Python很相似。



语言只是一种工具,无论是Python还是Java,学只是学语法,实际上运用的话,Python涉猎还是很广泛的。

比如大数据和人工智能两大领域,Python在其中的难点不是怎么用Python去完成这项功能,而是怎么用Python去建模,去实现算法。



归根结底,Python不难,难的根源还是这些数学问题。

用Python的很大一个原因也是因为他的简单语法,使用者不需要过多关注怎么写更好,而可以把重心放在写什么的层面。

我是“极客宇文氏”,对编程感兴趣的朋友可以关注我

极客宇文氏


其实很多人认为Python学起来容易,但是这紧紧限于入门学习,看起来简单,但是学精并不是一件容易的事。

Python的入门的确是很简单,我当初之所以能坚持自学就是被这种简洁惊艳到了,没有繁琐的语法,格式也是优美的缩进方式,真的是可以像散文那样读写。Python其实也可以称之为脚本语言,一个脚本实现一个功能简直不要太方便,还有许多人可能刚开始都会被爬虫脚本着迷,日常一个小脚本实现一个想要的功能美滋滋。但是你觉得学成这样就可以找工作了?图样图森破?这样还是仅仅在入门阶段!

Python的高级语法远比我们想的强大,比如类对象,进程,异步,装饰器等等

日常小脚本根本很少会用到高级的语法,Python真正强大之处在于他是面相对象编程,类对象才是Python的大杀器,尤其是内置的强大的魔法方法,让你眼花缭乱。我们日常使用的模块基本上都是通过类来实现的,通过调用类来调用类方法,我们经常会遇到导入模块的类,但是有的可以直接使用有的需要先实例化,这牵扯到类的三种方法,实例方法,类方法,静态方法等。

比如Python中的线程进程还有异步,其内置了强大的功能模块,虽说Python内置了全局锁(GIL),但是进程和异步都是很有用的。

再比如Python中的骚操作~装饰器,这玩意刚开始学的时候一直搞不懂这玩意在什么地方会有什么用?还有语法糖的写法,就觉得很流弊的样子!

再说说实际开发应用

其实Python还是可以做开发的,比如国内的豆瓣、知乎等都使用了Python开发。尤其是当你实际做开发项目的时候,你可能会有一种错觉,我去,以前学的都是假Python吗?还可以这样写,为毛现在都看不懂。

我现在在用Python做数据挖掘,曾经还专门报个班学Python开发,主要是后端开发,用的都是Python的高级用法。1~主要是通过Python类来实现功能。2~和数据库交互的ORM模式,一个表就是一个类,表中一行数据就是一个类的实例。3~权限限制通过装饰器实现,还有一类特殊的装饰器property,让你把类方法变成属性的方式来调用,用来设置密码,修改密码,加密密码十分的方便。4,通过魔法方法__str__,__repr__进行调试。

总的来说,Python的入门比较简单,但是Python的进阶就难了,掌握Python中精妙的用法才能体会到作者创造这门语言背后的哲学思想。



人生苦短,我用Python


爱数据的小司机


相对于C、C++、Java这些语言来说,python是比较简单的,入门很容易。对有些基础和毅力的同学来说,自学一个月左右就能入门了。

python能做后端开发、网络爬虫、数据分析、人工智能等项目。开发上面随便一个项目,都不是件容易的事。

对于后端开发,你可以使用大包大揽的Django框架,可以使用支持高并发的Tornado框架,还可以使用易于扩展的Flask框架。对于这些框架的选择就不是一件容易的事,刚入门的新手就更不用说。就算选好了框架,开始高兴的撸代码,这样就开始了吗?总得考虑代码的扩展性、可维护性、逻辑是否严密等问题。写代码是件简单的事,但要想把代码写好,却是件非常不简单的事。

对于做网络爬虫,把代码写出来就完了吗?你不得考虑是否并行、防止反爬,你不得掌握浏览器的知识吗?

同样的,对于做数据分析和人工智能相关项目,你要学习概率、傅立叶变换、线性代数等知识;你要熟悉决策树、随机森林、贝叶斯等算法。

看到这里,你是不是感觉开发应用非常复杂?对于刚入门的小伙伴来说,确实有些复杂;但是当你硬着头皮干下去的时候,你就会感觉越来越简单,越来越得心应手。

对于码农来说,还是要有信心的,不能畏手畏脚。不懂就要问,不懂就要查资料,大神就是这样一步步走来的。


赞哥哥


先看下python官网中解释人们偏向用python的原因:

Python is powerful... and fast;
plays well with others;
runs everywhere;
is friendly & easy to learn;
is Open.
These are some of the reasons people who use Python would rather not use anything else.

从某种程度上说, Python的强大(Powerfull), 和容易学习(easy to learn)是有点矛盾的,这么NB的一个玩意儿, 让你几天就全部解锁所有功能,怎么可能?


再说下我这些年来学python的几个阶段性体会:

刚开始花几天时间鼓捣python,就开始用机械键盘码python代码了,和C比起来,感觉飞起来了,感觉自己可以在python的海洋里任意遨游了,总之很膨胀。(python的皮毛学起来很容易,这些皮毛也能解决绝大多数问题)


过了一段时间,发现自己的代码跑得很慢(游得很慢),才发现简单的语句下很多坑:比如python的list的append和extend,内部实现差别很大,一不留心就跑慢了,开始沮丧。这时候开始看python的内部实现,结合数据结构和算法来理解python。(python的内部实现,和数据结构和算法密不可分)


又过了一段时间, 自己的代码总算跑得比较快了,开始学习大牛写的Python代码。发现很多语法没见过,发现代码也可以这样写,再回头看自己的自己的历史代码,自己读起来都觉得很恶心(游得很丑)。(大神写的python很优雅)

Python的大型开发很多都用python, 比如tensorflow, pytorch等等,套路基本都是核心代码用c、c++实现, 非核心代码、API用python包装一下。


总之: python入门容易,准确的说是一些基本语法容易学习,并且用这些基本语法能实现绝大多数功能性需求。而python的难以掌握,是指需要长时间的积累(算法、设计模式等),才能写出高性能、优雅的代码。


PS: 所有的语言语法都是严谨的,建议找个顺手点的编辑器,就能解决很多缩进的问题。


平凡科技


感觉Python很简单,可是实际开发应用的时候觉得都是报错,这种情况我带过的很多学生出现过。因为在这之前没有相关领域的经验,没开发过软件的时候,我们很那理解oop。学习重要的是一个过程,下面一一回答题主的一些问题。

Python学习起来容易,但是实际开发应用难以掌握?

在说这个话题之前,首先我们要知道Python重要优势就在于语法简洁,而简洁是要付出代价的。就是牺牲了一些看起来不是很重要的细节,比如函数的参数类型和返回类型。但是缺少了这些看起来不抬起眼的细节以后,程序员就会容易出现题主所说的很多BUG,而且这些Bug是很难发现的那种。

跟传统的实际开发语言不同,使用python做大型开发很少?

如果我们对Python更容易写出来一些很难发现的BUG没有太多的异议的话,我们可以继续说了。(很多人会在这时候说可以小心就没问题了,都是自己没有注意等等的言论)这边给大家找了PegasusWang的对于在大型项目上,Python是个烂语言的采访中的回答:

我们对编程语言和使用进行了大规模的研究,因为它涉及到软件质量。我们使用的 Github 上的数据,具有很高的复杂性和多个维度上的差异的特性。我们的样本数量允许我们对编程语言效果以及在控制一些混杂因素的情况下,对编程语言、应用领域和缺陷类型之间的相互作用,进行一个混合方法的研究。研究数据显示,函数式语言是好于过程化语言的;不允许隐式类型转换的语言是好于允许隐式类型转换的语言的;静态类型的语言是好于动态类型的语言的;管理内存的语言是好于非管理的语言的。进一步讲,编程语言的缺陷倾向与软件应用领域并没有关联。另外,每个编程语言更多是与特定的 bug 类别有关联,而不是与全部 bug。

动态语言“灵活快速”表达能力强还不用写类型标注自己就可以scale,但是不存在的,scale起来还是得当静态语言写,该加的约束一样不漏的加回来。

使用python需要掌握数理逻辑方面的知识

之前使用Python的话基本上是关于Python网页开发等。但是近几年由于大数据、人工智能比较火,所以使用的侧重点就不一样了。如果你要是单纯的做个web是可以的,但是要深入的话,需要掌握数理逻辑方面的知识。学习步骤如下:

  • 学习Python课程(视频)--->入门书籍---->论坛+技术博客

  • 在社区找到志同道合或者一起学习的小伙伴

  • 项目实践,从小到大的项目用来练手

上述学习路线的配套视频都可以直接找我要,上述有关知识点是很系统全备的。如果要做到数据挖掘方面的工作的话,那么一直到第七个阶段都要全部学习的。如果还想要发展人工智能方面最后一个阶段也要拓展学习。那么深度学习和机器学习相关的内容就要多多看书了。其实有关数据方面的工作,数学基础并不是很难的,相对来说就是高数相关的代数等等会公式推导。


传智播客


路子走错了,Python开发是培训机构用来骗钱才这样说。Python主要功能是用来计算的。

  • 传的最多的是ig用Python开发的,其实,只是一开始,人家早已转其他语言。

  • 真正用来开发的web或者软件的是Java。

  • 学习Python不是要掌握数理逻辑方面的知识,而是把数理模型用python表达出来,或者调用别人的包来表达出来。

  • python做编程效率高是因为有很多的包供可以调用,觉得没有掌握,主要是使用的少,看的资料少,需要的包都不知道叫什么还在埋头造轮子。

  • 多上同性交友网站GitHub。


技术信仰


是不是可以这样理解,就像下棋,玩扑克麻将,炒股,规则很容易懂,但是想赢,想赚钱就没那么容易了


猩猩点不着灯


几乎所有的人都说Python易学,容易理解,可以说是所有的编程语言里面最简单的了。


为什么会有学起来容易,而在实际的项目中用起来难的感觉呢?究其原因:


1、基础掌握的不够牢固,平时练习的少,很多人在学习的编程的时候,看书或者是看视频教程都能够很好的理解,但是真正做练习,做项目的时候就不知道如何下手了,所以说在学习的过程中加强实践。


2、项目经历的较少,对编程不是那么敏感,就需要时间俩弥补了。你要是不经历几个项目,怎么知道Python为什么容易学,怎么知道python好理解,怎么知道python有哪些超级好用的框架,比如django,tonado之类的。可能是做的项目少,做项目是最快的提高方式了,解决任何实际的需求,都是煎熬和提高的过程。


所以说,要想很好的掌握Python,除了日常的学习之外,更多的是需要多操作,多实践,提升自己的实践能力,去检验自己的理论成果,提升自己的项目经验,才能体会作者创造Python这门语言背后的哲学思想。


玩着学编程


刚写完一个应用花了10个小时。其它行业用python做些小应用是完全足够了。专业人士只会python真的不够。各语言要互补。下面这个程序,python在进程调度上怎么做都不完美。调用几行C的代码。轻松搞定。但是C来写整个程序。开发效率完全比不了python。





Jeff大牛


其实,python是一种相当高级的计算机程序设计语言。通俗来讲的话,就是编程语言。而我们需要注意的是,在计算机编程语言中,越低级的语言是越难学的,而越高级的编程语言是越容易学的。这个原因有点复杂,我就不多说了。但是越容易学的就一定能很好掌握吗? 答案当然不是! 就像我们从小学到大的语文这一门科目,你想语文不像英语看不懂,那应该好学吧。但是有多少人败在了语文上。

语文入门很简单,认字就行了,但是认知会读就能学好吗,当然不是啦。 python就像是这样,学起来容易,运用起来很难,实际开发应用需要很好的操作才可以做到,这就像是入浅出深。

总的来说,还是要努力钻研,找到合适的应用方法,学以致用,学和用是两个方面,两个都要做到并不简单,但是只要努力,没有不可能。


分享到:


相關文章: