正则表达式

简介

字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在。比如判断一个字符串是否是合法的Email地址,虽然可以编程提取 @ 前后的子串,再分别判断是否是单词和域名,但这样做不但麻烦,而且代码难以复用。


用函数还是用复杂的表达式

要不要使用复杂表达式

Perl语言的原作者Larry Wall曾经说过,伟大的程序员都有三个优点:懒惰、暴躁和自负。乍一看这三个词语没有一个是褒义词,但在程序员的世界里,这三个词有不同的意义。首先,懒惰会促使程序员去写一些省事儿的程序来辅助自己或别人更好的完成工作,这样我们就无需做那些重复和繁琐的劳动;同理能够用3行代码解决的事情,我们也绝不会写出10行代码来。其次,暴躁会让程序员主动的去完成一些你还没有提出的工作,去优化自己的代码让它更有效率,能够3秒钟完成的任务,我们绝不能容忍1分钟的等待。最后,自负会促使程序员写出可靠无误的代码,我们写代码不是为了接受批评和指责,而是为了让其他人来膜拜。


进程和线程

简介

多任务

现代操作系统包括Mac OS X,UNIX,Linux,Windows等,它们都是支持“多任务”的操作系统。

什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。


IO编程

什么是IO

IO在计算机中指输入和输出(Input/Output)。由于程序运行时,数据是在内存中驻留,并由CPU这个超快的计算核心来进行处理的(处理时会把数据从内存载入到CPU的高速缓存中),而涉及到数据交换的操作,比如磁盘读写、网络传输等的时候,就需要使用IO接口来协调了。


错误、调试与测试

简述

在程序运行过程中我们总会遇到各种各样的错误。有的错误是程序编写有问题造成的,比如本来应该输出整数结果输出了字符串,这种错误我们通常称之为bug,bug是必须修复的;有的错误是用户输入造成的,比如让用户输入email地址,结果得到一个空字符串,这种错误可以通过检查用户输入来做相应的处理;还有一类错误是完全无法预测的,比如写入文件的时候,磁盘满了,写不进去了,或者从网络抓取数据,网络突然断掉了。这类错误也称为异常,在程序中通常是必须处理的,否则,程序会因为各种问题终止并退出。Python内置了一套异常处理机制,可以帮助我们处理这些错误。


面向对象高级编程

前面一章介绍了OOP最基础的数据封装、继承和多态3个概念,还有一些类和实例的操作。而在Python中,OOP还有很多更高级的特性,这一章会讨论多重继承、定制类、元类等概念。


面向对象编程

基本概念

面向对象编程 —— Object Oriented Programming,简称OOP,是一种编程思想。OOP把对象作为程序的基本单元,一个对象不仅包含数据还包含操作数据的函数


模块

在开发过程中,一个文件里代码越长就越不容易维护。

为了编写易于维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。


函数式编程

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算


高级特性

在Python中,代码越少越简单约好。基于这一思想,后面的几个篇章介绍Python一些非常有用的高级特性。

比方说构造一个1~99的奇数列表,可以简单地用循环实现: