python函数

1、函数

(1)定义:

完成特定功能的一个语句组,通过调用函数名来完成语句组的功能。定义一个函数,可以在任何需要它的地方调用

(2)分类:

自定义函数:用户自己编写的

内置函数: Python自带的函数,如len、sum

(3)函数定义

使用def语句

def <name>(<parameters>):

  <body> 

函数名<name>:和变量的命名规范一致

参数列表<parameters>:是调用函数时传递给它的值(可以由多个,一个,或者零个参数组成,当有多个参数时,各个参数用逗号分隔)

参数个数大于等于零,多个参数由逗号分隔

例子:数字是执行顺序

s='孙雪是我老婆'                  1      
def my_len():  #定义函数并声明函数 2
    i = 0                       4
    for j in s:                 5
        i+=1
    print(i)                    6
print(my_len())     #调用函数    3
结果:6
none

没有返回值,只是单纯的打印

2、返回值

返回值分为三种

无返回值----无返回值的情况下返回none

  只写return

  return none    ---不常用

  不写return

返回一个值

  可以返回任何数据类型

  只要返回就可以接收到

  一个函数中有多个return时,只执行第一个

返回多个值

  有多个返回值用多个变量接受,有多少个返回值就有多少个变量

  用一个变量接受,返回的是一个元组

(1)、无返回值

只写return

s='孙雪是我老婆'
def my_len():
    i = 0
    for j in s:
        i+=1
    return 
print(my_len())

结果:none

不写return

s='孙雪是我老婆'
def my_len():
    i = 0
    for j in s:
        i+=1   
print(my_len())

结果:none

(2)返回一个值

s='孙雪是我老婆'
def my_len():
    i = 0
    for j in s:
        i+=1
    return i
print(my_len())

结果:6

(3)返回多个值

用一个变量接收,返回的是一个元组

s='孙雪是我老婆'
def my_len():
    i = 0
    for j in s:
        i+=1
    return i,'老婆'
a=my_len()
print(a)

结果:(6, '老婆')

用对应的变量接受

s='孙雪是我老婆'
def my_len():
    i = 0
    for j in s:
        i+=1
    return i,'老婆'
a,b=my_len()
print(a,b)

结果:6 老婆

3、参数 

定义参数时,先定义位置参数再定义动态参数,再定义默认参数

优先级分为两种情况

位置参数>动态参数(*args)>默认参数

位置参数>默认参数>动态参数(**kwargs)

1、概念

没有参数,定义的函数只能运用到一个事件中,要想被其他的函数调用,就要有参数

参数可分为形式参数和实际参数

形参全称是形式参数,在用def关键字定义函数时函数名后面括号里的变量称作为形式参数。

实参全称为实际参数,在调用函数时提供的值或者变量称作为实际参数。

例如:

def my_len(k):      # k用来接受传过来的值,叫接收参数,只是一个形式,也叫形参
    i = 0
    for j in k:
        i+=1
    return i

s='孙雪爱吃虾'
ret=my_len(s)      #这个s是向函数传递值,叫传递参数,也是实际的参数,也叫实参

 2、站在实参的角度

(1)按照位置传参

(2)按照关键字传参

(3)混着用也可以,但是必须先按位置传参,再按关键字传参,不能给一个参数传多个值

(4)站在实参的角度,给一个序列前加上*,就是对这个序列按照顺序打散,加上**,就是把字典按照顺序打散

例子:

1、按位置传参

def jisuanqi(a,b):
    sum=a+b
    return sum
res=jisuanqi(2,4)    #把2传给了啊a,把4传给了b
print(res)
结果:6

2、按关键字传参

def jisuanqi(a,b):
    sum=a+b
    return sum
res=jisuanqi(b=4,a=1)   #通过形参的参数变量赋值来传参
print(res)
结果:5

3、混着用,但是必须先按位置传参,再按关键字传参

def jisuanqi(a,b,c):
    sum=a+b+c
    return sum
res=jisuanqi(4,3,c=1)  #把传c=1放在3或者4前面,都会报错
print(res)
结果:8

3、站在形参的角度

(1)位置参数

(2)默认参数:默认参数在没有传参数值的时候用默认的值,有传参数的值的时候用传的值

(3)动态参数:可以接受任意多个参数值

          *args   :接收按照位置传参的值,组成一个元组

          **kwargs  :接收按照关键字传参的值,组成一个字典

(4)站在形参的角度,在变量前加上*,就是把传来的参数进行按照顺序组合

    *args >默认参数>**kwargs

默认参数例子:

【1】默认参数没有传参数值

def jisuanqi(a,b=2):
    sum=a+b
    return sum
res=jisuanqi(4)
print(res)
结果:6

【2】默认参数有传参数值

def jisuanqi(a,b=2):
    sum=a+b
    return sum
res=jisuanqi(4,1)
print(res)
结果:5

动态参数例子:

def my_sum(*args):
    sum=0
    for i in args:
        sum+=i
    return sum
res=my_sum(1,2,3,4)
print(res)
结果:10

 4、函数的注释

def my_sum(*args):
    '''
    
    这里写函数的注释,主要写这个函数的功能
    '''
    sum=0
    for i in args:
        sum+=i
    return sum

posted on 2019-03-22 15:45  礼哥宝典  阅读(138)  评论(0)    收藏  举报