Python入门——函数的基本概念

一、什么是函数?

函数就是一种代码抽象的形式,是可以重复使用,用来实现一个或多个功能的代码段。函数是对做相似的事情或相似的动作进行封装,他能提高应用的模块性和代码的重复利用率。

二、函数的定义

def     函数名称(参数1,参数2,···):
		函数体
		return  返回值

举个例子:求两个数的最大值:

def max(a,b):
	if a>= b:
	return a 
	else :
	return b

而且一个函数可以返回多个值,示例:

def Cacl(x,y,symbol):
	if symbol == '+':
		return x,y,x+y
	elif symbol == '*':
		return x,y,x*y
	elif symbol == '/':
		return x,y,x/y	
	elif symbol == '-':
		return x,y,x-y
print(Cacl(2,3,'+'))
print(Cacl(2,3,'*'))

输出结果:(该返回值是个元组)

D:\python3_daima\python_1>python zuoye.py
(2, 3, 5)
(2, 3, 6)

三、函数调用

内部函数

Python中有许多内置的函数,我们必须知道他们的名字才可以进行调用,调用的示例如下:

len1 =len('123456')
print(len1)          返回值为6

函数在参数数量不正确或者类型不正确时会抛出TypeError错误

外部函数

def max(a,b):
	if a>= b:
	return a 
	else :
	return b
c = max5,9)   调用max函数
print(c)           返回结果9

四、Python默认参数的函数

定义函数的时候可以给函数传递参数值,当调用函数时没有传递这个参数,则会使用默认值,函数调用时有俩个参数,一个是必须参数,一个是默认参数,函数调用时必须要有必须参数,默认参数自己选择,默认参数必须跟在必要参数之后,顺序不能变化。
举个栗子:

def yuan(r,pi=3.14):   pi的默认值为3.14
	return r**pi      返回r**pi
print(yuan(3))        r=5,调用时使用默认参数
print(yuan(3,3.1415926))      r=3,pi=3.1415926 

执行结果:

D:\python3_daima\python_1>python zuoye.py
31.489135652454948         这个使用pi=3.14
31.544278843046833         这个使用pi=3.1415926

两种结果的精确度不一样(第二个更精确)

多个参数的函数调用

def per_info(name, sex='男', age=32):
   print(name, sex, age)

per_info('woodman')
per_info('Helen', '女')
per_info('Bobo', age=28)  # 要用后面的默认参数,需要给出参数名
per_info(age=28, sex='女', name='Baby')  # 使用参数名传递参数,对参数位置没要求
tuple = ('Peter', '男', 45)
per_info(*tuple)  # 要将列表或元组中值当参数传入函数,我们可在前面加上*

注意:第6行Bobo的代码, sex参数使用默认值,我们需要传递age参数时需要指定参数名;
第7行Baby代码,我们可以给所有传递值带上参数名称,带上参数名称后对参数可以在任意位置;
最后1行,在元组前加‘*’,表示将列表或元组中值当参数传入函数,注意参数的顺序和个数.

输出结果:
woodman 男 32
Helen 女 32
Bobo 男 28
Heli 女 28
Peter 男 45

五、函数的递归

函数对自身的调用,就是递归,python中的递归不允许超过1000次,递归必须要有一个终止条件,否则是一个死循环。
举个栗子:

def ji(n):1~100的积
	if n==1:  结束条件
		return 1    返回1结束递归
	return n*ji(n-1)   递归方法
c = ji(100)    递归100print(c)      输出c的值

这个递归还有很多小故事:开天辟地的神勃拉玛(和中国的盘古差不多的神吧)在一个庙里留下了三根金刚石的棒,第一根上面套着64个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。计算结果非常恐怖(移动圆片的次数)大约是1.84467440*10^19,众僧们即便是耗尽毕生精力也不可能完成金片的移动了。

六、匿名函数

匿名函数lambda,用于比较简单的函数,能快速的写出来。他的语法结构为:变量名= lambda 参数:表达式
参数:可选,通常以逗号分隔的变量表达式形式,也就是位置参数
表达式:不能包含循环、return,可以包含if…else…
先创建一个匿名函数:

# 
num = lambda: 1 == 3   1是否等于3
r = num()         
print(r)           返回值为False

如果使用一般的函数则这样写:

def num():
    return 1 == 2   
r = num()
print(r)

相比于一般的函数,匿名函数比较简短,容易书写,但是当匿名函数比较复杂时,容易让人难以琢磨,代码的维护成本高。

七、全局函数

Python中有许多的内置函数,太多了不一一介绍了,这里只举例几个:

 import builtins
 dir(builtins)

abs # 返回参数的绝对值
可以写成函数:

def absnum):

          if num >=0:
             return(num)
          else :
             return(-num)

all # 参数是一个列表,只有列表中的元素都为真,则返回
any # 参数是一个列表,只有列表中的元素只要有一个为真,则返回真
可以判断一个值的大致范围
ascii # 跟eval相反,加上引号
eval # 去掉引号
len # 求长度
type # 判断类型
input # 接受数据
print # 打印数据
int
float
str
list
set
dict
tuple
max # 求最大值
min # 求最小值
id # 变量的内存地址
int
bin
oct
hex

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值