精华内容
下载资源
问答
  • Python是如此活跃的一种语言,几乎伴随互联网的发生而创立,又伴随互联网的极速发展而繁荣。使用Python会遇到这样的问题:什么时候该用多进程?怎样提高代码执行效率?Flask为什么流行?学习Python要不要直接学...

    Python是如此活跃的一种语言,几乎伴随互联网的发生而创立,又伴随互联网的极速发展而繁荣。使用Python会遇到这样的问题:什么时候该用多进程?怎样提高代码执行效率?Flask为什么流行?学习Python要不要直接学Python 3? Python 3有哪些优点,迁移成本如何?豆瓣这种大厂对Python有何看法?

    开源中国OSC高手问答请来了《Python Web开发实战》一书作者,豆瓣高级产品开发工程师董伟明,展开答疑活动,为大家解答关于Python的相关问题。本文挑选了部分精彩的问答内容,分享给各位交流、学习。
    图片描述
    《Python Web开发实战》 ,来自豆瓣一线开发者的工程实践,按照一个Web 产品从无到有、从简单变复杂、从基础到进阶的过程,多角度、全方位讲述了Python Web 开发

    『版本选择』
    Python 3 发布也有很长的时间了,但现在业界的主流好像还是使用Python 2。因此有不少程序员在纠结是选用Python 2还是Python 3,董伟明老师给出了自己的看法。

    = 问 =
    Python确实越来越火了,知乎就是Python做的,偶尔搞了一点,发现确实很高级,至少比Java语言高级一些,某些功能Java需要写100行,而Python可能只要20行。做一些外维系统还是挺方便的,比如日志的提取等,之前学的是2.7版本,现在Python3比之前的版本有哪些新特性呢?
    = 答 =
    Python 3是相当于站在Python2的肩膀上,摒弃了早年设计Python 2的错误思想(所以有的地方向前不兼容),加了一些新的语法,比如asyncio,甚至type hint(我不喜欢)。 具体的内容可以看https://docs.python.org/3/whatsnew/index.html。 总体上和Python 2区别不大。不用纠结Python 2/3。

    = 问 =
    我唯一关心的是Python现在进入Python3时代了吗?我现在的Macbook上默认装的仍然是Python 2.7。作为新手,这种时候来学Python总觉得很尴尬。难以抉择从哪个版本开始。
    = 答 =
    编程重在编程思想的理解和经验积累,语法其实只是表达方式而已,Python 2/3思想是相通的,只有少量语法差别和不兼容。对Python熟悉到一定程度可以在很短时间写Python 3。书中还说了更细的选择建议。Python 3是未来,但是现在潮流还没有来,所以不用有太大的担心。我个人觉得Python 2会在相当长时间内存在,维护老的项目还需要写Python2/3兼容的代码。

    = 问 =
    作为一个打算学习Python的新手,首先想知道目前或者说最近两年Python2.7更为主流,更适合新手学习,还是Python3.0?其实我们都知道Python语言极其简洁优美,实现相同功能代码要比C++少太多,那为什么C++的普及程度要比Python高这么多?
    = 答 =
    有非常多的人建议直接学Python3,我并不认同。因为并不是2020年到了Python 2就会死掉。新手学习选2还是3我倒是觉得无所谓,关键是真的去学,而不是纠结。其实你现在无论先学那个,到Python 3的潮流到来的时候,去兼容2还是迈入3都很容易。 比如我,并没看过Py 3的书或者文档,但是靠着对Python的理解,现场翻文档查Google就可以写Python 3的效果,并不花费更多精力。
    C++有很深的历史原因,尤其是在中国。Python其实也就是最近3-5年的事, 而且一个语言的使用广度和使用它的公司和人有关,一个厂使用XXX,他们离职出来创业或者去其他公司还是用XXX,这种毒药一样的方式蔓延开来,势不可挡啊。反观Python,更像是一些人中意的小玩具,就是那么一拨人喜欢。就算Python做的再好,BAT也不会替换成Python,因为老的东西已经做得不错了,为啥要换呢?

    = 问 =
    Python3在很久以前就出来了。到现在还没成为主要版本。
    = 答 =
    是的。这其实是有历史遗留问题的。目前看来Python 3并没有什么足够的优势和吸引力让大家迫不及待的升级。大家也都采取观望的态度。而且目前在国内甚至国外都没有看到2to3的一些真的好的经验。但是继续关注吧,这个潮流预计1-2年就会出现了。

    = 问 =
    我记得2009年就存在这个问题,现在都过去7年多了,还是这个状况,不免让人等得有些郁闷。
    = 答 =
    现在已经改善了很多。刚出3的时候,别说我们开发者,就是Python社区,包含一些核心开发者也是有意见的。现在大家已经有个共识,就是Python3是未来。

    = 问 =
    Python 3 和 2 到底哪一个在互联网行业产品中用的多,初学者怎么选择?
    = 答 =
    目前还没听过那个相对有点名气的产品宣称用Python3。 预计在明后年会有少许。 一般的企业也不会就为了用Python 3,而让那些跑了可能10多年,几十万行代码的项目必须迁移(这不符合KPI啊,boss那里说不过去),其实最多就是在新的项目上用Python 3,老的项目还是维持现状。 如果现在是2018年,我建议直接学Python3,如果是现在,哪个都可以。

    = 问 =
    学Python2 好还是Python3好呢,哪个更好向后面的python版本过渡?
    = 答 =
    Python 3是未来,这个是毋庸置疑。 只是目前看潮流还没有到。而且各大公司对Python 3兴趣也不大,包括我。前面的答案说过一些,总结下就是如果现在到了2018,首选Python3,否则选哪个都无所谓。关键是要去练,而不是在纠结。

    没错,编程重在编程思想的理解和经验积累,语法其实只是表达方式而已,Python 2/3思想是相通的,关键是要去练,去使用,不用纠结Python 2/3。

    『入门相关』

    初识Python,总有些迷茫,该选择如何选择方向、制定学习路线,这里有一些经验分享给新手。

    = 问 =
    Python的Web开发方向,需要学习哪些重要技术?
    = 答 =
    Web开发有很多方便,比如Web框架,Python语言,系统架构等等。你从零开始做一个大型的网站应用就知道了。我的书算是给你划了一个比较完成的图。

    = 问 =
    Python Web 开发一个比较好的学习路线是怎样的?
    = 答 =
    我在知乎回答过一个Flask学习的路线,供你参考:https://www.zhihu.com/question/20135205/answer/123224570?group_id=764428290671783936 其实万变不离其宗。

    = 问 =
    初入门Python,有C、Java基础。再看《Python基础教程(第二版)》。请问您有推荐的书籍吗?
    = 答 =
    我个人在知乎专栏写过一篇推荐书的文章 https://zhuanlan.zhihu.com/p/22198827。我建议有一些其他语言基础的同学好好地看看《Python学习手册》,如果你英语比较好,建议直接看原著。《Python基础教程》虽然是一个经典的入门教程,写作风格也相对轻松幽默,但是由于本书写作于2010年,书中有大量内容已经过时,所以不推荐!

    = 问 =
    请问你目前最好的入门书是那本?有没有和PHP或者其他语言对比讲Python的呢?
    = 答 =
    我认为最好的入门书是《Python 学习手册》和 《”笨办法”学Python》。 不懂「这个世界上最好的语言」,所以不知道,而且一个新的语言有自己的理解,为啥要对照其他语言看呢,你在学习过程中不断的思考和领悟,偶尔发出:额 原来这个就是XX语言的YY啊。 这样不好么?

    = 问 =
    作为10多年IT从业人士,已经不想也用不到学具体的开发了,但是想通过Python这几类Web框架了解下Python Web开发的精华,在这种目的下,哪种框架更适合呢,或者说大体都一致?
    = 答 =
    Flask,一天可上手。代码质量也很高。

    = 问 =
    最近自学Python,想做Python Web开发,感觉遇到瓶颈了。网上的教程不是太详细,只能自己一点点照着框架的文档去尝试,一个简单的问题可能要很长时间才能解决,好崩溃。感觉好难啊。谁有这方面的经验,希望多分享下,交流下。
    = 答 =
    这是一个新手到高手的过程。这个世界没有那么多不付出努力就能收获颇丰的机会。在我工作不久,参与多次公司季度、年度会议无一中奖的时候我就意识到了。 所以,你想成为什么人,你就要付出相匹配的努力和代价。 我是非计算机专业专科毕业,专业叫做《烹饪工艺与营养》。我英语水平也没过四级(专科不考),而且我自认为是一个资质平平的人。和别人不一样的就是舍得花时间,愿意坚持有兴趣,和大家共勉吧。

    『Web开发』

    使用Python进行开发的程序员也会遇到一些困惑,这里整理有关使用Python 进行Web开发的一些问题,包含了性能、适用范围、开发效率、框架选择和使用、运维相关等内容。

    = 问 =
    不知作者有没有涉及过大数据方向的?我看部分大数据相关的都要用到Python这是为什么?Hadoop整个生态圈都是Java的,Python的定位是什么?
    = 答 =
    在NLP,算法,推荐,数据挖掘,神经网络,机器学习,深度学习等领域都有非常好的现成的Python的库, 如NTLK,Theano,Tensorflow,scikit-learn,以及做数据分析的NumPy和Pandas。 学术界和科学家们还特别偏好Juypter/iPython。对一些常用的统计和算法使用Python显然很方便,验证起来也很方便。 Python的优势不在于运行效率,而在于开发效率和可维护性。
    Python一直被称为胶水语言,基本各个领域都有所涉猎。学习一下没有坏处。

    = 问 =
    其实我是一个狂热的Python爱好者,但是还是想问:
    用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢?
    = 答 =
    ROR我倒没有实际的用过,不敢妄言。Python最大的优势是他是一个「胶水」语言,在工作中的各个方向都能看到Python对应的库的身影,学会Python会让你的路比较宽,但是用ruby,可能在我印象里面就是Web开发比较有名。我现在还没有发现做Web开发有比Python效率高的方式。
    其实很多人都担心Python的执行效率,然而其实绝大多数情况Python足够快,不快的话要先看看自己是不是用得不对或者不好。现在硬件资源很廉价,除非上升到BAT那种规模,否则基本还没有到达讨论语言瓶颈的问题。现在豆瓣绝大多数基础设施都是使用Python开发的。在Web开发中,我们很少通过写扩展的方式提高性能,其实编程语言一般都不是网站性能的瓶颈,还可以通过其他方式解决。

    = 问 =
    之前学ROR是因为老师要求用这个,我没有用Python进行Web开发的经验,稍微有一点了解的也只是Flask或者Falcon这种轻量级的,感觉能够快速开发小巧的应用,但是不知道有哪个特别出名的应用或者网站系统是由Python开发的(比如WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python确实是一种比较万能的语言,但有点万金油却不够专精的感觉。比如在科学计算方面很流行,但是论效率不如Julia,论支持库的丰富和使用广泛度不如Matlab(特别是学校里面,教授做研究或者教学一般都会用Matlab);在系统管理方面看,能用Python干的脚本化工作,用shell或者perl基本上都能干,而且需要写的代码行数说不定更少。如果说用Python进行Web开发效率高,是有特指某一个框架吗,还是泛指?
    我在写程序时首先会想到用Python,是因为喜欢tial-and-error这种方式,能够在正式写代码前确认想法能不能实现,能够让我有兴趣和信心继续下去。但真要说起来,能够提供REPL特性的语言也不少。
    Python的执行效率貌似永远是Python热门的讨论话题,比如GIL的存在必须要用特殊的方式来优化。像gevent和Tornado之类的存在也适用于高并发的网络连接(不过Python在这方面的性能不一定是最高的,没有看过相关的测试)。再说Python的实现,除了最出名的CPython和PyPy之外,甚至还有为嵌入式设备开发的MicroPython(这也在另一方面说明了Python的万能性)。Dropbox的技术栈中也使用了Python,并且有开发面向性能的Python实现pyston,此外还有Stackless Python(听名字感觉很厉害,虽然其实我并没有去了解这到底是什么),但它家也在用Golang和Rust开发高性能的东西。那么,豆瓣的基础设施实现中,用Python开发的应用效率如何?也有使用除了CPython之外的实现来进行优化吗?(我是不是扯得有点偏题了?)
    = 答 =
    嚯,你的问题好长。 进行Web开发效率高算是泛指,包含Django和Flask。效率高也体现在它们的第三方扩展和支持比较完善,基本能想到的都有对应的项目支持,这样少造了很多轮子。 豆瓣每天服务着千万级别的用户(抱歉不能说具体数字)的请求,绝大多数应用和基础设施都是Python实现的。所以应用效率不用担心。虽然可以使用C/C++的扩展提高运行效率,但是我接触的场景里面很少。相当于写扩展的维护性和成本,大家更愿意从架构,算法等方面来解决。

    = 问 =
    按照“没有银弹”一说,Python应该也有自己的适用范围吧,是不是比较适用于机器学习,不适合于Web开发呢?
    = 答 =
    Python被称为「胶水语言」,虽然没有「统治」哪个领域,但是基本上个个领域都把手伸了进去。机器学习我不熟不敢妄谈是不是更合适。我只能说,Python很适合Web开发。

    = 问 =
    Python Web相对Java Web有什么特别明显的优势吗,在运行机理上,应该还是Java的性能又好一些?
    = 答 =
    选择Python是因为他的开发效率和高可维护性。而且Python绝大多数情况足够快,足够快。就算不够快,现在互联网公司也有很多解决方案。其实一个网站基本不受限于编程语言的限制,往往是数据库,存储等等方便会遇到瓶颈。大部分是网站设计的架构有问题,或者写Web用的不对或者不好。Python表示很无辜。

    = 问 =
    大神您当初建站的时候为啥要选择Python这门语言,开发Web Python与Java、PHP之间有什么异同?
    = 答 =
    其实我也使用Node.js/Golang写过Web,但是个人都觉得没有Python喜欢和熟悉。 我觉得当初选择他并且坚持下来,第一是开发效率和上手速度,基本熟手花一周一个功能齐备的网站就做好了,Java我比较担心。其实是语言的使用范围,PHP好像就是做Web开发,太窄,我还是喜欢用一个语言掌控这个产品流程。

    = 问 =
    能分享下你们那是怎么完成网页组件化的吗?组件化需要考虑CSS,JS的引入问题。现在ng,React之类的Web框架能很好的解决这个问题。你们都是怎么来管理?
    = 答 =
    我们的React组件化大部分是使用inline-styles(https://facebook.github.io/react/tips/inline-styles.html)。但是有一些通用的样式使用css-loader。豆瓣的基础设施可以帮助项目自动「翻译」ES6的JS代码。同时也会使用webpack打包和压缩成完整的JS文件

    = 问 =
    我现在在用Python写爬虫,有什么好的建议?数据量大了有什么好的处理方式?
    = 答 =
    爬虫是Python领域中一个很简单的活儿,其实主要是防爬和提高爬取速度,这个爬取速度不在你使用多线程还是多进程还是asyncio,而是待爬的网站对你的容忍度和你具备的对应策略。 数据量大的建议这个话题很大,主要是要设计好数据库和存储的方式。

    = 问 =
    你好, 用Python最大的好处是实用库多,不管是写服务器还是写爬虫都有库,不过就Web开发来说感觉最麻烦的就是想找到一个方法快速入门一个框架,毕竟现在各种框架变化太快,一会Django一会Flask,在这些框架的选择上应该如何权衡呢?是只掌握一个就够了还是应该多看几个呢?还有就是在Python Web 开发过程中 是否适合使用多线程的框架来响应请求呢?因为感觉Java Web开发很看重多线程的使用,不过Java Web感觉棘手的一个原因是重,然后是需要编译,最后是垃圾回收一搞不好就容易大量吃内存CPU,在使用Python Web开发的时候如何避免出现类似Java Web开发的那种情况,谢谢。
    = 答 =
    我建议一个领域学好一个就可以了。比如学Web框架,其实如果工作中没有使用,学习Flask就够了,等你学好了,再看Django其实也很容易,因为精髓就那些,只是不同框架的实现的方式和解决方案不同罢了。当然 先学Django也是可以的,只是学习曲线高了一些。
    响应请求有业界的标准解决方案,比如 nginx+ gunicorn, 具体到是否使用多线程,或者使用多少还是和你的业务有关,你基本不用操心。 Python非常稳定,而且帮你完成回收,如果你发现很吃内存或者CPU,一般都是写的逻辑有漏洞。

    = 问 =
    为什么您当初选择了呆板的Python而不是活力的Ruby?Python比起Ruby的优势是什么?
    = 答 =
    没看出来Ruby多有活力,而Python呆板。我看到的只是Python开发者在给各个领域贡献优秀的库,只是不出来宣传。就像我在之前的公司。11个产品线,8个ruby的,1个node的和2个python。Ruby的成天在公司邮件组抄,Node的偶尔去混战,只有我们Python的啥也不说,做好自己。当然 在国内,开发者也是Ruby的更活跃。我所知的那些厉害的Python领域的老师和专家从来不出来。比如Python,只有洪教授一人会出去,大家都不参与而已。我也喜欢这种低调的生活。

    = 问 =
    这本书不是入门书籍吧?我看定位是进阶读者,从目录上看是介绍了Python Web的生态,还有各种包及编程技巧,这本书有没有围绕着一个项目构建组织全书呢?有点期待想看。
    = 答 =
    书中是有一个完整的例子的 是一个文件托管服务, 效果类似这样 https://vast-brushlands-4477.herokuapp.com/(在国外,所以慢)。有人把我这本书当成百科全书或者讲生态的我都不反对,我个人的理解像是大学老师在给划重点,讲其中的原由,但是具体的还得去用,去看官方文档。这本书其实不算进阶吧,属于有一定Python使用经验的人就可以看,书的内容也是我故意不喜欢关系太紧密。比如你可以直接看第十章,前9章基本不用看也是可以的。

    = 问 =
    已经买了作者的书,感觉比较有深度,就是有些代码用的Python2,现在迁移到Python3有时候就迷乱了。还有就是作者可以简单介绍下Python如何连接其他语言的C++和Node以及其他的Go还有C#之类的。
    = 答 =
    嗯,Python 分2和3是很尴尬,我也想全书用Python 3,但是由于有「实战」的意味,担心很多还没有迁移到Python3的同学用不了。随意忍痛还是用现在的主流Python2。假如现在已经是2018年,我的书绝对是纯纯的Python3。C++和C#的内容确实没有,恕我没有相关的经验,也没机会去实验,就不写了。 在异构的场景我更喜欢服务化,用JSON或者一些自有的二进制协议通信。

    = 问 =
    Python Web 开发相对Java Web 有什么优势?
    = 答 =
    前面已经说过了。而且我没用Java写过Web,不敢深入的评价。有时候性能和开发效率以及维护成本要看场景,Java Web发展到近来有它存在的必然因素,其实没必要比。

    = 问 =
    自己一直用Django做Web开发,但是总是有一些困惑在于更新很频繁。您有没有一些较好的Django公共组件推荐?快速开发的同时,可以学习别人是怎么实现。现在前后端分离比较多,您认为Django的MVC和使用Restapi做前后端分离,怎么选择合适?谢谢!
    = 答 =
    个人不喜欢Django,所以用的不多,尤其是最近1-2年,所以就不推荐了。MVC和Restapi也不冲突啊,一个是项目的架构方式,一个是接口定义的模式约束。

    = 问 =
    感觉Django就是版本帝各种改变接口等……又不向下兼容,我这种业余写点程序的追起来心累
    = 答 =
    嗯 我之前用1.2.5,后来改成1.4,结果密码加密方式改了,害得我只能用低版本升不了级(总不能让所有用户都来重置一遍密码吧)

    = 问 =
    我自学过一段时间的Django,后来研究小米的开源监控系统,才了解到的Flask,现在正在研究Flask,对于Python进行Web开发,您是怎样看这些框架,他们都适合什么样的环境,还有其他的框架推荐吗?谢谢
    = 答 =
    用Flask还是Django可能更是工程师按性格。Flask是力求简单,只保留核心,你想要什么往里面填,给你自由,缺点是这些扩展良莠不齐,需要你用有一定的辨别的能力。Django是五脏俱全,大部分常用的啥都给你准备好了,用就好了,缺点是自由度不够,你想定制点还是要费一番周章的。学习曲线也是flask基本一天就可上手能用,Django也许得2周,越到最后越难(但是也别被我吓到,只是从初学者的角度看)。 其实我个人比较喜欢Pyramid,但是只推荐给有一定Python Web开发经验的人,有时候得翻源码解决问题或者找思路和灵感。

    = 问 =
    您好,比较火的Web框架很多,常见的有Flask, Django, Tornado,这三个东西在开发上有什么异同,或者说如果开发一些Restful接口或少量界面的功能,优先考虑哪个?还有就是Python的部署只是把脚本放上去就行了,但环境还要自己配置,有什么方法能像Java那样打包部署么?
    = 答 =
    不同的框架就是实现的思路,作者或者团队的编程习惯不一样,造就它们的用法看起来差别挺大,生态区别也很大,但事实上原理都差不多。不要问我选哪个,我肯定说Flask,因为个人喜欢Flask的哲学(精简,自由,高效,代码写的好等等),但是你还是要有自己喜好。 Python没有像Java那样打包,这是不同语言的设计哲学。我个人愿意花时间折腾,所以我喜欢Python!!

    = 问 =
    你好,我学了快一年的Python,对Python的异步感到比较困惑,Python有多种方式可以实现异步,事件循环、协程、多进程多线程什么的,相关框架也是很多,gevent、twist、tornado,asyncio等等,真是有点眼花缭乱,像NodeJS就比较单一(貌似它的异步就是event loop),所以我想问问你觉得Python到底适不适合做异步编程?如果要学习Python的异步编程如何入手好一点呢?
    = 答 =
    说适不适合很奇怪,讨论「某个场景下用哪个(些)方式更适合」这样的话题比较好。而且这些看起来比较让人眼晕的概念其他语言也都有,只是可能名字改一下,换汤不换药,这也是学好一本语言再学其他的会很容易的原因吧。编程其实很无聊,写好的库,明确告诉你该怎么用,你直接调用就好了。其实写代码不难,关键是要深刻理解这些概念的原理和适用场景,这种资料一搜一大堆….. 除了看书,分别用用,加点调试代码(比如print),看看他是不是按照你理解的方式在运行,想想为什么。有过几次实战经验就懂了。

    = 问 =
    运维转开发运维有什么好建议? 学习路径能推荐下吗? 核心编程能力就想依靠Python
    = 答 =
    我就是运维转运维开发,最后成为了Web开发。这条路上和核心编程没什么关系,都是靠工作中去锻炼。我在运维转运维开发的时候,其实已经拿到某大厂的运维的offer,但是一心要做开发。当时说的是哪怕被我一半的薪水我也愿意做开发。 看书看博客只是辅导,实操才最重要。

    = 问 =
    这个本书有没有涉及Docker,请问你对Docker在Python Web应用部署方面有什么看法,是否会得到大规模的应用呢 ?
    = 答 =
    只涉及使用Docker运行能包含了本书绝大部分代码的引导。没有把它作为书中的内容,因为第一个是和Web开发无关,第二是Docker不是Python实现的。现在Docker已经火的不要不要的,透露下,其实豆瓣现有的产品的部署都已经使用Docker了。

    = 问 =
    了解Python基本知识,希望学习一门Python web框架学习后端开发。之前我对部分主流框架进行了一些了解:Django,Tornado,在知乎上有一个非常活跃的群体。在框架的选择问题上,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。
    = 答 =
    嗯,赞同你的观点。很多人在杞人忧天。先等活到有必要讨论语言的那一天,那时候早就有钱有人有时间,哪怕Python真的不满足,重构呗。

    『豆瓣与Python不得不说的秘密』

    = 问 =
    使用豆瓣很多年,很喜欢豆瓣的风格。之前一直是在网页端浏览,后来又到了手机app端。我总体感觉豆瓣的进步很快。我想问的问题是,Python Web一直作为豆瓣的开发首选,是因为什么?还有关于豆瓣的权限模块的设计时,Python Web发挥了什么优势。作为手机端app的开发,Python Web会起到什么作用吗?
    = 答 =
    豆瓣选择Python,其实是公司和语言的风格很相似的缘故吧。我们做事喜欢优雅,清晰,高效,这正好也是Python希望的。 豆瓣的基础设施基本都是使用Python完成,包含权限部分,但是Python Web和权限模块设计感觉没啥直接的关系,就是抽出来的库和使用它的关系,我也没懂有什么优势或者劣势。 豆瓣app的API后端是使用PythonWeb完成的。

    = 问 =
    Python的Web开发框架有很多,豆瓣用的是哪个呢,为什么选这个呢?
    = 答 =
    用户产品绝大多数使用定制版的 http://quixote.ca/。 选择它有一些历史原因。那时没有更好的框架。而且用了这么久,够用,简单,性能满足需求,就没必要换。当然现在厂内其它框架也都有在用。
    图片描述

    展开全文
  • 这么多人推荐学 Python 入IT 行的,如果学完 Python这一套找到工作怎么办? 这应该是最多人担心的吧。 到底学完Python是否好找工作,初级岗位多多? 过来人的经历分享,让大家考究考究 1,Python 远比其他语言...

    这么多人推荐学 Python 入IT 行的,如果学完 Python这一套找不到工作怎么办?

    这应该是最多人担心的吧。

    到底学完Python是否好找工作,初级岗位多不多?

    过来人的经历分享,让大家考究考究

    1,Python 远比其他语言容易学习使用,是入门的绝佳语言

    2,Python 能让用户更加愉快地编程、工作,我认为应该带着快乐的心情去工作才能做得开心

    其实楼主的问题是很普遍的问题,所以我觉得讲一讲还是很好的。

    一个典型的误区是认为 Python 的岗位少,所以对经验要求高,实则不然。

    Python 在国内的应用的确不是最广的,但就业难度却并不比热门岗位前端高,这是因为竞争程度也变低了。

    2018年11月招聘,Python共有8300个岗位,且薪资都在10000元以上。

    实际上大多数岗位都是初级岗位,因为金字塔底层永远是最多的,不可能人人都是资深、人人都是领导,这个不仅仅是个逻辑问题,也可以在拉勾等网站自行搜索职位来验证。

    以我们的统计分析来看,真实世界的招聘中,大多数企业的招聘还是比较务实的,以考察基本功、对相关领域知识原理的理解程度来筛选员工(比如知乎招聘就是以考察能力为主)

    当然了,硬卡资历的公司不是没有,但绝不是主流,关于这一点,面试过很多次的同学应该会很认同

    会有这些疑问,主要是对于企业选人用人和市场需求了解有误造成的

    现在的互联网行业,还是处于一个开明包容的火热发展时期,其实说开了就很好理解了

    如果你依然在编程的世界里迷茫,可以加入我们的Python学习扣qun:784758214,看看前辈们是如何学习的。交流经验。从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!分享一些学习的方法和需要注意的小细节,点击加入我们的 python学习者聚集地

    只会python为什么找不到工作?找得到的,好吗?而且python非常重要非常重要,真的在工作中非常有体会,基础掌握好了,看源码,看各种开源代码,甚至一些库的实现都能自己探知一二。基础是值得花费很多很多时间掌握的。

    我想说的是回答的很多人自己都不懂python,只能打打嘴炮就完了,还有什么一个星期掌握语法,实在可笑至极。

    想我当时也以同样的思路看待js,两天过了一遍基础,然后打开控制台看到一个对象的几十个属性和冗长的原型链我就惊了,深感到自己的无知。

    所以拜托你们不要被很多傻子似的评论吓到了,学好python真的非常重要,也非常有用!

    然后回到问题,只会python.这个问题其实很显然啊,面试笔试重点从来都是数据结构和算法啊。然后比如你用python做web,你怎么可能不懂网络额知识呢?这个问题有存在的意义吗?

    只懂python的人,难道只是像背书一样把语法背下来然后什么实际的事都不干?那这也能叫懂python?

    总结
    近两年,随着Python的火爆,国内Python的岗位也随之增多,只要你的技术能力足够,项目经验充足,找到工作不是问题。即使是一些二线城市,Python的待遇也十分可观。所以,想学Python的小伙伴们不要犹豫了,赶紧学起来吧。

    展开全文
  • 粗略的算一下,我玩票吹n*做自媒体这几...因为Python火啊,各种渠道都告诉你们学 Python,年入30万,年入50万。我自己也算是 IT 圈的人,可能也认识一些所谓的大佬。我想告诉一些想学Python的朋友一个实际的情况是:...

    粗略的算一下,我玩票吹n*做自媒体这几年,也有十万多粉丝了。这其中数据分析和数据挖掘引流过来的占7成,Python 引流过来的占3成;我一个搞数据挖掘的,搞 java 的,偏偏是Python 的粉丝最多,为什么?因为Python火啊,各种渠道都告诉你们学 Python,年入30万,年入50万。我自己也算是 IT 圈的人,可能也认识一些所谓的大佬。我想告诉一些想学Python的朋友一个实际的情况是:用 Python 作为唯一编程语言找工作的,你连机会都没有,更不要说年薪多少了。

    (一)正确的认知 Python

    1.1 从 Python 的五大应用领域说,Python不是你要学,想学就能学

    Python 应用的五大领域

    • (1)人工智能(AI 和 MI)

    • (2)机器学习算法领域

    • (3)爬虫

    • (4)开发

    • (5)自动化测试

    先说人工智能和机器学习算法,都是用 Python 来搞算法的,需要你有很强的数学功底。这是对学历和能力有极高要求的,不是你学个 Python 就可以弥补的。爬虫单不说用Python适不适合,也有所谓的 Python 爬虫工程师,就单说爬虫这工作来说,我都是不建议去做的,哪怕你用 java ,我也不推荐来做,我不看好,也不建议大家把它当做一个好的方向。未来的反爬虫趋势会越来越重,未来还会有法律风险。再说用Python来做web后端的公司,如果有好的,有靠谱的,请你来告诉我,但不要说知乎是Python搞的,豆瓣是Python搞的,真不是你想象的那样。自动化测试,就不说了。

    1.2 为什么 Python 这么火

    • 不得不说,有培训机构的“功劳”;
    • 也有会了一点,就以为自己行了的 “新手”;
    • 更是一些老板和公司,把 Excel 跟 Python 都混在了一起

    (二)那该如何来学习 Python

    2.1 第二辅助语言

    • 当你掌握第一门编程语言之后,比如说 C#,比如说 Java ,再来学 Python ,那肯定是锦上添花,弄个自动化脚本或是小工具,还是挺好的

    2.2 用 Python 来理解晦涩的业务和算法

    • Python 语言比较“轻”,可以适合理论一些其他语言不容易理解的概念的算法。

    2.3 Python 不是数据分析师的标配

    • 我有一篇文章,叫 《2017年,要这样学习数据分析》,发表在微博上,至今累计有200多万的阅读,Python 和 R 是选配 ,但不是标配。如果我们连计算机基础和数据结构都不懂,那还是不要过度的时间花在Python上。
    展开全文
  • 么多人推荐学 Python 入IT 行的,如果他们学完 Python这...第一位前辈我从 2014 年起,大力宣传并给出了学习 Python 转行程序员的具体路径,并帮助数百人成功转行成为一名程序员。我大力推荐 Python 的原因很简...

    么多人推荐学 Python 入IT 行的,如果他们学完 Python这一套找不到工作怎么办?

    这是笔者在网上看到的一个问题,那么真相究竟如何呢?到底学完Python是否好找工作,初级岗位多不多?

    我们来看看2位前辈的经历,希望对你有所帮助。

    第一位前辈

    我从 2014 年起,就大力宣传并给出了学习 Python 转行程序员的具体路径,并帮助数百人成功转行成为一名程序员。

    我大力推荐 Python 的原因很简单:

    1,Python 远比其他语言容易学习使用,是入门的绝佳语言

    2,Python 能让用户更加愉快地编程、工作,我认为应该带着快乐的心情去工作才能做得开心

    其实楼主的问题是很普遍的问题,所以我觉得讲一讲还是很好的。

    一个典型的误区是认为 Python 的岗位少,所以对经验要求高,实则不然。

    Python 在国内的应用的确不是最广的,但就业难度却并不比热门岗位前端高,这是因为竞争程度也变低了。



    2018年11月招聘,Python共有8300个岗位,且薪资都在10000元以上。

    实际上大多数岗位都是初级岗位,因为金字塔底层永远是最多的,不可能人人都是资深、人人都是领导,这个不仅仅是个逻辑问题,也可以在拉勾等网站自行搜索职位来验证。

    以我们的统计分析来看,真实世界的招聘中,大多数企业的招聘还是比较务实的,以考察基本功、对相关领域知识原理的理解程度来筛选员工(比如知乎招聘就是以考察能力为主)

    当然了,硬卡资历的公司不是没有,但绝不是主流,关于这一点,面试过很多次的同学应该会很认同

    会有这些疑问,主要是对于企业选人用人和市场需求了解有误造成的

    现在的互联网行业,还是处于一个开明包容的火热发展时期,其实说开了就很好理解了

    第二位前辈

    为什么会这样?我也只学了python,3个月,就找到实习。现在对即将开始的校招也很有信心。

    为什么一堆的人泼冷水,不是很懂。只懂python?我想问下回答区多少个人真正懂了python?我学了3个月,也仅仅只是入门,只是有些基础了而已。但我依然找到了实习,工作其实也找到了,同样因为python.

    点赞数第一那个应届生,你们不用管,他只是罗列了一下知识点,装逼而已。如果他真的看完并理解了他列举的那些,那绝对是国内公司横着走。而不是什么头条笔试都被虐,据我所知笔试最难也就动态规划,算法导论那一章能理解的话这算事吗?

    我想说的是,只会python为什么找不到工作?找得到的,好吗?而且python非常重要非常重要,真的在工作中非常有体会,基础掌握好了,看源码,看各种开源代码,甚至一些库的实现都能自己探知一二。基础是值得花费很多很多时间掌握的。

    我想说的是回答的很多人自己都不懂python,只能打打嘴炮就完了,还有什么一个星期掌握语法,实在可笑至极。

    想我当时也以同样的思路看待js,两天过了一遍基础,然后打开控制台看到一个对象的几十个属性和冗长的原型链我就惊了,深感到自己的无知。

    所以拜托你们不要被很多傻子似的评论吓到了,学好python真的非常重要,也非常有用!

    然后回到问题,只会python.这个问题其实很显然啊,面试笔试重点从来都是数据结构和算法啊。然后比如你用python做web,你怎么可能不懂网络额知识呢?这个问题有存在的意义吗?

    只懂python的人,难道只是像背书一样把语法背下来然后什么实际的事都不干?那这也能叫懂python?

    总结

    近两年,随着Python的火爆,国内Python的岗位也随之增多,只要你的技术能力足够,项目经验充足,找到工作不是问题。即使是一些二线城市,Python的待遇也十分可观。所以,想学Python的小伙伴们不要犹豫了,赶紧学起来吧。


    转载于:https://juejin.im/post/5be6d8a9e51d451e8a37c92a

    展开全文
  • 最近有些学员问我,Python到底是强类型语言,还是弱...我直接脱口而出:Python是弱类型语言。没想到有一些学员给我了一些文章,有中文的,有英文的,都说Python是强类型语言。我很好奇,特意仔细研究了这些文章。
  • 三张图告诉你python爬虫时转换\u中文字符的“坑”
  • Python这么久了,一直想做个界面出来,最近发现Python有个内置库tkinter,利用它可以很轻松做出一些简易的UI界面,首先来看Python官方对Tkinter的说明: The tkinter package (“Tk interface”) is the standard...
  • 用三种办法告诉你Python如何安装第三方库

    千次阅读 多人点赞 2020-04-29 17:33:53
    在使用Python的过程中,势必会涉及到许多第三方库。但是怎么下载这些第三方库呢? 这里以如何手动安装为主。 方法一: 在命令提示符中输入: pip install + 需要安装的库名,即可下载安装。 这是一个比较官方的...
  • 大佬告诉你10个Python爬虫入门实例

    千次阅读 多人点赞 2021-04-27 22:25:42
    如何安装requests库(安装好python的朋友可以直接参考,没有的,建议先装一哈python环境) windows用户,Linux用户几乎一样: 打开cmd输入以下命令即可,如果python的环境在C盘的目录,会提示权限不够,只需以管理员...
  • 啥是佩奇,Python 告诉你

    千次阅读 多人点赞 2019-01-18 15:14:55
    今天, 被《啥是佩奇》这支广告片刷屏了。...开片爷爷在电话这头的一段话很抓人心, 全世界的爷爷都是这样疼孙儿的, 一下子让观众有共情的心理。 一句“什么是佩奇?” 铺垫了爷爷接下来的一段寻...
  • Python告诉你你上班的时候到底在做什么 本文章来自微信公众号https://mp.weixin.qq.com/s/ujDgLevX8XZSwtFFm-LCsw,内容有所增减修改,如有冒犯,请联系2351147520@qq.com删除 作者github地址 ...
  • 是学python还是java?一张图告诉你

    万次阅读 多人点赞 2017-10-12 19:12:35
    Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始起步...作为一名 Java 程序员,肯定会建议先学 Java,然后再学 Python,但如果问一个 Python 程序员,可能会得到一个完全相反的答案。与此同时,Pyth
  • fxxk dbus-python已经deprecated了 请使用pydbus
  • 来自: C语言编程分享 2018-02-28 14:44:44 what is Python? 1.全球三大语言之一. 根据tiobe 最新排名,Python已超越c#于Java,c一起成为全球三大最流行语言。 2.应用几乎没有限制. Python被广泛用于后端开发、...
  • def getHTMLtext(url): """请求获得网页内容""" try: r = requests.get(url, timeout = 30) r.raise_for_status() r.encoding = r.apparent_encoding ...
  • 一张图告诉你学JAVA还是学Python

    千次阅读 2018-08-13 15:39:31
    Java和Python一直都是两种很火很强大的...作为一名Java程序员,肯定会建议先学Java,然后再学Python,但如果问一个Python程序员,可能会得到一个完全相反的答案。与此同时,Python已经不再是乳臭未干的黄毛小子...
  • 学Java还是Python?一张图告诉你

    万次阅读 2018-09-15 13:15:27
    Java 和 Python 一直都是两种很火很强大的编程语言,对于刚开始...作为一名 Java 程序员,肯定会建议先学 Java,然后再学 Python,但如果问一个 Python 程序员,可能会得到一个完全相反的答案。与此同时,Pyth...
  • 一张图告诉你学Java还是Python

    万次阅读 2017-09-28 00:00:00
    来源:AI科技大本营(ID:rgznai100)本文长度为800字,建议阅读3分钟本文为解析Java和Python的不同点。Java和Python一直都是两种很火很强大的编程语言,对于刚开始起步学习编程的同学来说,会迷惑且最经常问的...
  • 深入一点,在深入一点,你就会看到list和tuple的本质
  • 17幅思维导图告诉你 - Python 核心知识体系

    千次阅读 多人点赞 2018-10-12 11:52:00
    以简单、直观、清晰的思维导图方式,帮助大家学习和回顾Python核心知识体系,原创作者还是一枚软萌妹纸。 1. 计算机基础 2. Python语言基础 3. 标准数据类型 (一) 数值 & 字典 & 集合 4. 标准...
  • 还有我想说的是薪酬高是由于现在的Python的商场现在急需人才,不要想着自学能找到一份好的工作,自学一个是浪费时间还有效益有很低,我这有一个体系的学习方案可以看下,觉得可想就来找我吧,从零根底到项目实战...
  • 10个python办公黑科技,助办公效率提高100倍

    万次阅读 多人点赞 2021-06-02 11:46:55
    bit哥,我学完python后怎么样才能让人觉得我很厉害呢?
  • 以简单、直观、清晰的思维导图方式,帮助大家学习和回顾Python爬虫知识体系,原创作者是一枚软萌妹子。 1. 爬虫基础知识 2. Requests库 3. BeautifulSoup & urllib 4. Scrapy爬虫框架 原文链接...
  • Python告诉你 游戏规则:时时彩一种玩法是买尾号。2元一个数字,中奖是20元。每个数字出现的概率相等。 目前想到两种买法: 随机购买,人是感性动物,很容易受周围环境干扰。完全随机购买在生活中是存在的...
  • Python既不是最快的语言(很容易被C和C+取代),也一定是最容易学习的语言(R和Matlab可以有更小的学习曲线)。那么,为什么python被 57%的数据科学家和机器学习开发人员 排名 第一位是PYPL指数 作为当今最流行的编程...
  • 最近看到学习群里面的小伙伴,对于Python IDE都比较纠结,希望找到一些适合自己的、Python开发工具。小编向企业级大佬请教之后,给大家分享几款Python开发工具,供正在纠结用哪种开发工具的小伙伴们参考~ 对于学习...
  • 一直心存疑虑:Python可以干什么事情? 对Python在企业级开发中的10大误解 lyxi | 2015-10-15 10:49 浏览量(216) 评论(0) 推荐(0) 数据 在PayPal的编程文化中存在着大量的语言...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 203,577
精华内容 81,430
关键字:

就不告诉你python

python 订阅