py函数

函数的一个主要目的就是将需要多次执行的代码放在一起。如果没有函数定义,你可能每次都需要复制粘贴这些代码。

一般来说,我们总是希望避免复制代码,因为如果一旦决定要更新代码(比如说,发现了一个缺陷要修复),就必须记住要修改所有复制的代码。

随着你获得更多的编程经验,常常会发现自己在为代码“消除重复”,即去除一些重复或复制的代码。消除重复能够使程序更短、更易读、更容易更新。

函数定义以def开头。

def 函数名(参数列表):

  语句组

def abs(x):

  return -x if x<0 else x

空函数

如果想定义一个什么都不做的函数,可以使用pass语句。

def donothing():

    pass

如果为了让程序能跑起来,但暂时又不写这个函数,可以使用pass语句。这里pass用作占位符。

如果需要在一个函数内修改全局变量,就使用global 语句。如果在函数的顶部有global eggs 这样的代码,它就告诉Python,“在这个函数中,eggs 指的是全局变量,所以不要用这个名字创建一个局部变量。”例如,在文件编辑器中输入以下代码:

def spam():

    global eggs

    eggs = 'spam'

eggs = 'global'

spam()

print(eggs)

在Python 程序中遇到错误,或“异常”,意味着整个程序崩溃。你不希望这发生在真实世界的程序中。相反,你希望程序能检测错误,处理它们,然后继续运行。

def spam(divideBy):

    return 42 / divideBy

print(spam(12))

print(spam(0))

通常,对于一个函数,你要知道的就是它的输入值(变元)和输出值。你并非总是需要加重自己的负担,弄清楚函数的代码实际是怎样工作的。如果以这种高层的方式来思考函数,通常大家会说,你将该函数看成是一个黑盒。

这个思想是现代编程的基础。

一些模块中的函数是由其他人编写的。尽管你在好奇的时候也可以看一看源代码,但为了能使用它们,你并不需要知道它们是如何工作的。而且,因为鼓励在编写函数时不使用全局变量,你通常也不必担心函数的代码会与程序的其他部分发生交叉影响。

错误可以由try 和except 语句来处理。那些可能出错的语句被放在try 子句中。如果错误发生,程序执行就转到接下来的except 子句开始处。

def spam(divideBy):

    try:

        return 42 / divideBy

    except ZeroDivisionError:

        print('Error: Invalid argument.')

print(spam(2))

print(spam(0))

函数是将代码逻辑分组的主要方式。因为函数中的变量存在于它们自己的局部作用域内,所以一个函数中的代码不能直接影响其他函数中变量的值。这限制了哪些代码才能改变变量的值,对于调试代码是很有帮助的。

函数是很好的工具,帮助你组织代码。你可以认为他们是黑盒。它们以参数的Python 编程快速上手——让繁琐工作自动化形式接收输入,以返回值的形式产生输出。它们内部的代码不会影响其他函数中的变量。

方法也是函数,它们与特定数据类型的值绑定。

函数是带名字的代码块,用于完成具体的工作。

要执行函数定义的特定任务,可调用该函数。需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用执行该任务的函数,让Python运行其中的代码。你将发现,通过使用函数,程序的编写、阅读、测试和修复都将更容易。

函数是将代码逻辑分组的主要方式。因为函数中的变量存在于它们自己的局部作用域内,所以一个函数中的代码不能直接影响其他函数中变量的值。这限制了哪些代码才能改变变量的值,对于调试代码是很有帮助的。

函数是很好的工具,帮助你组织代码。你可以认为他们是黑盒。它们以参数的形式接收输入,以返回值的形式产生输出。它们内部的代码不会影响其他函数中的变量。