python语法函数_python语法之函数

一、什么是函数

函数类似于一种工具,可以重复调用。

二、为什么要用函数

防止代码的冗余;代码的可读性差。

三、使用方法

3.1

1 定义函数----->make a wapen

2 调用函数----->use it

## 函数的命名规范和变量名一样,需要具有意义。

四、函数的三种分类

4.1 无参函数

def func(): #()没有参数

print(‘hello world‘)

func()

4.2 空函数

deffunc2():pass #代码块先用pass代替, 空函数

func2()

4.3 有参函数

def func1(a,b): #()有参数, 有参函数

print(a,b)

func1(1,2) #a= 1 b =2

4.4把函数名赋值给变量

deffunc3():print(‘小猪皮蛋‘)

f= func3 #通过把函数名赋值给变量f,调用f也能调用函数

f()

五、函数的返回值

5.1 不写return:返回none

defu():print(1)#u() # 1

print(u()) #None

5.2 只写return:只有结束代码的效果,返回none

defu():print(1)return

#u() # 1

print(u()) #None

5.3 写return none:与上一条一样效果

defu():print(1)returnNone#u() # 1

print(u()) #None

5.4 return 返回一个值:可以将返回的结果当做一个变量名使用

defs(a,b):returna,b

s(1,2) #看不见结果

d = s(1,2) #把函数的结果给变量d就可以看见结果

print(d) #(1, 2)

5.5 return 返回多个值:  5.5.1 将返回的多个值默认存入元祖返回

5.5.2 函数的返回不想被修改

5.5.3 可以自己指定返回的类型

deffunc1():return 1, "2"

print(func1()) #(1, ‘2‘) 返回元祖

a = 1b= 2c= ‘3‘d= [4, 5]

e= {‘name‘: ‘sean‘}deffunc(a, b, c, d, e):returna, b, c, d, eprint(func(a, b, c, d, e)) #(1, 2, ‘3‘, [4, 5], {‘name‘: ‘sean‘}) #返回指定类型

## return 是函数结束的标志,函数体代码,只要执行return,函数就执行结束。

六、函数的参数

6.1 参数类型

形参: 函数在定义阶段就规定的参数,相当于定义变量时的变量名。

实参: 函数在调用阶段传入的参数,相当于定义变量时的变量值。

def foo(a): #a就是形参

print(a)

foo(1) #1就是实参

6.2 传参方式

6.2.1  位置参数: 通过位置进行传参。

defs(a,b):returna,bprint(s(1,2)) #(1, 2) a=1 b=2

6.2.2  关键字参数: 指定参数进行传参。

defs(a,b):returna,bprint(s(b=1,a=2)) #(2, 1) b=1,a=2

6.2.3  默认参数: 在定义函数阶段就已经传入参数,如果在实参时传入一个新参数,就会使用新参数。***不能将可变类型当参数传递。

def s(a,b,c=3):returna,b,c

s(1,2)print(s(1,2)) #(1, 2, 3)默认把c=3也传出来

def s(a,b,c=3):returna,b,c#s(1,2,c=4)

print(s(1,2,c=4)) #(1, 2, 4)指定c=4时,就把指定值传出来

6.2.4  可变长参数

6.2.4.1  *args : 接收所有溢出的位置参数,接收的值都被存入一个元祖。

示范:

cec5fa59cd263b4e752760bb43610a8d.png

bef8b1e5c14806e72ba9d717c16dd73d.png

解决方法:

#*args

def f(a,b,*args): #接收溢出位置参数

print(a,b,args) #args 会把溢出的参数存入一个元祖

f(1,2,3,4,5) #1 2 (3, 4, 5)

def f(a,b,*args): #接收溢出位置参数

print(a,b,*args) #args 会把溢出的参数打散

f(1,2,3) #1 2 3

6.2.4.2 **kwargs  : 接收所以溢出的关键字参数,接收的值都被存入一个字典。

示范:

419013873b348a653522a6f99a55e7ef.png

8208cb1c96c4020d7f29f4a2bb2495b4.png

解决方法:

#**kwargs

def f(a, b, **kwargs):print(a, b, kwargs) #kwargs: 会把溢出的参数以字典返回

f(1, 2, c=3) #1 2 {‘c‘: 3}

def f(a, b, **kwargs): #接收溢出关键字参数

print(a, b, *kwargs) #*kwargs 会把溢出的参数以字典中的key返回

f(b=1, a=2, c=3) #2 1 c

##  * 的作用: 打散你传入的容器类型

原文:https://www.cnblogs.com/Cheryl-D/p/11827805.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值