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

遇见好答案---Python编程问答专场

遇见好答案---Python编程问答专场

慕女神 2016-12-05 18:04:56
Python天生有着开发效率高,部署简单,跨平台等诸多优点,与Java,C,C++一起成为全球前4大最流行语言。 So,人生苦短,我用Python有其他语言编程经验的人,1周内能学会Python基础的内容。但大部分新手仅仅在Python语法和API层面体验了下,是无法在实际上胜任工作岗位的!!随意列举这些的高级Python编程知识点 ↓↓      你可知多少?!不懂肿么办?别担心,资深开发工程师告诉你python学习进阶的秘诀。有问题,就赶紧来提问吧~~刘硕   资深开发工程师曾就职于全球领先的半导体公司Freescale、清华大学信研院等知名企业及研究机构。是国内著名开源项目skyeye中Python架构的贡献者。具有多年开发及教学双重经验,在慕课网录制了《Python高级编程技巧实战》,点击查看该课知识点透彻,深受Python学习者的喜欢在评论区块,发布一条问题并在描述中 @刘硕老师活动时间:2016年12月6日--12月8日提问之前希望:你的问题是关于Python编程技巧、学习进阶相关问题,且描述问题要详细;千万别再问:Python学来干什么,这个问题慕女神来回答亲(づ ̄3 ̄)づ╭❤~Python的应用几乎无限制,不仅能在服务器编程、web应用有所作为,甚至基于Python的数据分析、测试,机器学习都被广泛的运用在行业中。           大家好,很高兴能来到慕课网和大家就Python编程的话题进行交流。         虽然Python的简洁易用,快速开发对项目有价值,但这不是你的价值,是Python的价值。要想不被代替,你需要的是精进,向更高级的Python进阶。通常自称一个月光速学了会Python的人基本都不是天才,只是浮躁,目标定的比较低而已。不要太过急功近利,慢慢玩, 精进。         如果你觉着编程有趣,成长也就不再痛苦, 祝学习愉快。
查看完整描述

47 回答

?
tanhouyusheng

TA贡献94条经验 获得超59个赞

@刘硕老师 

我现在在做一些简单的项目,一般用的就是python,本来以前c++用的比较多,现在用过python之后觉得python真的很简单,很简单而且不容易出错,我现在就是做的主要是类似爬虫的探测工作,以及探测得到的数据的比较和存储,虽然没怎么用到那些各种各样的库以及装饰器之类的看起来高大上的东西,但是我用的还是挺(。・∀・)ノ゙嗨的。

其次,我还曾经试着搭建过hadoop的环境,但是mapreduce程序使用python写的因为简单。

下面是我的问题

1、我这样用合适吗,

2、我有个同学跟我说他们做爬虫用java说python不稳定,是这样的吗,我需要注意些什么

3、虽然用的很多,心里还是挺没底的,我对底层了解的并不深入,这么简单,会不会有什么后顾之忧。

4、Python的最适合做的是什么。    

顺便说一下我的理解,我觉得语言不是那么重要,只要能实现相对应的功能就可以了,但是现在好多问题好像都有主流的语言,比如hadoop用java,opencv应C++,这不是主要的,关键是处理的速度与用户感受还有思想。


查看完整回答
27 反对 回复 2016-12-06
?
inottn

TA贡献1条经验 获得超15个赞

@刘硕老师 

很感谢有这么个机会可以和老师交流,我学python是想用作后端开发。

我想知道Python 与PHP 作为后端服务的编程语言各有什么优劣?

Django和Flask这两个框架让我难以取舍,

我感觉Flask像是轻量级框架,使用起来更为自由。Django则相对全面。

我想知道对于目前这两个框架国内使用率如何,

以及作为初学者,更适合先学哪个框架。

另外,学python也有一段时间了,现在语法都会了,看别人的代码也能看得懂,

但自己做小项目的时候总感觉缺了什么,

想请教老师,这个时候应该做些什么突破自己。

最后在感谢一下老师。希望能从老师的回答中得到启发。

查看完整回答
15 反对 回复 2016-12-08
?
小毛同学

TA贡献1条经验 获得超7个赞

@刘硕老师 关于Python的学习,你建议是先通读一本教程再开始实践呢还是在实践中查漏补缺式的学习?

查看完整回答
7 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    动态调整吧, 如果读教程时感觉某些细节目前不太能够理解其应用场景, 就不要硬读了, 做些实战. 实战中感觉自己某些知识掌握不是很精确, 再看看教程深入一下.
?
慕村8705556

TA贡献7条经验 获得超7个赞

@刘硕老师

现在算是刚刚接触python学习 因为学习网络安全,python是个很好编程语言,但是平常自己所写出的脚本,感觉代码太过冗杂,看了一下别人的脚本很简单的就解决了一个问题,那么请问老师怎么样才能够写出简洁、高效的脚本程序呢?还有如何控制好自己的程序对内存、cpu资源的调度?望刘硕老师能解答疑问


查看完整回答
6 反对 回复 2016-12-06
  • 慕村8705556
    慕村8705556 回复 程序员硕
    哦哦 了解 嘿嘿 老师我是不是应该忘掉C的那一套编程习惯 养成自己的python编程风格 (·_·)
  • 程序员硕
    程序员硕
    不需要忘记, 只要使用那种语言时,发挥他们自身威力就好, 没有说c或java是不好的.但有些方式不适合套用到python中, 比如你练泰拳, 然后以散打规则打比赛, 肯定不适应.
  • 慕村8705556
    慕村8705556 回复 程序员硕
    哦哦 谨记老师教诲 多谢
点击展开后面1
?
孤独的小猪

TA贡献232条经验 获得超302个赞

@刘硕老师,老师你好,我现在自学python有三四个月了,前段时间出去面试python,发现有好多基础都不会,例如面试问到的map,reduce、生成器这些,而且我发现,我在做web开发中基本都没有用到这些东西。平常看文档学习的时候,map,reduce这些简单用法也都知道。但是实际项目中发现根本用不到这些东西,过了一段时间,这些基础又全部忘掉了。搞得很迷茫啊。

查看完整回答
4 反对 回复 2016-12-07
  • Iamxiaoq
    Iamxiaoq
    用,多用,不懂就学,学了再用,,用!!!
  • 程序员硕
    程序员硕
    不是这些技术手段在实际项目中无用, 是你难以跳出自己习惯了的编程方式.我说了很多人在用python语法写java或c, 语言变了, 思路没变.这种情况下, 你需要学习.很多技术点都很有用,前提是你会用. 元类可能只有1%的python程序员在用, 但元类对会使用他的人确实是利器.
?
Zeroinger

TA贡献1条经验 获得超4个赞

@刘硕老师

老师好,我是一名大三学生,其实我最开始学的语言是c,因为参加ACM的原因,平常常用C++,出于兴趣吧,自学了Python,平常用来在乌班图上写一写脚本,上周还写了一个爬虫来获取课程实验所需要的测试文件(大量英文单词),我的感觉就是Python短小精悍,但是感觉入门容易,提升有点困难,我就想问一下,如何系统的提升Python功力,有什么好的项目推荐?Python有哪些库我应该掌握?因为我感觉自己就是无从下手,网上的答案千奇百怪,五花八门,希望老师能指导一下。

查看完整回答
4 反对 回复 2016-12-06
  • Zeroinger
    Zeroinger 回复 秋名山车神
    多谢车身,你是老司机吗?哈哈哈
  • Zeroinger
    Zeroinger
    是车神,打错,Sorry
  • 程序员硕
    程序员硕
    能做的事情太多了, 找个自己有兴趣的就好, 可选什么在我手记文章中有提到. 当然也可以用python做acm的算法题, 只把python当脚本是误区. 基本大部分人都是c开始的, 这没关系. 我第一份工作是汇编.
点击展开后面1
?
Arey_jy

TA贡献13条经验 获得超9个赞

@刘硕老师请问您的学习方法是什么呢?不管是哪一门语言,如何浅出深入呢,请教!!现在大多数语言都只是在应用层阶段,如何能像您一样做一名开发工程师呢?

查看完整回答
4 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    我建议先选择一门作为主语言, 不能平均主义, 把学习时间平分到python, java, c, c++, ruby...上去.这样每一种语言都只是了解了一点皮毛, 或者说是只在语法层面体验了一下, 领会不到精髓的部分.达到一定熟练程度, 在进行宽度的拓展.
  • Arey_jy
    Arey_jy 回复 程序员硕
    谢谢您的意见
?
LeungADa_StudyHard

TA贡献1条经验 获得超3个赞

@刘硕老师  您好,零基础学python,之前没有任何编程基础,现在已经刷完笨方法,核心编程快要完结,之后想做Web,请问接下来该学习哪些知识??python部分如何进阶??我想很多零基础学python的同学跟我有同样的问题,麻烦您抽空回复一下,谢谢

查看完整回答
3 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    我觉着编程不是应试教育, 不应以"刷"的思想来学习. 其中难免有急功近利的成分.读完几本书并不能代表能灵活的运用python进行编程, 就像在场下能颠球100下, 不代表能上场踢比赛一样.web编程还包含很多python以外的知识, 网络协议, 多线程, 正则表达式...很多过程需要积累.关于学习路径, 可以参看我手记中的文章. 慢慢玩, 愉快.
?
慕粉1472929484

TA贡献1条经验 获得超3个赞

@刘硕老师 您好,能请教下关于java和Python在爬虫方面,两者之间各有什么优势?

查看完整回答
3 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    我想不出java在爬虫中会比python有什么优势, 因为爬虫是io密集型操作, java比python运算快的优势也并没有什么体现.python在文本处理方面使用起来更简单.
?
junlz

TA贡献1条经验 获得超2个赞

@刘硕老师

前段时间公司的一个平台要做数据迁移,因此需要编写迁移脚本,我本身一直在用PHP进行开发,正好在慕课网看到了您的课程,果断买下进行学习。还真的解决了不少实际的问题,比如字符串的一些处理等等。再次表示感谢!我也有几个问题需要请教您

第一、PHP开发我用了两年多了,基本上一直在用框架写。(PHP感觉水平也就那么回事)目前的公司会经常写脚本而且都是要求凌晨执行的那种,您的课程我目前还没有看完,我想问问您怎样结合Python和PHP去深入学习?我不想那种语言都学的不够深入,最后影响自身的发展。

第二、工作中也会常用到一些Shell脚本来分析log文件,通过接触Python也感觉到他比Shell处理某些log文件要方便的多。关于shell和python的学习我也想听听您的一些建议,因为我对他们的了解不够深入。

第三、Django、Flask等框架建议怎样去学?

第四、自己关于编程的学习方式一直是这样的   在学完PHP后,自己再去了解别的语言基本上就是 先了解基础知识--> 然后找个博客啥的小应用练习一下,发现基础学的不够扎实,再返回来学不扎实的地方。-->然后再去找个项目啥的去做 -->再去补漏基础知识。 如此反复    不知道这样的学习方法你苟同吗?  自己感觉收获不是很好,或者您有什么好的建议

查看完整回答
2 反对 回复 2016-12-07
  • 程序员硕
    程序员硕
    使用框架让我们开发产品变轻松了, 在生产角度是好的. 但我们以自身做为程序员的角度, 复杂的事情被写框架的程序员处理掉了, 只是让你简单填空就好, 如果你做的应用又没有什么复杂性的话, 长期下来你就没有训练出解决复杂问题的能力.你做的容易, 其他人也一样容易, 这样就感觉自身没有什么价值了. 逃离舒适区, 去解决复杂问题.可以看看框架是怎么实现的, 自己是是写写.也可以练习构建需求更负责的应用.shell工作范围只是python的子集.每个语言只做出一个博客其实没多少价值, 专精.
?
大咪

TA贡献785条经验 获得超332个赞

@刘硕老师 老师您好,Python作为一个代码简洁的语言,尤其是在web方面,而我学习的是java web方面的知识,经常在面试要求上看到会java的同时也要熟悉一门脚本语言,例如Python,这样的要求是为了在web端与java相辅相成吗?还望老师解惑……
查看完整回答
2 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    可能是公司的产品是由多种语言开发的, 并且python还大量用于系统运维和web测试.和java没什么关系.
  • 大咪
    大咪 回复 程序员硕
    哦哦好的,谢谢老师
?
wangaaty

TA贡献2条经验 获得超1个赞

@刘硕老师 其实平常也在群里问问题,老师和群里的朋友都会耐心解答,就不在这里问问题了,刘硕老师的课是我在慕课买的第一门课,里面的讲解让我知道了原来python还可以这样用,受益匪浅,非常感谢老师,希望慕课越办越好,刘硕老师推出新的课程,造福pythoner~

查看完整回答
1 反对 回复 2016-12-08
  • 慕女神
    慕女神
    这个群是购买了刘硕老师的Python高级编程技巧实战课程,专属的qq交流群
?
DangCode

TA贡献11条经验 获得超3个赞

@刘硕老师

今天真是机会难得,以前学python的时候有个问题,百度了好多,问了好多群,至今还压在心底没有解决。都是关于编码问题的。

在pyhton中经常会有’\u‘开头的编码 这个编码是不是python编译器实现的unicode编码,除了python在别的语言里是不是也有这种编码 还是这个是python独有的。

在python3中,编辑器编辑的代码都是utf-8编码,如果定义了一个字符串变量,那这个字符串肯定是utf-8编码,编译器在处理这个字符串的时候是不是先转换成‘\u’形式的unicode编码,然后在按照需要进行处理或者解码成其他的编码。

在python2中,编辑器编辑的代码编码是根据编辑器设定的编码,如果设定的为utf-8,也定义了一个字符串变量,字符串要是加个u那是不是编译器就直接存储为’\u‘那种格式的unicode编码了,不加u就存储为utf-8了

除了字符串变量,编辑器里的其他的字符,比如关键字字符 def 或者变量名字符,这些文本上的东西被编译器编译的时候是不是也都先转换成'\u'形式的编码,在处理。

编译器内部怎么运行的实在没办法看到,只能通过一些现象进行推测了,这些问题都是当初学习的时候的思考的一些问题,虽然对使用python并没有啥大的影响,但是今天机会难得,希望老师给解惑,谢谢。

查看完整回答
1 反对 回复 2016-12-07
?
DangCode

TA贡献11条经验 获得超3个赞

@刘硕老师

今天碰上一个问题 在字典解析中无法使用三元运算符

list_data=[ _ for _ in range(10)]

#此段被注释起来的代码语法错误 不知道怎么样才能正常工作
# dict_data = {k:1 if k%2==0 else k:2 for k in list_data}

#此段代码是变相实现上边那个代码 这中实现方式在效率上比上边的低么
dict_data = dict([(k,1) if k%2==0 else (k,0) for k in list_data])
print(dict_data)

问题在注释了

1:如和在列表解析中用三元运算符

2:两种实现方式在效率差多少

谢谢老师

查看完整回答
1 反对 回复 2016-12-07
  • 程序员硕
    程序员硕
    dict_data = {k: (1 if k%2==0 else 2) for k in list_data}, 第二种先生产列表, 再传给dict构造器, 肯定慢些.
  • DangCode
    DangCode
    老师好厉害 我还是思维被禁锢了 看了你的答案恍然大悟啊
?
艾尔森

TA贡献33条经验 获得超27个赞

@刘硕老师,我是一名软件工程的学生,然而我认为每天跟随课堂学习那些知识并不能完全满足我的好奇心,所以我开始不断的学习各种有趣的语言,之前有自学php 后来现在又开始在自学python(因为学校培养计划都没有这几项),但是我一直有一些问题: 您觉得我应该要先学一种语言学精?还是像这样先不断的尝试自己的兴趣,再向自己的兴趣进发?

还有在学python的过程中,有时会像课堂那样,学完一个知识点后尝试做一个小项目来巩固,在做项目的时候会有很多不了解的地方,我通常会去百度,但我还是依然不知道在学习python的过程中是以知识点驱动项目(学习很多的知识然后不依靠外界自己完成项目)好还是以现在这样以项目来驱动知识点(在做实验的过程中学习更多的知识)好?

最后是近来发现的一个问题,现在主流的python版本有2.7和3.5 但是有些课程会告诉我们2.7会被逐步的替代,而有些课程却依然使用2.7的函数和语法等 老师的建议是什么呢?

查看完整回答
1 反对 回复 2016-12-07
  • 程序员硕
    程序员硕
    兴趣可以广泛, 但应该有一个专精.我觉着学技术像挖一口井, 想挖得深口径需要足够宽, 才有施展空间, 但口径过宽的话, 精力就被消耗掉了.适度吧.知识点和项目结合着来, 相互检验.趋势上肯定是往python3走, 但差异并没有想象的大, 尤其对于新手.学会一个版本过度到另一个, 成本很低.
  • 艾尔森
    艾尔森
    谢谢老师 受益匪浅
?
NoBB_

TA贡献13条经验 获得超11个赞

@刘硕老师

关于Python的运行效率优化问题,程序员应注意些什么,能做些什么?

查看完整回答
1 反对 回复 2016-12-07
  • 程序员硕
    程序员硕
    我们通常使用是cpython, 也就是c实现的. 能了解或猜想出一条python的底层实现, 能避免写出效率糟糕代码.多了解一下技术细节, 比如了解列表切片背后意味的拷贝操作, 这样就不会在多重for语句中迭代切片.还有就是了解python的哪些函数内部是c的速度运行, 比如while比for慢, for比列表解析慢.
  • NoBB_
    NoBB_ 回复 程序员硕
    十分感谢
?
进击君

TA贡献5条经验 获得超8个赞

@刘硕老师 老师您好,对于因为业务导致的长期、间歇性用户并发量突增的网站,如果使用python开发,需要在开始之前做些什么设计?

查看完整回答
1 反对 回复 2016-12-06
?
car

TA贡献184条经验 获得超33个赞

@刘硕老师 你好,希望您能录制一套项目视频,你的实战课程的技巧介绍到很不错了,想要一套实战课程,最好是金融方面的

查看完整回答
1 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    实战课程, 慕课网有些已经在录制了, 比如web开发. 感谢你的支持和肯定.
?
xiaode_c

TA贡献1条经验 获得超1个赞

@刘硕老师 您好,我想请问一些,目前企业中,大多使用的是Python 2.x还是Python 3.x。

查看完整回答
1 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    我从来不觉着2.7和3之间有不可逾越的鸿沟, 趋势上肯定是向前发展.没必要太纠结尤其初学.
  • xiaode_c
    xiaode_c
    好的,多谢老师
  • Iamxiaoq
    Iamxiaoq
    这个以我的经历来看,2用得多一些,我去面试几家公司都是2,现在工作也是用2,但是平时我自己用的是3,正如老师说的肯定是往前看但他们之间的差别只要稍微注意一下,都不是事。
点击展开后面1
?
侠客岛的含笑

TA贡献552条经验 获得超285个赞

@刘硕老师,请问老师,在掌握了python基础(语法,基本的数据类型,条件判断和循环,函数等等),如何向python面向对象编程过度呢?因为没有其他语言面向对象的基础,所以有点吃力。

查看完整回答
1 反对 回复 2016-12-06
  • 程序员硕
    程序员硕
    面向对象需要经验的积累, 程序做得有点规模才能体会.际上讲面向对象的书, c++, java编程思想很不错.也可以看一些设计模式的书,感悟一下.
首页上一页123下一页尾页
  • 47 回答
  • 46 关注
  • 54507 浏览
慕课专栏
更多

添加回答

举报

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