学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊。于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节。没过多久我就发现了Python可以说是钦定的选择,它作为Linux的内置语言,传言风格简洁优美,功能强大。Python老生常谈的缺点是效率不高,哎,没办法,那些底层语言之所以还没有被淘汰就是因为自己更接近底层可以编出更有效率的代码。这对于我这种只接触过c语言的小白而言无所谓,我只关心Python自习之路是否能够顺利进行下去。
我的自学之路大致会按照以下计划走: 时间分为4周,全部自学,仅提供大纲。适用于Web方向: 1、Week1:读完《简明Python教程》,适应Python开发环境 2、Week2:写个爬虫,需要深入了解re、urllib2、sqlite3、threading,Queue等几个模块。需要用上多线程抓取,正则表达式分析,并发资源控制,重新开启程序自动继续抓取和分析 3、Week3:学习一种Web开发框架,推荐Flask、webpy之类的,学个数据库接口如sqlite3,写个简单的web应用如博客 4、Week4:给产品做个小功能并走完测试和上线流程,各个时期是不同的 以上计划我是在知乎上从一个大神那里看到的。理论联系实践,看起来比较合理。从我以前学习c语言的经历所得到的教训就是“纸上得来终觉浅,绝知此事要躬行”。我当时把一本500页的大部头给啃了,理论大师级别,可是实践部分没有跟上,其结果就是一开始还能编写一小段程序,过了两年再提起来c语言基本只剩下一个框架了,所有在理论方面的努力全部白搭。 再说一下我更新的速度,惯例每周一次。而且,每完成一个阶段性目标后就单独再发一篇博客进行总结。 接下来就可以跟随我的博客开始惊险刺激的Python从入门到弃坑之旅了。 本次Python相关知识点介绍按照《简明Python教程》分为六部分(嗯,因为我才刚刚看完第六章): 1.介绍 2.安装Python 3.最初的步骤 4.基本概念 5.运算符和表达式 6.控制流 值得思考的一些东西: 有两种方式构建软件设计:一种是把软件做得很简单以至于明显找不到缺陷;另一种是把它做得很复杂以至于找不到明显的缺陷。 ————C.A.R. Hoare 明显就是说Python语言大道至简嘛。 获得人生中的成功需要的专注与坚持不懈多过天才与机会。 ————C.W. Wendte 此句与诸君共勉。 1.介绍 总结一下就是,Python大概是世界上最好的语言什么之类的。 2.安装Python 继续总结,如果你现在在学Linux的话,你只需要记住三句话。 Linux自带Python。Linux自带Python。Linux自带Python。 Windows用户的自行从Python.org上下载安装,下一步下一步就行了,大概吧。 3.最初的步骤 从现在开始正经起来。 现在我只研究Linux命令行模式的Python编程问题。 此时有两种方式可以念出Hello World的咒语。 (1)使用带提示符的解释器 第一步:对着命令行打出 python(启动解释器,进入Python提示符) 第二步:print 'Hello World' 具体实现: $ python Python 2.3.4 (#1, Oct 26 2004, 16:42:40) [GCC 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> print 'hello world' hello world >>> 如何退出Python提示符? Ctrl+D (2)使用源文件 挑选一个编辑器 我现在只会Nano,不过对付前六章的内容已经够了。 使用源文件 在nano编辑器中键入如下内容: #!/usr/bin/python # Filename : helloworld.py print 'Hello World' 命名为helloworld.py,保存并退出 chmod +x helloworld.py helloworld.py 输出为:Hello World 这一部分在入门过程我认为是极为重要的,有一定编程基础的看起来才不会卡住。 0基础的同学请出门左转去仔细看原著,不懂的去百度,谢谢。 4.基本概念 常量: 字符串,数 (值不可变) 数: 在Python中有4种类型的数————整数、长整数、浮点数和复数。 字符串: 字符串是字符的序列。字符串基本上就是一组单词。 单引号,双引号,三引号,转义符\,自然字符串(前缀r或R),,Unicode字符串, 字符串是不可变的,按字面意义级联字符串 注:这部分比较繁琐,不便于在这里列出来。去看原著很容易理解。 变量: 变量只是你的计算机中存储信息的一部分内存。与字面 意义上的常量不同,你需要一些能够访问这些变量的方法,因此你给变量名字。 标识符的命名: 这部分感觉全世界的要求都一样。 标识符由字母数字下划线组成,第一个字符必须为字母或下划线,对大小写敏感, 别和一些系统自带标识符冲突 数据类型: 变量可以处理不同类型的值,称为数据类型。基本的类型是数和字符串。 在后面的章节里面,我们会研究怎么用类创造我们自己的类型。 对象: 记住,Python把在程序中用到的任何东西都称为对象 。这是从广义上说的。因此我们不会说“某某东西 ”,我们说“某个对象 ”。 如何编写Python程序 下面是保存和运行Python程序的标准流程。 1. 打开你最喜欢的编辑器。 2. 输入例子中的程序代码。 3. 用注释中给出的文件名把它保存为一个文件。我按照惯例把所有的Python程序都以扩展名. py保存。 4. 运行解释器命令python program.py或者使用IDLE运行程序。 逻辑行和物理行: 物理行是你在编写程序时所 看见 的。逻辑行是Python看见的单个语句。 Python假定每个物理行对应一个逻辑行 。 默认地,Python希望每行都只使用一个语句,这样使得代码更加易读。 如果你想要在一个物理行中使用多于一个逻辑行,那么你需要使用分号(;)来特别地标明这 种用法。分号表示一个逻辑行/语句的结束。 我强烈建议你坚持在每个物理行只写一句逻辑行。仅仅当逻辑行太长的时候,在多于一 个物理行写一个逻辑行。这些都是为了尽可能避免使用分号,从而让代码更加易读。 \之后回车,可以在多个物理行中写一个逻辑行。被称为明确的行连接。 相对应的存在暗示的行连接。以后会提到。 缩进: 空白在Python中是重要的。 事实上行首的空白是重要的。它称为缩进。 在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。 你需要记住的一样东西是错误的缩进会引发错误。 如何缩进 不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。 强烈建议在每个缩进层次使用 单个制表符 或 两个或四个空格 。 选择这三种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即只使用这一种风格。 总结: 没办法,概念总是枯燥的。当时我自己看书的时候感觉内容并不多,没想到总结起来还是很烦。在掌握这些概念之后,接着就可以接触更多的实际编程而不会犯很多无谓的错误了。 5运算符与表达式 简介: 一个表达式可以分解为运算符和操作数。 运算符: +,-,*,/,**,//,%,<<,>>,&,|,^,~,<,>,<=,>=,!=,not,and,or 这里不用介绍什么优先级,反正记不住。而且实际应用中只需要合理使用()就行了。 表达式: 例5.1 #!/usr/bin/python # Filename: expression.py length = 5 breadth = 2 area = length * breadth print 'Area is', area print 'Perimeter is', 2 * (length + breadth) 输出: $ python expression.py Area is 10 Perimeter is 14 不用问为什么,照着敲一遍。 总结: 我们已经学习了如何使用运算符、操作数和表达式——这些是任何程序的基本组成部分。接下 来,我们将学习如何通过语句在我们的程序中使用这些部分。 6.控制流 在Python中有三种控制流语句——if、for和 while。 if语句: if语句用来检验一个条件,如果条件为真,我们运行一块语句(称为if-块 ),否则我们处理 另外一块语句(称为 else-块 )。 else从句是可选的。 例6.1 #!/usr/bin/python #Filename:if.py number=23 guess=int(raw_input('Enter an integer:')) if guess==number: print 'Congratulations,you guessed it.' print '(but you do not win any prizes!)' elif guess<number: print 'No,it is a little higher than that' else: print 'No,it is a little lower than that' print 'Done' 输出: $ python if.py Enter an integer : 50 No, it is a little lower than that Done $ python if.py Enter an integer : 22 No, it is a little higher than that Done $ python if.py Enter an integer : 23 Congratulations, you guessed it. (but you do not win any prizes!) Done 注:动手去敲一遍很有用,以至于我宁愿删掉内容介绍也不删这部分代码。 while语句: 只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓循环语 句的一个例子。while语句有一个可选的else从句。 例6.2 #!/usr/bin/python #Filename:while.py number=23 running=True while running: guess=int(raw_input('Enter an integer:')) if guess==number: print 'Congratulations,you guessed it.' running=False elif guess<number: print 'No,it is a little higher than that.' else : print 'No,it is a little lower than that.' else: print 'The while loop is over.' print 'Done' 输出: $ python while.py Enter an integer : 50 No, it is a little lower than that. Enter an integer : 22 No, it is a little higher than that. Enter an integer : 23 Congratulations, you guessed it. The while loop is over. Done for语句: for..in是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目。 例6.3 #!/usr/bin/python #Filename:for.py for i in range (1,5): print i else: print 'For loop is over.' 输出: $ python for.py 1 2 3 4 The for loop is over break语句 break语句是用来终止循环语句的,即哪怕循环条件没有称为False或序列还没有被完全递归, 也停止执行循环语句。 一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。 例6.4 #!/usr/bin/python #Filename:break.py while True: s=raw_input('Enter something:') if s=='quit': break print 'Length of the string is',len(s) print 'Done' 输出: $ python break.py Enter something : Programming is fun Length of the string is 18 Enter something : When the work is done Length of the string is 21 Enter something : if you wanna make your work also fun: Length of the string is 37 Enter something : use Python! Length of the string is 12 nter something : quit Done continue语句: continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。 例6.5 #!/usr/bin/python #Filename:continue.py while True: s=raw_input('Enter something:') if s=='quit': break if len(s)<3: continue print 'Input is sufficient length' 输出: $ python continue.py Enter something : a Enter something : 12 Enter something : abc Input is of sufficient length Enter something : quit 总结: 至此我们已经学习了如何使用三种控制流语句——if、while和for以及与它们相关的break和continue 语句。它们是Python中最常用的部分,熟悉这些控制流是应当掌握的基本技能。 讲道理,Python这六章的知识对比起C语言真的算不上什么,感觉花上一周时间足够掌握Python基础,而剩下的就需要结合理论在实践中不断地提升自己了。