您当前的位置:首页 > 计算机 > 编程开发 > Python

python定义函数

时间:03-29来源:作者:点击数:

python 定义函数

def functionName(list of parameters):
	#函数定义时并不会执行,调用时才执行
    functionBody
    return value

有参数有返回值

有参数无返回值

无参数有返回值

无参数无返回值

注意事项:

1.函数形参不需要声明类型,也不需要指定函数返回值类型

2.即使函数不需要接受任何参数,也需要保留一对空的圆括号

3.括号后面的冒号必不可少

4.函数体相对于def关键字必须保持一定的空格缩进

5.python允许嵌套函数

基础语法

1.在python中,定义函数时不需要声明函数的返回值类型,而是使用return语句结束函数的执行同时返回任意的值,函数返回值类型与return语句返回表达式语句类型一致。

2.不论return语句出现在函数的什么位置,一旦得到执行将直接结束函数的执行

例如:

def c(x):
    x=x*2
    return x
a=4
t=c(a)
print(t)

在python定义函数中注释起到了很大的作用,可以提示,解释函数,例如下述例子:

def add(x,y):
    '''这个函数用来实现连个数相加
函数参数:
x:整数
y:整数
函数返回:
    x+y'''
    return x+y
help(add)
t=add(10,23)
print(t)
在这里插入图片描述

所以说,在python中应该好好利用注释

1.有参数有返回值

例如:计算两个数的差并将结果返回

def  dif(a,b):
	"""计算两个数的差值"""
	return a-b
c=dif(a,b)			#需要被打印,赋值,运算
print(c)

2.有参数无返回值

例如:将两个字符串连接起来,组成一个字符串

def show(s1,s2):
	"""将两个字符串连接起来,组成一个字符串
函数参数:
s1:字符串
s2:字符串
函数返回:
s1+s2"""
	print(s1+s2)
	# return None  
#对于没有返回值的函数而言,直接调用即可
show("你好","世界")
print(show("ABC","BCD"))   
	#没有打return和return None意思一样 ,python 对于任何一个函数,他都会默认一个返回值
	#None 如果有其他返回值,那么None则失效,反之,如果没有返回值,则返回的是None
在这里插入图片描述

3.无参数有返回值

它一般操作的是全局变量

例如:

def time():
	return 10

4.无参数无返回值

它一般操作的是全局变量

递归

函数的运算是基于栈的

函数在调用函数的时候,要避免相互调用,除非你需要用递归,但一定要设计递归的结束出口,否则会进入死循环

def show1():
    show2()
    print("show1")
    return None

def show2():
    show3()
    print("show2")
    return None

def show3():
    show1()
    print("show3")
    return None

show1()

在这里插入图片描述

在上述例子中,该函数会陷入无限循环,因为没有递归结束的出口

正确代码:

def show1():
    show2()
    print("show1")
    return None

def show2():
    show3()
    print("show2")
    return None

def show3():
    #show1()      将这一句话注释到即可
    print("show3")
    return None

show1()
在这里插入图片描述

具体解释如图:

在这里插入图片描述

形参和实参

形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用

实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的

变量作用域的问题

a=1
b=2
def add(a,b):
	a=a*2		#2
	b=b*2		#4
	c=a+b
	return c
c=add(a,b)		#6
print(c)
print(a)		#1
print(b)		#2

函数也是对象,例如:

print(type(add))
add0=add
c=add0(a,b)
print(c)
#原来max表示函数对象
print(max(1,2,3))
#现在表示的是一个数字对象
max=12
print(max)
#原来sum表示一个函数对象
print(sum([4,5,6]))
#现在sum表示一个数字对象
sum=1
print(sum)
在这里插入图片描述

由于python中虽然没有指针但它并不代表不能改变全局变量,python中可以通过global来改变,例如:

a=10
def change():
	print("20")
	global a
	a=30		#a到底是创建还是修改?
print(a)
print(change)		#直接打印change打印函数对象的地址
a=20
print(change())		#打印出20和None
print(a)

再调用change函数时,用global函数可以改变全局变量

在这里插入图片描述

默认值参数

在定义函数时,python支持默认值参数,即在定义函数时为形参设置默认值。在调用带有默认值参数的函数时,若没有为默认值函数传值,则函数会直接使用定义时的默认值;若为函数传值,则用传递的值代替默认值。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门