初识函数:

函数定义后,可以在需要的地方调用

没有返回值,只有单纯的打印(无return)

def my_len():

  i = 0

  for k in s:

    i += 1

  return i    #返回值

 

返回值三种情况:

1.没有返回值:

  不写return

  只写return:结束一个函数的继续,后面无具体返回对象

  return None  (不常用)

2.返回1个值:

  可以返回任意数据类型

  只要返回就可以接受

  如果在一个程序中有多个return,则只执行一个

3.返回多个值

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

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

 

 return 只有两个作用:

  1,结束整个函数。

  2,给函数的执行者(调用者)返回值

参数:

def my_len(s):     #形参s
    i = 0
    for k in s:
        i += 1
    return i   

my_len("osd;")    #实参

1.没有参数:定义参数和调用参数时括号里无内容

2.有一个参数:传什么就是什么

3.多个参数:位置参数

 def my_sum(a,b):
     print(a,b)
     res = a+b  #result
     return res

 ret = my_sum(1,2)
 print(ret)

站在实参角度:

1.按照位置传参

2.按照关键词传参

3,混着使用,必须先位置后关键词,不能同一个变量传多个值

站在形参角度:

1.位置参数:必须上传,有几个就传几个值

2.默认参数:可以不传,如果不传就是默认参数

def name(name,sex=""):
    print("%s : %d"%(name,sex))

classmate('大猛')
classmate('朗哥','')

在调用函数时:按照位置传可以直接写参数的值,按照关键词:关键词 = 值

 

定义函数的时候:

  位置参数:直接定义

  默认参数:关键字参数  参数名 = ”默认的值“

  动态参数:可以接受多个参数

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

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

  先后顺序:位置参数,*args,默认参数,**kwargs

# def sum(*args):
#     n = 0
#     for i in args:
#         n+=i
#     return n
#
# print(sum(1,2))
# print(sum(1,2,3))
# print(sum(1,2,3,4))

# def func(**kwargs):
#     print(kwargs)
#
# func(a = 1,b = 2,c =3)
# func(a = 1,b = 2)
# func(a = 1)

动态参数的另一种传参方式

def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    print(args)

func(1,2,3,4,5)
l = [1,2,3,4,5]
func(*l)  #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

 

posted on 2019-06-02 17:03  wzc27229  阅读(122)  评论(0编辑  收藏  举报