为了账号安全,请及时绑定邮箱和手机立即绑定

【花式填坑第2期】人生苦短,我用Python

/ 猿问

【花式填坑第2期】人生苦短,我用Python

慕女神 2017-05-04 10:33:59


http://img.mukewang.com/590a929400012d0807200570.jpg 


花式填坑第2期如约而至。上期的“高效前端开发·Vue.js”话题在大家的积极提问和IT大咖精彩回答完美落下帷幕


本周,我们来聊聊关于python的话题,让我们对 python有更加全面的认识。


http://img.mukewang.com/590a92bd0001d9e707200066.jpg

随着人工智能时代的来临, python越来越受到开发者的关注。


 作为人工智能及爬虫等各种系统开发的首选语言,python能做什么?对比与其他语言,python的优势是什么?


http://img.mukewang.com/590a92e100019ff607200066.jpg


http://img.mukewang.com/590a92f100016c7207200574.jpg


点击可查看,Bobby老师的个人主页


这是一个非常难得的机会,和Python全栈大咖一对一交流,大家赶紧来提问吧!


话题交流时间:5月5日--5月7日


大家可以把问题都提前准备好了,老师会在活动时间一一给大家解答的!



查看完整描述

29 回答

?
Manes

老师,想知道python相比其他的java,php,go这些的优势是什么?可不可以详细说说,感谢老师

查看完整回答
33 反对 回复 2017-05-04
点击展开后面4
?
bobby

问题:你好,请问pthon2.X和3.X不同的版本,不同版本之间也存在着不同语法。本人做java的,学习中觉得3.X版本跟java语法更为贴近,但是很为教程都是以2.x主讲的。新手入门学习时,应以哪一个为主?另外python基础学完后的学习路线应该如何规划,另外可否麻烦老师给一个python新手学习路线图?



1.  python2和python3的语法差别不大,如果你会python2的话,通过两天时间就足以转换到python3了,python3和python2最大的区别就是字符串编码了,以及部分库换了存放的位置了而已。

2.  但是目前实际工作中的应用还是以python2.7为主, 所以你选择哪个都无所谓,如果只是单纯的学习为主你可以选择python3学习。

3. python基础学完以后你首先需要明确你需要学习的是什么? 这里推荐的是web系统开发和爬虫开发, 这两个放心是最适合自己学的, 学习web系统开发的话可以先学习django,django是一门全栈的web开发框架, 可以帮你快速理解开发一个web系统需要开发哪些东西。然后如果django熟练的话就可以去学习flask和tornado, 去自己实现一个自己想要的更全面一点的web开发框架。 爬虫的话可以首先通过requests和gevent去实现一个爬虫, 了解了爬虫的基本原理之后就可以去用scrapy去写自己的爬虫系统了。 最后再通过结合django和scrapy完成一个完善的爬虫以及爬虫控制系统了

4. 学习完了上面之后你就可以学习一下python的进阶知识了, 关于python的进阶学习可以在知乎上找, 资料很多的

查看完整回答
22 反对 回复 2017-05-05
?
bobby

问题:老师好,学JavaWeb的有必要学PythonWeb么?目前市场开发的python更多是测试和自动化岗位吧?web市场中,大型的项目被java占领,小型的有php,python如何在web市场分一杯羹?优势劣势在哪?python在其他方面,比如爬虫啊,数据挖掘等方面的就业前景和学的要求怎么样?麻烦老师解答一下,谢谢


    这个不是有没有必要的问题, 不论用什么语言都可以开发出web系统, python, php, java都行,如果单就从实现功能的角度来讲都没有区别, 都能实现, 但是要考虑到开发效率, java是完全没法和python比的, 比如一个小的系统, 用java开发,你要去打开ide,配置maven, 下载spring等等框架配置好开发环境,编写代码然后编译成class之后再运行,这些其实可能一个python文件都能搞定的事情,等到你把开发环境搭建好,python都已经开发完了。 当然这里只是拿了一个小系统做例子, 大系统也是一样的, 这里只是讨论了一个开发效率问题。 如果单就从开发功能上来讲, 用javaweb开发出来之后如果你不考虑以后想提升开发效率的话,当然不用去学习python web开发。

    目前市场上python的职位远不止测试和自动化岗位, 你如果去做云存储之类的就知道openstack实际上就是用python开发的, 很多只要涉及到这块的都会招python开发。 实际上很多web项目立项之初用java立项的原因都是因为考虑到java人才容易招到而不只是java本身有多大的优势。 实际上很多创业公司开始逐步转向用开发效率高的python和php作为web开发。而且java在web系统方面也在逐渐被python, go 和nodejs蚕食。

    python目前在python和数据处理领域几乎都是首选语言,后期随着人工智能时代的来临, 很多公司特别是小公司会急于向数据方面考虑首先第一个要解决的问题就是爬虫爬取数据, 所以数据和爬虫职位近两年应该会逐渐增多

查看完整回答
17 反对 回复 2017-05-05
?
日出公园

Python Django学到什么程度能找到一份实习岗位?怎么写一份python web开发的简历呢?这种岗位哪里比较多?南京好像不多

查看完整回答
17 反对 回复 2017-05-04
  • bobby
    bobby
    通过django学习python的web开发是比较好的选择, 因为django几乎会涉及web开发的所有功能, 这些功能能让你快速理解开发一个web系统需要什么知识。 1. 对个一个需要找工作的人来说, 学到什么程度才能找到工作真的无法描述出来, 但是一定要明白, 对于没有工作经验的人来说,项目经验是最重要的, 只有真正做过项目的人才能明白要想做出一套web系统需要的知识除了框架本身之外还需要计算机网络等知识, 比如cookie和session的使用,这些知识都是开发过程中会遇到的问题。经历过一个完整的项目你才能明白django中为什么会有model, view,form, url和templates以及为什么要将这些独立成各个模块。通过项目将所有知识点串联起来才是最好的学习方法。 2. python的web开发简历中你需要写清楚两点: 1. 你使用的技术是什么 2. 项目中你负责的是哪一部分? 第二点非常重要, 比如你最好写清楚你使用了view里面的什么逻辑, 你设计的model的具体业务是什么? 你使用的django form解决了什么问题? 3. python的开发工作目前在北京最多, 上海,成都, 深圳, 杭州等都有python的web开发工作。 4. python的web开发岗位你不一定非要投递那种明确写明了django的职位, 你也可以投递写明了python web开发的岗位。如果简历筛选过了说明对方对django是有需求的。只需要准备好django的基础知识就行了。 有了django基础学习其他框架会比较简单
  • 日出公园
    日出公园 回复 bobby
    恩 谢谢老师的回答
  • weibo___何小贱_0
    weibo___何小贱_0 回复 bobby
    很详细,继续学习,争取早日转行成功。
?
bobby


问题:老师您好,现在python作为一门最贴近生活的语言,我打算把他当做副语言作为兴趣来学习……您有没有好的建议或者看法帮助我少踩一些坑,感觉python是很符合解决生活中遇到问题的语言……谢谢老师


    如果想把python当做自己的第二语言, 最好事先有个概念就是:哪些问题我要用python来解决?如果能用python解决就优先使用python解决。 在学习的过程中切记不能摇摆不定,比如由于我是不是应该继续学下去, 我到底应该学习哪些具体知识, 通过具体的一个库或者框架去解决现有的问题以此来加深自己对python的理解才是学习语言的正确姿势,脱离了具体问题来学习都是效果最不好而且经常忘记的, 解决具体的问题才是最快速的方法, 第二就是一定要善用google以及要懂得看错误提示, 要在一大推的错误栈中找到最关键的错误并拿着这个错误去找答案才能高效的解决问题。

查看完整回答
15 反对 回复 2017-05-05
?
丶似浅

你好,请问pthon2.X和3.X不同的版本,不同版本之间也存在着不同语法。本人做java的,学习中觉得3.X版本跟java语法更为贴近,但是很为教程都是以2.x主讲的。新手入门学习时,应以哪一个为主?另外python基础学完后的学习路线应该如何规划,另外可否麻烦老师给一个python新手学习路线图?

查看完整回答
11 反对 回复 2017-05-04
?
time_is_everything
老师您好,现在python作为一门最贴近生活的语言,我打算把他当做副语言作为兴趣来学习……您有没有好的建议或者看法帮助我少踩一些坑,感觉python是很符合解决生活中遇到问题的语言……谢谢老师
查看完整回答
10 反对 回复 2017-05-04
?
圈9

为什么人工智能的第一开发语言是python?

查看完整回答
7 反对 回复 2017-05-04
  • bobby
    bobby
    人工智能不一定非得用python才行, 其他语言都可以, 但是谷歌的TensorFlow基本上所有的代码都是C++和Python,其他语言一般只有几千行 。如果讲运行速度的部分,用C++,如果讲开发效率,用Python,Python虽然是脚本语言,但是因为容易学,迅速成为科学家的工具(MATLAB也能搞科学计算,但是软件要钱,且很贵),从而积累了大量的工具库、架构,人工智能涉及大量的数据计算,用Python是很自然的,简单高效。Python有非常多优秀的深度学习库可用,现在大部分深度学习框架都支持Python
?
BeShelby

老师,Python开发一个程序,运行起来似乎很慢,它的运行速度是C开发一个同样程序的几倍到几百倍,那么这是不是Python的短板呢,如果在追求速度的情况下,Python能否提高它的执行速度呢以及怎么提高速度,感谢老师!

查看完整回答
6 反对 回复 2017-05-04
  • 安生ing
    安生ing
    速度慢的百分之99原因都是因为你代码写的有问题,现在的计算机不想十年前,根本不需要考虑性能的问题。
  • bobby
    bobby
    安生说的有道理, 几乎99%的系统性能问题是不需要需要涉及到语言本身的快慢的, 一个系统的并发语言本身只是一部分,比如高并发需要涉及到代码优化, 缓存机制, sql语句优化等优先解决了然后再去考虑语言本身, 而且对python来说, 性能的部分使用pypy以及使用c语言编写然后python直接调用这些性能是完全可以达到甚至超过其他语言的
  • Timm_Lee
    Timm_Lee
    大型实时在线网络游戏 EVE online 就是用 python 开发的,性能一点都不差,因为他们用了 Stackless Python 技术(类似于 gevent worker 模式)。另外 Python 号称“胶水语言”名不虚传,因为 Python 可以用各种语言实现解释器,所以对于影响性能的20%甚至更小的性能瓶颈部分,完全可以用 C/C++改写(Cython),甚至可以和 Java 结合(Jython)。另外通过pypy可以实现JIT实时编译,也可以静态编译成机器码,据称性能比C更快。 另外,过早的优化是罪恶。Python最强的是做原型,原型得到市场认可以后再考虑性能的问题也不迟。比如早期的 Google、Quora、Instagram、豆瓣、知乎、今日头条都是Python 的重度用户,后期慢慢提升性能也不迟。
?
莨菽菽

老师好,学JavaWeb的有必要学PythonWeb么?目前市场开发的python更多是测试和自动化岗位吧?web市场中,大型的项目被java占领,小型的有php,python如何在web市场分一杯羹?优势劣势在哪?python在其他方面,比如爬虫啊,数据挖掘等方面的就业前景和学的要求怎么样?麻烦老师解答一下,谢谢

查看完整回答
7 反对 回复 2017-05-04
?
慕粉4337887

老师好,python对于全栈来说相对java,php来说,有何优劣!?请指教!谢谢。

查看完整回答
5 反对 回复 2017-05-04
  • bobby
    bobby
    这个问题因为内容比较多,我专门写了篇手记来回答这个问题: http://www.imooc.com/article/17825
?
FerdinandFung

想要老师帮忙解答使用python处理大数据相关的学习路径,现在在准备一个大数据比赛,计划使用python来做,但苦于无从下手,网上切实能解决问题的教程不多,感觉看了很多缺还是徘徊在大数据的门口,希望老师能解答困惑,感谢老师。

查看完整回答
4 反对 回复 2017-05-04
  • bobby
    bobby
    数据相关的重点在于你对算法本身的理解如何, 比如一个问题你需要用聚类还是分类以及拟合来完成, 这些解决方案在于你对算法本身的理解, 脱离了算法去学习语言是无法真正学习好的, 你只有知道自己需要用到什么算法,然后再直接找到python相关的开发包去解决问题然后进行参数调优等策略才能加深自己对算法的理解。 所以你首先需要从一个具体的问题入手开始解决而不是不停的去看python开发库
?
沉迷学习的程序猿

老师真牛,要达到老师这种级别,得多长时间?

查看完整回答
6 反对 回复 2017-05-04
  • bobby
    bobby
    编程最重要的是自己的兴趣以及对解决问题本身的投入程度, 也要看自己对技术的应用频繁程度, 有些技术比如django,有人有机会在3个月内需要开发一个web系统而且各种功能和性能都有要求, 那这个人成长就很快, 有些人比如用django开发一个小系统而且时间不着急, 两个人的学习密度就完全不一样, 所以解决问题本身以及自己给自己施加的压力才是保证自己学习效果的最好方法, 等到自己多解决几个问题自然就知道自己下一步该做什么了, 所以无法给你一个具体的时间, 遇到问题就想办法解决并做好,然后反复的问自己还能不能做的更好,或者还有没有细节没有解决, 多深入细节很重要。
?
bruce王

因为python在各种方向的的适用。作为一个职场新人,很想了解下python的各个发展方向,及各发展方向应该具备pyhon的哪些技能,怎样开始学习可以少走弯路,有效率的精通某一方向。

查看完整回答
3 反对 回复 2017-05-04
  • bobby
    bobby
    python使用的领域很多包括自动化测试开发, 运维开发, web系统开发, 爬虫, 大数据, 桌面应用开发,云计算等。这些领域你需要选择一门自己感兴趣的领域然后再去学习各个领域的框架和库。 接下来介绍一下各个领域的框架: 自动化测试: UIAutomator,Appium,Unittest, selenium等 运维开发:jekins, zabbix, django等 web系统:django, flask, tornado,bottle, web.py, Pyramid等等 爬虫:scrapy, pyspider等 大数据:numpy,scipy等等 桌面应用:wxPython, pyqt等
?
MikeXiao0

老师,你熟悉机器学习,讲点这方面的项目,支持你!~

查看完整回答
2 反对 回复 2017-05-05
  • bobby
    bobby
    非常你的感谢支持, 后期如果有时间会考虑的
?
犁牛

几乎万能的第三方库确实方便了开发,但是会不会导致编程能力退化呢?第三方库会不会有安全性问题?

查看完整回答
2 反对 回复 2017-05-05
  • bobby
    bobby
    这个问题分两面看:第一如果什么都自己写,会有两个缺点:第一费时,第二代码写的难看, 好代码或者代码设计风格都是模仿出来的, 多看看第三方的优秀代码不仅能加快开发速度而且能学习到如何设计出一个好的代码架构。 但是如果经常用第三方而不去理解到内部实现原理以及不去看源码设计优良的地方就容易造成对代理的理解不深, 对代码理解深入最好的方式就是多看第三方优秀的代码并学习其中的精髓。大部分人自己写代码会很难看的
?
请叫我程序猿88

老师我想知道 scrapy可不可以同时爬取多个网站如果可以要学哪些知识

查看完整回答
2 反对 回复 2017-05-04
  • tianshen
    tianshen
    你多写两个函数不就行了
  • bobby
    bobby
    scrapy当然可以爬取多个网站了, 你学习了scrapy之后自然就会知道如何爬取多个网站了, scrapy中不仅有爬取网站的功能, 还有很多防止爬虫被禁止的功能, 是一整套解决爬虫问题的框架
?
我想当大神

python未来的趋势是什么?

查看完整回答
2 反对 回复 2017-05-04
  • 安生ing
    安生ing
    征服世界,取代C
  • bobby
    bobby
    python的宣传语是: 人生苦短,我用python, 所以我们就把他理解为让程序员快乐编程, 有更多的时间去陪家人和做自己喜欢的事情吧
  • bobby
    bobby
    python应该是没有什么趋势的, python一直想解决的问题不是然让自己在某个领域很强大而是希望让编码更轻松和效率更高
?
爱生活爱胖胖

请问老师python如何进阶学习?

查看完整回答
2 反对 回复 2017-05-04
  • bobby
    bobby
    python进阶这个问题需要细化一下, 你是需要在web开发领域的python进阶呢, 还是只是python语言本身的进阶上面, 如果比如web开发领域的进阶对你来说最重要的除了python语言本身以外还包括网络知识, 数据库知识进阶, 架构设计进阶, 缓存的设计等等, 这些知识除了python本身以外还有很多基础知识。 如果你只是python语言本身的进阶上你就可以去深刻的理解动态语言的各种特性, 比如函数变成, 偏函数, python的各种魔法函数,生成器,python底层的c语言数据结构,python mro算法,python 猴子补丁,__ metaclass__等等知识点比较多
  • 爱生活爱胖胖
    爱生活爱胖胖 回复 bobby
    多谢老师
?
Timm_Lee

bobby 老师常说的 python 基础应该包括哪些方面,需要掌握到什么程度?

查看完整回答
1 反对 回复 2017-05-05
  • bobby
    bobby
    python语言本身的基础就和其他语言本身的基础是一样的 比如 if else语法, 数组,字典, 列表, set, 文件操作这些几乎都是所有语言的基础, 面向对象在动态语言和静态语言中会有一些差别, python编码中一定要加深对面向对象的理解以及掌握好python的反射机制,能让我们灵活的控制python中的对象, 以及理解到python中的一切皆对象的观念。 如果涉及到其他领域的知识就需要自己去熟悉各个领域的基础知识了
  • Timm_Lee
    Timm_Lee
    好的,谢谢 bobby 老师。
首页上一页12下一页尾页

添加回答

回复

举报

0/150
提交
取消
意见反馈 分销返利 帮助中心 APP下载
官方微信