python语法基础-函数-基础-长期维护

###############    函数的定义调用,返回值和返回值接收    ##############

def mylen():
    s = "myname"
    i = 0
    for item in s:
        i += 1
    return i


def func():
    return {"name":"andy"},[1,2,3]

l = mylen()
print(func())

# 从这个例子可以学到几个:函数的定义,函数的调用,函数的返回值,

# 关于返回值有几种情况:
# 1是没有返回值,如果不写return,或者只写return,都是没有返回值的,只要执行了return就不会往后执行了,比如列表的append,没有返回值,
# 2是有一个返回值,可以返回一个列表,可以返回一个字典,return [1,2,3,4]   return {name : andy}
# 3是有多个返回值,return 1,2   多个参数使用逗号分隔,
# 接收的时候可以使用一个变量接收,这个时候是一个元组的类型,
# 也可以使用使用两个参数接收,但是不能使用三个变量接收,会报错

###############    函数参数,形参实参,无参数,默认参数,不定长参数,调用使用位置参数,关键字参数,    ##############

########################
# 这种没有参数
def hollo1():
    print('hello world')
hollo1()

###################
# 这是必需参数
def hollo2(name):
    print('hello world')
    print(name,'在唱歌...')
hollo2('andy')

#######################
def hollo3(age,name):
    print('hello world')
    print('我今年%d岁了'%age)
    print(name,'在唱歌...')
hollo3(name='andy',age=18)
# 这种函数调用的时候就使用了关键字参数,这样就可以不用管参数的顺序了,默认是位置参数,
# 位置参数和关键字参数,可以混用,但是要注意位置,
##########################
# 有了默认参数之后,调用函数的时候,这个参数可以不写,则使用默认值,
def hollo3(age,name='andy'):  # 定义参数的时候,必须先定义位置参数,最后定义默认参数,默认参数也叫做关键字参数,
    print('hello world')
    print('我今年%d岁了'%age)
    print(name,'在唱歌...')
hollo3(age=18)

#############################
# 不定长参数,或者叫做动态参数
# 1,加了星号 * 的参数会以元组(tuple)的形式导入,加了两个星号 ** 的参数会以字典的形式导入。然后就可以像处理元组和字典一样处理参数了,
# 2,为什么会有这两种,就是一种位置参数,一种关键字参数,**kwargs就是用来接收关键字参数的,*args就是接收位置参数的,
# 3,先后顺序:必须先定义args,然后定义kwargs,如果有关键字参数一定放在kwargs之前,
# 4,参数名加星就可以了,后面的args,不是必须是这个,但是星一定要有,一般使用args,这是一种编码习惯,
def hollo3(name,*args,**kwargs):
    print('hello world')
    print(name,'在唱歌...')
    print(args)   # (60,70) # 这是返回一个元组
    print(kwargs)  # {'a': 1, 'b': 2} 这是一个字典,


hollo3('andy',60,70,a=1,b=2)
# 如果是把一个列表一个一个的传进入
list1=[1,2,3,4]
hollo3(*list1)
# 如果是把一个字典一个一个的传进入
dict1={"name":"andy","age":1}
hollo3(**dict1)

###############    结束线    ##############

 ###############    结束线    ##############

 

原文地址:https://www.cnblogs.com/andy0816/p/12231985.html