函数是为了提高代码的复用性,减少重复编码的工作

函数的语法:def

def  函数名(参数1,参数2):

                函数体

                return

函数名()

def name():
    print("张三")
name()

1、使用关键字def 告诉python需要定义一个函数
2、函数名为name(),定义的时候需要以冒号结尾
3、def name():后面的信息需要告诉后面的操作内容

参数的第一种方式:位置/必传参数,可以有多个参数,需要进行对应

        1、调用函数传递的参数个数一定要跟函数定义的参数个数一致,否则会报错

        2、注意函数数体里面的参数的类型,要输入正确的参数类型,否则会报错

python 函数本身名 python函数name_后端

def name(information):
    print(information)

name("我是程序员小明")

-----------------打印结果----------------

我是程序员小明

参数的第二种方式:默认参数,编写函数时候,可以给每个参数指定默认值

def test(address="北京",scene="故宫"):
    print(address+"今天的天气真好,我们决定去"+scene)

test()

-----------------------打印结果-----------------------

北京今天的天气真好,我们决定去故宫

位置+默认参数共同使用,当出现位置参数与默认参数的时候,位置参数需要放在默认参数之前,否则系统会报错。

        位置+默认参数处理(1):当后面两个是默认参数,第一个是位置参数,test()传一个参数

def test(address,traffic="开车",scene="故宫"):
    print(address+"今天的天气真好,我们决定"+traffic+"去著名景点"+scene)

test("北京")


------------------打印结果------------------

北京今天的天气真好,我们决定开车去著名景点故宫

        位置+默认参数处理(2):当第一个是位置参数,后面两个是默认参数,test()传两个参数

def test(address,traffic="开车",scene="故宫"):
    print(address+"今天的天气真好,我们决定"+traffic+"去著名景点"+scene)

test("北京","坐高铁")


--------------------打印结果--------------------

北京今天的天气真好,我们决定坐高铁去著名景点故宫



(注:可见traffic由“开车”替换成“坐高铁”)

        位置+默认参数处理(3):当第一个是位置参数,后面两个是默认参数,需要替换后面的参数的话,需要使用关键字进行替换

def test(address,traffic="开车",scene="故宫"):
    print(address+"今天的天气真好,我们决定"+traffic+"去著名景点"+scene)

test("北京",scene="万里长城")


-------------------------打印结果-------------------------

北京今天的天气真好,我们决定开车去著名景点万里长城


(注:需要替换第三个的话,那么在test()里面就是需要使用关键字指定)

参数的第三种方式:动态参数/不定长参数,主要是不知道函数需要接收多少实参,可以使用动态参数/不定长参数,使用的规范是:*args 其中的“*”星号是必须要的,后面的可以使用其他值代替,尽量使用*args,会好一点

def test(*args):
    print("北京有这些景点:",args)

test("故宫","八达岭长城","圆明园","天坛","颐和园")


-------------------打印结果-------------------

北京有这些景点: ('故宫', '八达岭长城', '圆明园', '天坛', '颐和园')

(注:打印出来的结果是元组类型的,无论传递多个都是会放在元组里面)

参数的第四种方式:关键字动态参数/不定长参数,带有关键字,且必须指定关键字,否则识别不了  **kwargs

def test(**args):
    print("北京有这些景点:",args)

test(a="八达岭长城",b="故宫")


------------------打印结果------------------

北京有这些景点: {'a': '八达岭长城', 'b': '故宫'}

(注:打印出来的结果是字典类型的,在函数当中是需要使用“=”)