python 函数 过程_python基础之函数

1、python中函数的定义:

函数其实就是带名字的代码块,用于完成一些具体的工作。如果我们在写一段程序的时候,需要多次用到同样的一个功能,如果每次都要重复写相同的代码,不仅会增加我们的代码量,更会让我们写出的代码让别人看起来觉得很low,而如果我们把功能作为一个代码块封装在一个函数里,每次仅需要调用这个函数,是不是就很方便了?这就是函数的意义所在。

1.1函数的定义方式

def test(x):

"The function defination"

x+=1

return x

###解释

test:函数名

():内可定义形参 “”:文档描述(非必要,最好写)

x+=1:泛指代码块或程序处理逻辑 #

return:定义返回值

调用运行:可以带参数也可以不带

函数名()

2、使用函数的好处

(1)减少代码重用

(2)保护一致性,易维护

(3)可扩展性

3、函数和过程的区别

过程就是没有返回值的函数(即没有return)

deftest01():

msg='hello the little green grass'

print(msg)deftest02():

msg='hello the beautiful girl'

print(msg)returnmsgdeftest03():

msg='the girl is gorgeous'

print(msg)return 1,2,3,'a',['alex'],{'name':'czd'}

t1=test01()

t2=test02()

t3=test03()print(t1)print(t2)print(t3)

explain:

返回值数=0:返回none;(没有返回值,即过程)

返回值数=1:返回object;

返回值数>1:返回tuple;

4、函数参数

4.1.形参和实参

实参是一个实实在在存在的参数,是实际占用内存地址的,而形参只是意义上的一种参数,在定义的时候是不占内存地址的。

函数的调用中,可能存在多个实参,在给函数传递参数的时候只要有两种方式,位置实参和关键字实参,每个实参都由变量名和值组成,实参还可以是列表、字典。

4.2 改用函数写

def calc(x,y): #(x,y)为形参

res=x**yreturnres

res=calc(a,b) #(a,b)为实参

print(res)

4.3 位置参数和关键字参数

def calc(x,y):

res=x**y

return res

res=calc(2,3)

print(res)

位置参数必须一一对应,缺一不行多一也不行

def test(x,y,z):

print(x)

print(y)

print(z)

test(1,2) # 报错

关键字参数无需一一对应,但缺一不行多一也不行

def test(x,y,z):

print(x)

print(y)

print(z)

test(y=1,x=2,z=4)

test(x=2,z=4) #缺一报错

位置参数必须在关键词左边

def test(x,y,z):

print(x)

print(y)

print(z)

test(1,y=2,3) # 报错

test(1,2,y=3) # 报错

test(1,2,z=3)

test(1,2,z=3,y=4) # 报错

4.4 默认参数

def handle(x,type='None'):

print(x)

print(type)

handle('hello') # type默认‘None’

handle('hello',type='squile')

handle('hello','squile') # 位置参数

4.5 参数组

def test(x, *args): #列表

print(x)print(args)

test(1, *['x', 'y', 'z'])

test(1, ['x', 'y', 'z']) #没有*时,把列表当成一个整体传给args

def test(x,**kwargs): #字典

print(x)print(kwargs)

test(1,y=2,z=3)

test(1,y=2,z=3,z=4) #报错,一个参数不能穿2个值

4.6 默认参数与参数组联合使用

#*args必须在前,**kwargs在后

def test(x,*args,**kwargs):print(x)print(args)print(kwargs)

test(1,1,2,11,x=1,y=2,z=4) #报错,x重了

test(1,1,2,11,y=2,z=4)def test(x,*args,**kwargs):print(x)print(args,args[-1])print(kwargs,kwargs.get('y'))

test(1,1,2,11,y=2,z=4)

test(1,*[1,2,3],**{'y':1})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值