今天开始学习函数。1函数函数是一个有组织的、可重用的代码段,用于实现单个或相关的功能。1.1定义一个函数一个函数代码块以def关键字开始,后面是函数标识符名称和圆括号()。任何传入的参数和自变量都必须放在括号之间,可以用来定义参数。函数的第一条语句可以选择使用文档字符串——用于存储函数描述。函数内容以冒号开头并缩进。return[expression]终止函数,可选地向调用者返回一个值。不带表达式的return等同于返回None。格式如下:def函数名(参数列表):函数体1.2调用函数1.2.1调用内置函数这里引用别人写的:内置函数一个例子:#abs()函数返回一个数的绝对值。导入数学打印('abs(45)值:',abs(45))打印('abs(-45)值:',abs(-45))打印('abs(45+23)值:',abs(45+23))print('Abs(math.pi)value:',abs(math.pi))运行结果:abs(45)value:45abs(-45)value:45abs(45+23)value:68abs(math.pi)value:3.1415926535897931.2.2调用自己写的函数这里先写一个函数,然后调用:#计算平方面积函数defarea(width,height):returnwidth*height#callthisfunctionw=20h=50print("width=",w,"height=",h,"area=",area(w,h))运行结果:10001.2.3如果要定义空函数一个空函数那什么都不做,你可以使用pass语句:defnop():pass事实上,pass可以用作占位符。比如你还没有想好函数的代码怎么写,可以先放个pass,这样代码就可以运行了。1.3函数参数在定义函数时,我们确定了参数的名称和位置,函数的接口定义就完成了。1.3.1位置参数我们先写一个函数来计算x的n次方:defpower(x,n):s=1whilen>0:n=n-1s=s*xreturnsforpower(x,n)函数,参数x和n是位置参数。#在调用power函数时,我们必须依次传递两个参数x和na=power(5,3)print(a)runningresult:1251.3.2我们可能经常用到的默认参数是计算x的平方,偶尔使用x的n次方。这时候我们需要使用默认参数:#所以如果不传n的话,n的默认值为2,也就是计算x的平方值。defpower(x,n=2):s=1whilen>0:n=n-1s=s*xreturns让我们测试一下:a=power(5)print(a)b=power(5,3)print(b)运行结果:251251.3.3变长参数中加星号*的参数会以元组的形式导入,存储所有未命名的变长参数。defprintinfo(arg1,*vartuple):"""Printanyincomingparameters"""print("Output:")print(arg1)print(vartuple)#调用printinfo函数printinfo(70,60,50)运行结果:输出:70(60,50)带有两个星号**的参数将作为字典导入。defprintinfo(arg1,\*\*vardict):"""Printanyincomingarguments"""print("Output:")print(arg1)print(vardict)#调用printinfo函数printinfo(1,a=2,b=3)运行结果:Output:1{'a':2,'b':3}1.4匿名函数python使用lambda创建匿名函数。所谓匿名,就是一个函数不再以def语句这样的标准形式定义。lambda只是一个表达式,函数体比def要简单的多。lambda的主体是一个表达式,而不是代码块。lambda表达式只能封装有限的逻辑。lambda函数有自己的命名空间,不能访问自己的参数列表之外或全局命名空间中的参数。虽然看起来lambda函数只能写一行,但并不等同于C或C++的内联函数。后者的目的是通过在调用小函数时不占用栈内存来提高运行效率。sum=lambdaarg1,arg2:arg1+arg2#调用求和函数print("相加的值为:",sum(10,20))print("相加的值为:",sum(20,20))Running结果:附加值:30附加值:40部分内容参考:https://www.liaoxuefeng.com/w...
