1 / 10
文档名称:

Python良好编程习惯.doc

格式:doc   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Python良好编程习惯.doc

上传人:wc69885 2015/6/5 文件大小:0 KB

下载得到文件列表

Python良好编程习惯.doc

文档介绍

文档介绍:Python良好编程****惯
如果进行的是简单的处理,请使用字符串方法,这样可避免复杂的正则表达式所带来的错误,并保证程序的可读性。
在原始字符串末尾使用反斜杠是语法错误。
正则表达式的模式字符串中常常包含反斜杠字符。使用原始字符串来创建模式,可以避免对其中每个反斜杠进行转义的必要,使模式字符串更容易理解。
[说明:原始字符串(Raw String),也就是在字符串之前加上字符前缀r后创建的一个字符串。通常,如果在字符串中出现\,Python会把它视为转义字符,并试图用正确的转义序列替换元字符\及其后续字符。但是,如果元字符\出现在一个原始字符串中,Python不会把它解释成转义字符,而是将其视为字面意义的反斜杠字符。例如,Python会将"\n"解释成换行符,但将r"\n"解释成两个字符---一个反斜杠和一个n。]
用函数式编程语言(比如说Scheme)写的程序可以反映出数学表达式的结构;数学表达式是由若干函数字符串组成的,其中的每一个都能计算出一个结果并且不产生任何副作用。同样的函数用同样的参数去调用就会产生同样的结果,这和调用时的上下文是无关的。用这样的方法可以将我们的代码优雅地结构化(并且一定程度上也起到了简化的效果)。Python编程语言拥有所有让它在函数式编程(FP)上有优势的特性。在这篇文章中,我们将从“Pythonic”的角度来看一下FP中的一些有趣的思想如高阶函数、闭包、lambda以及柯里化等等。
什么是函数式编程?
作为程序的一部分,我们所写的函数只是在表面上和数学函数类似。比方说我们写这么一个函数:
int current_balance = 100;
int withdraw(int w)
{
  current_balance = current_balance - w;
  return current_balance;
}
我们调用一次“withdraw(10)”之后90这个值将会被返回。再调用一次“withdraw(10)”则返回80。如果“withdraw”是一个“纯”数学函数的话,那么两次调用应该返回同样的值,因为我们传给它的参数值是一样的。而我们的程序则“记住”了前次的调用(它有“状态”)然后每次都返回一个新的值。一个如下的数学方程:
y = f(a) + g(b) + f(a)
有一个很好的属性就是它可以被化简为:
y = 2*f(a) + g(b)
事实上如果有一个计算机程序是由一组会修改全面变量的函数构成的话,我们是无法对它进行这样化简的。相比于生成一个数学证明,验证一个计算机程序的正确性更像是一个探索各种假设分析的情境的过程。
“赋值”操作符也带来了些问题。让我们简单地看一个计算阶乘的循环:
# Compute factorial of 'n'
int f = 1, n = 5;
while (n > 0) {
  f = f * n;
  n = n - 1;
}
return f;
我们会犯的一个常见的错误就是在循环体内交换两个语句的顺序。因为赋值操作符改变了它左边的符号的值,所以这让我们在考虑在我们的程序中每一个动作的顺序时需要格外的小心。
函数式编程的范式鼓励我们把程序结构化成一系列“纯”的函数,这些函数没有全局的状态也不使用赋值操作符(注意这