函数基础

1、函数定义
    函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
2、特性
    1、减少重复的代码
    2、使程序变的可扩展
    3、使程序变得可维护
3、函数语法
    def func():# 函数名
        print("my first function...") # 函数内容
    func() # 调用函数
4、函数参数
    1、形参和实参

def func(x, y):  #x 和 y 是形参
    res = x * y
    print(res)
a = 1
b = 2
func(a, b) # a和b就是实参


    2、默认参数
   

def func(name, age, country = "CN"):
    print("name:{0}, age:{1}, country:{2}".format(name,age,country))

    func("xu", "10")
    func("du", "10", "America")

    打印的结果:name:xu, age:10, country:CN
             name:du, age:10, country:America
    默认参数是country,如果你的实参没有写的话,country默认就是CN,如果写了的话,country就是你写的值

    3、关键参数
        正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可(指定了参数名的参数就叫关键参数),但记住一个要求就是,关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后
      

 def func(name, age, country):
        print("name:{0}, age:{1}, country:{2}".format(name,age,country))



func('xu', '10', 'CN')
func("xu", country="CN", '10')  #错误调用,因为位置参数要放在关键参数的后面        

        优先级:位置参数 > 关键参数

    4、非固定参数
        若你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数
        *args: 

def func(name, age, *args):
    print(name, age, args)
func('xu', 10, 'Python', 'study')


        打印结果:xu 10 ('Python', 'study')

        **kwargs

def func(name, age, *args, **kwargs):
    print(name, age, args, kwargs)
    func('xu', 10, 'Python', 'study', province = 'SiChuan', Sex = "Man")

        打印结果:xu 10 ('Python', 'study') {'province': 'SiChuan', 'Sex': 'Man'}
        可以看出,*args是以元组的方式存储, kwargs是以字典的形式存储

原文地址:https://www.cnblogs.com/zrxu/p/11577117.html