欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python语法之函数

程序员文章站 2022-05-18 20:26:01
一、什么是函数 函数类似于一种工具,可以重复调用。 二、为什么要用函数 防止代码的冗余;代码的可读性差。 三、使用方法 3.1 1 定义函数 >make a wapen 2 调用函数 >use it ## 函数的命名规范和变量名一样,需要具有意义。 四、函数的三种分类 4.1 无参函数 def fu ......

一、什么是函数

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

二、为什么要用函数

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

三、使用方法

3.1

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

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

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

四、函数的三种分类

4.1 无参函数

def func():    # ()没有参数
    print('hello world')
func()

 

4.2 空函数

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

 

4.3 有参函数

def func1(a,b):    # ()有参数, 有参函数
    print(a,b)
func1(1,2)   # a= 1 b =2

 

4.4把函数名赋值给变量

def func3():
    print('小猪皮蛋')
f = func3    #通过把函数名赋值给变量f,调用f也能调用函数
f()

 

五、函数的返回值

5.1 不写return:返回none

def u():
    print(1)
# u()        # 1
print(u())     #none

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

def u():
    print(1)
    return
# u()        # 1
print(u())     #none

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

def u():
    print(1)
    return none
# u()        # 1
print(u())     #none

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

def s(a,b):
   return a,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 可以自己指定返回的类型

def func1():
    return 1, "2"
print(func1())   #(1, '2') 返回元祖
a = 1
b = 2
c = '3'
d = [4, 5]
e = {'name': 'sean'}
def func(a, b, c, d, e):
    return a, b, c, d, e
print(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  位置参数: 通过位置进行传参。

def s(a,b):
    return a,b
print(s(1,2))   #(1, 2) a=1 b=2

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

def s(a,b):
    return a,b
print(s(b=1,a=2))   #(2, 1)  b=1,a=2

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

def s(a,b,c=3):
   return a,b,c
s(1,2)
print(s(1,2))  #(1, 2, 3)默认把c=3也传出来
def s(a,b,c=3):
   return a,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  : 接收所有溢出的位置参数,接收的值都被存入一个元祖。

示范:

python语法之函数

 

 

 python语法之函数

 

 

解决方法:

# *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  : 接收所以溢出的关键字参数,接收的值都被存入一个字典。

示范:

python语法之函数

 

 

 python语法之函数

 

 

解决方法:

# **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

 

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