Chinaunix

标题: 有奖讨论:开发实战之Python与我不得不说的故事(获奖名单已公布-2014-6-5) [打印本页]

作者: timespace    时间: 2014-05-16 18:05
标题: 有奖讨论:开发实战之Python与我不得不说的故事(获奖名单已公布-2014-6-5)
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4140940-1-1.html

     Python已经23岁了,作为一门高级动态语言,如今依然是LAMP的重要组成部分,不仅在WEB开发、系统管理、科学工程计算等领域十分活跃,还在多媒体CG(Industrial Light & Magic)、编译器工具链(LLVM,GDB)等不广为人知的领域发光发热。简单易用、灵活强大的特点成就了Python,而人们乐于使用Python也源于其编程理念---Python之禅(The Zen of Python):
   * 显式优于隐式(Explicit is better than implicit)
   * 强调可读(Readability counts)
   * 倾向一种最优选择,而不是差不多的多种选择(There should be one-- and preferably only one --obvious way to do it.)
更多内容请在解释器中输入“import this”

    Python生态系统的前景一片光明。Python 3经过5年多的持续开发,已经相当成熟稳定,很多第三方库成功迁移,Arch Linux和FreeBSD已经将Python 3作为默认版本,Ubuntu和Fedora团队迁移正在进行中,这些都意味着Python 3真正进入了普及的快车道。作为Python的使用者,也应该跟进这种趋势,享受最新版Python带来的便利。


本期话题
  1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
  2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
  3. 对Python 3的认知和期待


本期奖品
有精彩分享的网友,将获得《Python开发实战》一本,共5本。
本书来自真正的开发现场,是众多极客在真实项目中的经验总结。


活动时间:
2014年5月16日 - 5月30日


活动要求
1、 要言之有物,不能低于20个字。
2、 本次话题主要关注Python学习和开发经验,其他问题可能不做重点


图书信息

作者: (日)BePROUD股份有限公司  
译者: 盛荣
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115320896
上架时间:2014-5-6
出版日期:2014 年5月
开本:16开
页码:1
版次:1-1


作者: send_linux    时间: 2014-05-16 18:26
欢迎大家多多参与~
作者: laputa73    时间: 2014-05-16 18:55
本帖最后由 laputa73 于 2014-05-17 21:16 编辑

作为一个perler,很久以前就在不断给自己一个转换到python的理由.
不过时至今日,对于日常项目而言,perl仍然是第一选择,python是第二选择
单从语法和功能上讲,前者不能而后者可以的应用场合好像确实不多.
当然,结合到具体的实际项目,由于python的普及是不争的事实,有不少新的开源项目都是python做的.
当然也没必要作转换,拿来就用就好.
比如openstack
不过python还是有不少不成熟的地方.
pypi的质量参差不齐.要有一个评分机制就好了.
觉得比较好的模块,
PyQt4,
主要是用,webkit核心的headless浏览器, 用来作web测试.不过安装有点麻烦, 现在改用phantomjs了
paramiko
原生的ssh模块,搞netconf用的.感觉比perl的原生ssh好用一点.不过一般的expect模块 也够用了.
gevent
  写协程用这个还是可以的.
psnmp
  没得说,搞系统监控的,没snmp怎么好意思混(golang要加油).

关于p2/p3.我的想法是不当先行者。毕竟没那个能力去趟坑。
啥时候redhat AS预装p3了,我就用p3,否则还是优先p2.
作者: emperor9    时间: 2014-05-16 21:27
python与ruby在未来会甩开perl九条街。其实不需要太多的佐证,知道google选择他们并且出guide就足够其地位了。不想更新自己这一条理由就够你不转了。。。
作者: renxiao2003    时间: 2014-05-16 21:40
他怎么这么冷清啊。
作者: 小飞侠xl    时间: 2014-05-16 22:44
1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
目前自己在编写一个分析网络流量的程序,用的正是python。鉴于目前python的活力,以后也会持续关注和使用python
2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
python太好用了对我来说的几个好处:
(1)查文档太方便了。任何知识点货问题,baidu,google一搜一大堆
(2)各种库太多,特别好用
(3)代码读起来很方便
(4)通过对python的学习,之前的一些想法可以通过自己的努力来实现,再也不用为找不到工具担心
对新手的建议:
鉴于本人也是新人一枚,可能也不太有什么建议,说说我自己吧
当初开始选择编程语言的时候,看过java,perl,c ;
说实在的java实在是入门挺难的(对我来说,本人比较笨)。
perl的话自己看过那本骆驼书,写过一些脚本,其实平时使用也够了,只不过后来不太用了,并且代码读起来说实在的不如python好
c是因为大学的时候学过,有些基础,看了一阵子也没有坚持下来。
后来知道了python,最初是很羡慕那些用python写爬虫的,觉得挺酷;后来越发觉得python的重要性,也最终选择了python学习,我的入门书籍是《python核心编程》说实在的很适合新手,我的学习方法就是先看基础,做后面的练习题,然后因为运维中一定会用到脚本,就慢慢的通过python来写,其实说实在的真不用单纯为了学语言而学,用着用着也就会了。拿到这么一本厚书千万别被厚度击倒,一点点看然后结合实际环境会学的很快的。
3. 对Python 3的认知和期待
目前还是使用python2.7  听过2和3的兼容性一直有些问题,希望3能尽快的解决这个问题。
不久以后我也会开始看看3的一些新东西了(听说跟2还是有些不同)
暂时写这么多吧,想到了再补充

作者: expert1    时间: 2014-05-16 22:46
可读性我很喜欢,尤其那个缩进,非常优美,上手很快,尤其对OPS来说,模块丰富,有点C语言基础,看点基础都能写shell脚本办不到的系统管理脚本了。

不爽的地方,假如copy的代码没有排版好,是很烦人的,所以一定要放到block里面。
作者: jimmy-_-lixw    时间: 2014-05-16 22:59
本帖最后由 jimmy-_-lixw 于 2014-05-29 13:49 编辑

好活动,第一时间支持。
补充下试读章节后的读后感。

1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
我的yunAS项目就部分功能使用Python编写。
python在线开发环境,其中有控制台、web框架支持 Django、web.py、flask,有mysql等等。
例如使用 web.py 创建一个 web 网站系统,数据库我准备使用Python自带的sqlite,因此不用另安装其他数据库。
同时数据库我是用sqlite,因为主要是我并不会做一个大大大大的blog,用mysql是不是太浪费了?
而且sqlite现在python也集成了,用起来很方便。


2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
关于Python使用哪种数据库问题,这个目前没有统一,类型多代表每种方式都有去接触。
目前在web.py 0.23版本中,目前只支持3种数据库:postgres、mysql、sqlite
当然也可以用mysql,很流行的,如果想使用mysql的话,可以使用“MySQLdb”。
不用数据库,直接存储TXT,joson文件格式,自定义格式也可以的。

还有个问题是,初学者比较纠结的疑问,比较疑惑。
那就是Python Web 框架哪个入门快?Django、Tornado、web.py? 该怎么选择?


3. 对Python 3的认知和期待

目前了解到Python 版本 3,也被称为 Python 3000 或 简称Py3K。
版本兼容问题,Python 3 是 Guido van Rossum 功能强大的通用编程语言的最新版本。它虽然打破了与 2.x 版本的向后兼容性,但却清理了某些语法方面的问题。
Python 社区是否会接纳版本 3 还尚在人们的猜测之中。打破向后兼容性意味着将要为两种版本提供支持。

一些项目开发人员可能不太想迁移其项目,即便是使用版本 2 到 3 的转化器。就我个人而言,我发现从 Python 2版本 迁移到 Python 3 其实不过是对几个事情的重新认识。很多变化是早就在人们意料中的,比如对 dict 的实质更改。执行 print() 远比执行 Java 的 System.out.println() 容易得多,所以的确能带来一些好处,学习起来也相对容易。它当然不会像从 Python 迁移到 Java 或 Perl 语言那样变化强烈。

期待 Python延续其本身的优雅规范、简洁明晰、易学易用、类库丰富,但效率稍差,有些人不喜欢它对空白符敏感的特性。



作者: jimmy-_-lixw    时间: 2014-05-16 23:00
python是快速开发的好工具。
作者: action08    时间: 2014-05-17 06:39
ruby现在很强势的,几个重量级别的系统都是这个来的
作者: qingduo04    时间: 2014-05-17 06:43
好活动,支持!

作者: timespace    时间: 2014-05-17 10:17
回复 3# laputa73
语言选择么,一个要看个人喜好,更多还是团队环境决定的。Python标准库已经十分广泛强大了,再选择几个相应问题域流行的第三方模块就能搞定问题了,不用到pypi大海捞针


   
作者: timespace    时间: 2014-05-17 10:32
小飞侠xl 发表于 2014-05-16 22:44
1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
目前自己在编写一个分析网络流量的 ...

写的不错。py2是2000年出品的,累积了诸多不合理设计,以及日渐凌乱的标准库,所以py3的不兼容是有意的。如果是初学,没有什么兼容性负担,而且能够选择Python环境,最好从py3走起,就能享受很多强大的新特性,py2.7并入了部分py3.1的特性,但那也是5年前的功能了,py2.7一直支持到2020年,仅限bugfix不会有任何新功能。
作者: to407    时间: 2014-05-17 18:13
回复 13# timespace


    从我个人而言,我会仍然坚持用一段时间的python2 。 迁移还是需要很大成本的,特别是python 2 deadline没那么早来临的时候。

   python3 不兼容2的决定 并不总是明智的,并不一定给客户满意的答案,相反是要逼客户自己去做决断, 有点两难的选择。
作者: to407    时间: 2014-05-17 18:17
回复 3# laputa73


    pypi确实很多问题,而且很多包的跨平台(比如从linux到solaris)支持很差。 前一段时间折腾psutil, 然后发现居然hardcode调用ps命令。。 根本就不考虑unix用户的心情~
作者: mainfunc    时间: 2014-05-17 20:25
公司目前的自动化部分主要采用的开发语言是python,使用的库除了Build in的library外,主要是PyQt4, django, Crypto, paramiko, mysqlDB库等,全部代码累计有5万行左右。使用python最大的好处是有非常丰富的library供使用,避免了重复造轮子,无论有无丰富的开发经验都可快速上手,节省了公司成本,亮点就是python语法比较灵活,比如对于链表的数据结构,list可以作为任何数据类型的容器,而c++,java这样的并没有完全泛型的容器。 比较惨痛的教训是尽管python糙快好省,但是由于开发者以往的经验并不相同,一些从C++转过来的程序员能有意识的去规范命名,使用设计模式等,而一些直接写python的程序员堆栈意识淡薄,写的代码随意性很大,导致维护成本很高。
        有些程序员写的代码比较喜欢捣鼓算法,但是往往忽略一些编程规范,这些在后期往往导致很高的成本。
        举个简单的例子,有的程序员会用python去写一个单例,有的却缺乏这方面的意识。
        对Python 3的认知就是据说比较完整的解决了编码问题,另外还引入了我期待的枚举类型,但是总体上,我还是更习惯于使用Python2.7系列。
作者: laputa73    时间: 2014-05-17 20:46
标题: er
本帖最后由 laputa73 于 2014-05-18 17:45 编辑

回复 4# emperor9


   需要用到python的地方自然会用.
   我只是觉得没有动力去转换现有系统.
   说起google,不是已经开始嫌弃python了吗.不过语言好不好用,没必要扯大旗.不然,java不是也要提一笔?
   ruby/ror的应用面主要还是在web。

  我对python的主要期待,还是能够成为真正的下一代java
  而不是下一代perl.
作者: CUTianrui007    时间: 2014-05-18 08:53
1.        在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
在实际项目中,Python一般都作为辅助工具来使用,那是极好的。比如我们的软件开发中,Python经常对软件输出结果进行统计,并将其嵌入到Makefile中,做到自动调用,自动统计。现在使用的还是2.7版本。
  2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
亮点我觉得还是Python的面向对象的技术,通过阅读Python才知道,作者思路的巧妙,一个对象头就可以实现对象间的自由切换,这个和C++有得一比。Python的面向对象技术,很质朴,很巧妙,用简单的C就可实现如此功能,强大。
对于Python学者者来说,我觉得源码是最好的老师,只要用Python,最好都要看源码,这样才最能体会Python为什么如此强大。


  3. 对Python 3的认知和期待
Python3中,我觉得界面开发要进一步加强,这个方面Python不怎样,都是第三方软件在支持。

作者: 小飞侠xl    时间: 2014-05-18 09:13
了解了,看来有必要抓紧看看python3 了。回复 13# timespace


   
作者: timespace    时间: 2014-05-18 11:48
回复 15# to407
跨平台啊,这是Linux/UNIX一直以来纠结的地方,看Linux有多少发行版吧,都是各自的包管理工具和源来保证兼容,其他方式免不了折腾。通常pypi上的纯Python实现能很好的跨平台,而包含shell或C的实现最好是用平台的包管理工具(yum/apt-get/port/...)安装,否则时刻准备折腾


   
作者: fire_cpp    时间: 2014-05-18 17:24
本帖最后由 fire_cpp 于 2014-05-18 17:26 编辑

1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
我们用python2.x做几乎所有事:WEB(Django)、科学计算,专家系统(pyke)。

  2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
亮点:简单、开发迅速、动态语言、易读
痛点:运行效率较编译型、静态型语言低
新手建议:尽早进行实际应用,语法什么的一天可以学完了

  3. 对Python 3的认知和期待
没用过,一些库无法使用它。期待老库尽快迁移。
作者: emperor9    时间: 2014-05-18 20:13
懒惰真的可以有很多借口,所以有些人就是冥顽不灵的。勤快且与时俱进是一个混在it行业里必备的属性。不管python3目前是多么的不方便,跟上了,自然后面就会有作用。假如都完美了,所有的都该停滞不前了。。。
作者: ylky_2000    时间: 2014-05-19 07:55
这个好,留力,下周认真回帖。
作者: huohulwz    时间: 2014-05-19 10:20
本帖最后由 huohulwz 于 2014-05-19 11:07 编辑

1,Python 作为我们2个游戏项目的主力开发语言,承载了服务端底层,服务端逻辑,服务端管理控制工具的全部开发,自动化客户端的打包,并为策划提供了表格相关的实用的工具,为美术提供了图片批量处理的工具;
2,Python 的标准库很强,各种其他需求都能找到第三方的包,如我们项目用到的有xls读取库 xlrd,图片处理库 PIL;Python2的中文有时候会蛋疼,建议大家尽量使用对中文友好的 Python3;
3,Python3 是现代化的语言,就冲对 unicode 的良好支持,大家也要多用用啊,虽然有些库还没有适应 Python3,但是如果是做新项目,那就投向 Python3 的怀抱吧!
作者: to407    时间: 2014-05-19 10:30
回复 20# timespace

倒不是默认安装的路径问题,而是命令选项不兼容啊。

他调用了 ps -aux, 但在solaris下就不能加'-' 只能用ps aux...


   
作者: to407    时间: 2014-05-19 10:54
我倒有个问题,  这边 有没有传统行业 推广python3的经历?

互联网行业 迭代是非常快的, 但传统行业,企业级用户那里就没这么方便。 而企业级用户恰又是大型软件的服务对象。

1. python3大量不兼容python2
2. python2 仍然有好几年的服务期
3. python2 经过了企业界的大量支持和验证

怎么样劝说企业级大客户来做出改变?
作者: yuqingjiushi    时间: 2014-05-19 11:56
本帖最后由 yuqingjiushi 于 2014-05-19 12:08 编辑

  1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
      python和运维基本上联系在一起的,包括监控服务器、网络质量、数据的并发采集以及部分客户端桌面程序
     版本主要是2.6.7 因为2.6.1低版的里面的bug尤其是multiprocessing的bug严重影响使用,SO,全部使用的是2.6.7
     重要库:
        运维类的:multiprocessing、 threading 、 socket、 logging、 MySQLdb、paramiko、pypcap ....
        web类的:django tornado
        桌面客户端:QT

  2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
      亮点:只有想不到的第三方库
      痛点:第三库以python自身文档的不完全。django从0.96版进化到1.0版的文档居然经历了三年左右的时间,阿门的
      新手建议:程序这玩意儿没多难,别只不停的想,动手去实现一把,很容易。

  3. 对Python 3的认知和期待
     一直在试用,生产环境不敢使用,它的兼容性导致的要改写项目,成本太高。。。。。。。。。。
     期待python和liunx可以达成默认安装高版本的认识,哈哈哈 这样升级就可以和老板说
     liunx现在系统默认的,很稳定了
   
作者: yuqingjiushi    时间: 2014-05-19 11:56
本帖最后由 yuqingjiushi 于 2014-05-19 12:01 编辑

sorry sorry sorry
作者: zylthinking    时间: 2014-05-19 12:57
timespace 发表于 2014-05-16 18:05
Python已经23岁了,作为一门高级动态语言,如今依然是LAMP的重要组成部分,不仅在WEB开发、系统管理、科 ...


Python已经23岁了,作为一门高级动态语言,如今依然是LAMP的重要组成部分......................
颠覆我的认知
作者: timespace    时间: 2014-05-19 13:51
回复 24# huohulwz
有道理,只有遇到多语言下py2的蛋疼问题,才能领会py3中str和bytes分离的重要性。


   
作者: to407    时间: 2014-05-19 14:56
zylthinking 发表于 2014-05-19 12:57
Python已经23岁了,作为一门高级动态语言,如今依然是LAMP的重要组成部分......................
颠覆 ...


  基本上python-perl-php 都自行认领最后一个字母啦
作者: to407    时间: 2014-05-19 15:06
回复 30# timespace


对    unicode 的支持 确实是非常大的进步,这是python3的优势~
作者: cryboy2001    时间: 2014-05-19 15:27
支持一下,好书!
作者: yunas    时间: 2014-05-19 15:32
Python3版本与Python2之间的版本应该如何选择。
作者: lvxinzhi    时间: 2014-05-19 16:43
python 这个语言,简单明了,能像java一样简单的跨平台,又不像Java一样臃肿,在linux中,已经被默认安装
开发windows界面也有wxpython,QT等这样强大的UI类库,

作者: to407    时间: 2014-05-19 18:48
yunas 发表于 2014-05-19 15:32
Python3版本与Python2之间的版本应该如何选择。


我个人建议,如果是大企业或者比较成熟的应用,还是用python2吧, 互联网企业,新项目可以转python3
作者: apzc2529    时间: 2014-05-19 22:30
Python在科学计算领域领很好用。我在平时的计算及数据处理中便是主要采用Python。

Python+Numpy/Scipy+Matplotlib 基本上可以替代Matlab。
分子建模软件Pymol是用Python写的,VMD提供了python的接口。
分子动力学软件lammps也提供了Python接口。

因此Python成了我工作中使用最多的工具。
作者: nmweizi    时间: 2014-05-20 10:43
python模块资源丰富, 语言实现功能时快速,性能 问题也可以采用些技术加快。
用python实现微信公众平台,,上线使用只用了2天,非常快快。
用pandas做数据分析,方便快捷,功能多多。
用python实现网络管理和应用的快速部署。

作者: badb0y    时间: 2014-05-20 13:21
1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
主要拿python做一些脚本及WEB服务,主要用的有web.py fabric django openstack

2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
亮点:简单、方便、易写    痛点就是代码多的时候,调试非常的蛋痛

3. 对Python 3的认知和期待
对python3比较感冒,一直使用2.6-2.7。期待性能上更好,语法上最好和2.7相近,要不再学习一次很郁闷的!
作者: timespace    时间: 2014-05-20 15:08
回复 39# badb0y
py3早期主要是IO和字符串性能明显落后py2,现在区别不大,以后还会改进。py3和py2的语法几乎没区别吧,核心数据结构str和dict用法有差异,人们都被“不兼容”的名头吓到了,到官网上看下文档和写几行代码,就会发现区别不大,但py3更加清晰一致,有机会就用吧,是未来的资本。

   
作者: GB_juno    时间: 2014-05-20 18:40
  1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
在项目中python一般都是用来做脚本,包括日志分析、“粘贴”程序等等,re/sys/os等的基础库对日志分析以及操作系统管理是必须的,而“粘贴”程序的话就得看要粘起来的程序的通信协议了。

  2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
亮点:上手飞快,强大的标准库+众多库,能够很容易就结合已有程序进行操作,易用性很强,可读性很好
痛点:想要pythonic不是那么容易,不然就只能用别的语言思维来写python,这样写出来的代码不优雅,花心思。
对新手建议:先简单了解语法,再学习一下标准库等之类的,从实践中学python,python的学习中库的学习比其他的要重要得多。

  3. 对Python 3的认知和期待
Python3不兼容前面的python2程序,为了python的发展和构思能够做出这样的决定确实不容易。另外python 3 应该是默认unicode编码,之前刚看正则指引上看到的。一直以来用的python 2,轻易不会向python 3 转,要不就是linux发行版自带python 3,否则基本上不会考虑了。
作者: amarant    时间: 2014-05-20 19:32
python是我最喜欢的语言 顶一个
作者: badb0y    时间: 2014-05-21 08:49
回复 40# timespace

哈哈,有时间装起来看看,主要是好多软件现在不支持PYTHON3呀
   
作者: baopbird2005    时间: 2014-05-21 20:35
1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
在我们的项目中Python 主要用来制作打版本的工具,可以实现一键发布。

2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
很实用,开发周期短,可移植性很强。标准库很丰富


3. 对Python 3的认知和期待
兼容性有点差。兼容性有待改进啊
作者: vallrock    时间: 2014-05-23 17:38
python用来做一些小工具确实蛮实用的,目前我也只用到这种层次,感觉python有一种很简单的美感,读起来也很舒服。目前还是用2.6,python 3各种不支持还是没去尝试~
作者: jimmy-_-lixw    时间: 2014-05-23 19:14
本帖最后由 jimmy-_-lixw 于 2014-05-30 13:30 编辑

Python方面的好书籍。
刚补充下试读章节后的读后感。
作者: joechl    时间: 2014-05-27 11:38
没想到python是个很好的开发工具,越来越被大家接受,做socket这样的程序可以吗。
作者: timespace    时间: 2014-05-27 12:02
回复 47# joechl
没问题。底层通信用socket模块,是基于BSD socket的封装,如果用过C版本,这应该毫无障碍;高层应用协议HTTP/FTP/SMTP等等,都在标准库实现了,拿来即用。


   
作者: 初识orcl    时间: 2014-05-27 13:30
timespace的场子我的捧一下,mark 晚上补充。
作者: 萌库里    时间: 2014-05-28 14:45
由于接触自动化运维还有openstack,所以接触了python,刚接触没多久,最直观的感受就是其在linux下简单易用,努力学习中
作者: gvim    时间: 2014-05-29 13:19
Python 很顺手,做各种工具实在好用。
作者: lkkkun    时间: 2014-05-29 16:41
1. 在项目中Python扮演的角色,包括但不限于项目类型/Python版本/重要库
   在项目中Python主要用于代替shell脚本的相关内容,起丰富的库以及api,给我编写带来了很大的方便。
2. 使用Python过程中遇到的亮点和痛点,以及对新手的建议
     要选择一个好的编辑器,不然会因为缩进的,影响程序的运行结果。
      
  3. 对Python 3的认知和期待
   Python3 加强了对函数的封装,之前比如print,在python3给我print()了。
作者: ylky_2000    时间: 2014-05-30 14:04
jimmy-_-lixw 发表于 2014-05-16 22:59
好活动,第一时间支持。
补充下试读章节后的读后感。


好。。支持。
作者: ylky_2000    时间: 2014-05-30 14:17
     先通报下,我学习python的时候是3.3版本了,市面上也有很多3.0版本的教材了,有福了,我在纠结版本上选择了很久,毕竟学习过的人都知道2.7是最稳定的版本,也是资源最多的版本,语法上跟3.0后的版本区别还是很大的,我是个接触这个不多的新手,之前也学习过php、shell编程方面的知识,算有一定的基础。
       Python是面向对象、直译式语言,居然可以面向对象,这个很让我惊讶,1989年底发明,第一个公开发行版发行于1991年,所以版主说23年的历史的确没有错,有信心了吧。
     从学习过程来看,Python语法简捷而清晰,自由奔放的感觉,具有丰富和强大的类库。能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。素有胶水语言的称号,我接触语言不多,但是觉得比php更简便。
      常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
        Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,可移植性非常好,可以在linux、windows、苹果等多种操作系统上运行,并且被大量用户所欢迎的、用途广泛的语言。Python限制性很强的语法,使得不好的编程习惯(例如if语句的下一行不向右缩进)都不能通过编译。这里很多新手有点点不习惯,不过习惯了就好了,,我作为新手遇到的最重要的一项就是Python的缩进规则。

    按照我的经验,自学能力很重要+很好的实践操作,没有代码的积累量,想搞开发,请绕道。
       一般,看完控制流,运算符与表达式,函数,列表,元组、字典,一些模块等(这些基本上就是编程的基础),不过看的时候要边看边练习,不用看的很仔细,只要明白、会用即可,基本上就可以写一些小的脚本了,真正的学习其实是在自己写应用脚本或程序的时候,在写的时候肯定会有不明白的东西,然后就去网上查资料,一来二去就明白了。遇到不会的东西,最好是自己先查资料自己解决,这样印象深刻,实在弄不明白找个技术好点的人点一下就可以。刚开始的时候,也许实现某个功能你需要20行的代码,随着知识的积累,不断的去完善脚本,有可能过一段时间你重写这个功能只需要10行或是更少。
         我学习python最多的是为了写一些运维脚本,运维这工作,很多时候都是重复性的工作,这样就写点脚本,自动去执行,减少了工作量,提高了效率,保证了工作的可靠性,避免了手动的误操作,又学到了东西,何乐而不为呢那?
        以一个打印hello word的python脚本(大部分语言学习都是从hello world开始的吧?),能反应出python脚本的格式,养成良好的脚本编写习惯。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os,sys,datetime,time,MySQLdb

def main():
     print “hello word”
if __name__=="__main__":
     main()
简单说一下各个部分的作用:
# -*- coding: utf-8 -*- 这个是设置脚本的编码,不多说。
import os,sys,datetime,time,MySQLdb 这个是导入你脚本中使用的python模块。
def main(): 定义一个函数
if __name__=="__main__":如果是一个脚本的话,这句话可有可无,但是建议使用他。比如你现在写了一些程序,都存在单独的py文件里。有一天你突然想用1.py文件中的一个写好的函数来处理现在这个文件中的事物,你当然可以拷贝过来,你也可以把那个文件加上if __name__ == "__main__":这句话,然后从你现在写的文件中import 1就可以用1.py中的函数了。
        学习是一种既痛苦有快乐的事,以上是我的一些建议和学习的经验,写的不好,大家多多支持啊。最后祝各位在路上的朋友,好运。。。
学计算机的,不懂编程,不仅仅out了,更等于自断筋脉了。。。
作者: huobing1115    时间: 2014-06-09 08:36
来学习的,赞




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2