Python从入门到精通
上QQ阅读APP看书,第一时间看更新

1.8 函数

函数就是一个代码块,也是一个语句块。为了引用变量,需要为变量命名,同样,为了引用这个代码块,也需要对这个代码块进行命名。这里的命名可以理解为函数名。

可以将函数类比为一个从输入到输出的转换器,函数的输入对应的是传递给函数的参数,在函数头中定义参数。而定义从输入到输出的转换逻辑要在函数体中进行。函数的基本属性为函数名、函数头和函数体。

笔者有话说

Python提供了匿名函数。所谓的匿名函数,指的是无函数名的代码块,通常为了引用这个代码块,需将匿名函数赋值给变量,再通过这个变量来执行这个匿名函数。

1.8.1 使用def定义函数

使用def定义函数的语法如下。

def  函数名(参数列表):
   函数体  
return 返回值

参数列表指的是包含多个参数名的列表,参数之间以逗号进行分隔,如参数1,参数2,参数3。参数列表可以为空,表示不需要传递任何参数。

函数体中的return是返回的意思,表示返回值给函数的调用方。return语句不是必需的,定义函数时,可以不用返回值给调用方。

下面根据Python函数的定义语法,定义一个输入值为整数、输出值为输入值2倍的函数。

def double(number):
        # 代码需保持空格缩进
return number * 2 

在该函数定义中,函数名为double,参数为number,返回值为number的2倍。例如:

result = double(2) 

程序运行结果为4。double(2)表示执行这个函数,2是实际传的参数,对应于函数定义时的参数number。

1.8.2 Python中的冒号

在使用条件控制语句、循环控制语句,以及定义函数时,语句后面必须加上一个英文的冒号(:),否则程序会出现语法错误的异常信息。

正确的条件控制结构
if True:
    pass
else:
pass
错误的条件控制结构
if True
    pass
else
pass
正确的循环控制结构
while True:
pass
错误的循环控制结构
while True
pass
正确的函数定义
def function_name():
pass
错误的函数定义
def function_name()
pass

1.8.3 课后习题

(1)定义一个函数,此函数有两个参数,返回值为参数之和。

(2)定义一个函数,此函数有一个参数,在函数中判断参数的真假情况,如果参数值为真就返回1,否则返回0。

(3)定义一个函数,此函数带两个参数,假设分别为a、b,在函数中判断a与b的大小,并返回较大的那个。提示:“>”是Python中的关系运算符,关系运算符左边的操作数称为左操作数,右边的称为右操作数。使用“>”操作符,可以判断左操作数是否大于右操作数。