[Python]B07─函式(function)

Hi! 大家好,我是Eric,这次教大家Python的函式(function)!
http://img2.58codes.com/2024/emoticon32.gif


■ 函式(function)

■ 使用函式。函式是有名称的程式码,括弧内是参数,参数可用名子指定,如下的sep:

print(1,2,3,sep="--")

■ 定义函式

使用def来定义自己的函式,如下使用def自定义斐波那契数列的函式:
def fibonacci(N, a = 0, b = 1): #a=0, b=1表示我们自己设定的预设参数值,若没有输入a,b,则预设分别为0,1        L[]        a,b= 0,1        while len(L) < N:          a, b = b, a + b          L.append(a)        return Lfibonacci(10)
Python可以返回任何Python的物件,无论是简单物件还是複合物件,例如多个回传值会被简单地放入一个用逗号分隔的Tuple
def real_imag_conj(val)       return val.real, val.imag, val.conjugate()            r, i, c = real_imag_conj(3 + 4j)print(r, i, c)

■ 可变参数

若不想要自己指定使用者会输入多少参数到函式中,可以使用*args、**kwargs
def catch_all(*args, **kwargs):      # *表示将其展开为列表; **表示将其展开为字典     print("args =", args)     print("kwargs = ", kwargs)          catch_all(1, 2, 3, a=4, b=5)   catch_all('a', keyword=2)

■ 匿名(Lambda)函式

定义更为短小的一次性函式
add = lambda x, y: x + yadd(1, 2)
以上等同于:
def add(x, y):   return x + y
需要这种语法的原因是,若我们有一组资料存放于字典组成的列表中,想要对他们排序,但字典不可排序。
data = [{'first':'Guido', 'last':'Van Rossum', 'YOB':1956},        {'first':'Grace', 'last':'Hopper', 'YOB':1906},        {'first':'Alan', 'last':'Turing', 'YOB':1912}]
此时我们可以定义一个key函式,只要给他一个项,它就可以回传排序所依据的键
orted(data, key=lambda item: item['first']    #根据名子排序sorted(data, key=lambda item: item['YOB'])     #根据出生日期排序
Refer to《Python 旋风之旅,[正体中文]Will保哥》的第9章

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章