python学习篇,函数的定义和使用

函数的理解和定义

什么是函数?在python中函数的意义和初等数学中函数的意义一样,在我们初中高中所学习的函数是怎么定义的呢?函数是一种抽象概念,是发生在集合之间的一种对应关系。意思就是用抽象的变量来表示一种数字间的关系,在此基础上可以来解决问题的算术式子就是函数。然后就是在编程思维中函数的定义,函数是一段代码的表示,函数是一段具有特定功能的,可以重复使用的语句组,函数是一种功能的抽象,一般函数表达特定功能,在编程中起到降低编程难度和代码复用的作用。

def <函数名>(<参数(0个或多个)>):
	<函数体>
	return <返回值>

这是函数定义的基本形式,举个例子,如何定义一个函数来表示n的阶乘

def sum(n):
	s=1
	for i in range(1,n+1):
		s *=i
	return s

函数定义的时候,所指定的参数是一种占位符,参数是输入,函数体是用来处理参数的,结果是输出。input,process,oppen(IPO);函数定义后,如果不调用,不会被程序执行。

函数的使用和调用过程

def Sum(n):		#函数定义部分
	s=1			#函数体部分
	for i in range(1,n+1):
		s *=i
	return s	#函数的返回值
Sum(10)			#调用函数

调用函数时要给出实际参数,这个实际参数会替代定义中的参数,函数调用后得到返回值。

函数的参数传递

函数可以有参数也可以没有参数,但是必须要保留括号。

def <函数名>():
	<函数体>
	return <返回值>

可选参数

另外,函数定义时可以为某些参数指定默认值,构成可选参数。

def <函数名>(<非可选参数>,<可选参数>):
	<函数体>
	return <返回值>
def Sum(n,m=1):		#函数定义部分并设置可选参数
	s=1			
	for i in range(1,n+1):
		s *=i
	return s//m	
>>>Sum(10)
3628800
>>>Sum(10,5)#可选参数可以根据需要来改变
725760

可变参数传递

另外还有一种时可变参数传递,函数定义时可以设计可变数量参数

def <函数名>(<参数>,*b):
	<函数体>
	return <返回值>
def fact(n,b*):
	s = 1
	for i in range(1,n+1):
		s *= i
	for item in b:
		s *=item
	return s
>>>fact(10,3)
10886400
>>>fact(10,3,5,8)
435456000

参数传递的两种方式

函数调用时,参数可以按照位置或者名称的方式进行传递

def Sum(n,m=1):		
	s=1			
	for i in range(1,n+1):
		s *=i
	return s//m
>>>fact(10,5)	
725760
>>>fact(m=5,n=10)
725760

函数的返回值

函数可以返回0个或者多个结果,return保留字用来传递返回值;函数可以有返回值也可以没有,可以有return也可以没有;return可以传递0个返回值也可以传递任意多个返回值。

def Sum(n,m=1):		
	s=1			
	for i in range(1,n+1):
		s *=i
	return s//m,n,m
>>>fact(10,5)	
(725760,10,5)
>>>a,b,c=fact(10,5)
>>>print(a,b,c)
725760 10 5

局部变量和全局变量

<语句块1>				#程序
def <函数名>(<参数>)	#全
	<函数体>			#局	#局部变量
	return <返回值>		#变
<语句块2>				#量
n,s =10,100
def fact(n):
	s = 1					#fact()函数中的n和s是局部变量
	for i in range(1,n+1):
		s *= i
	return s
print(fact(n),s)			#这里的n和s是全局变量

1.局部变量和全局变量是不同的变量
局部变量是函数内部的占位符,于全局便利可能重名但不同;函数运算结束后,局部变量被释放;可以使用global保留字在函数内部使用全局变量。

n,s =10,100
def fact(n):
	global s					#fact()函数中的n和s是局部变量
	for i in range(1,n+1):		#使用global保留字声明后此处的s是全局变量s
		s *= i
	return s				#此处s指全局变量
print(fact(n),s)			#此处的全局变量s被修改

2.局部变量为组合数据类型且未创建,等同于全局变量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值