函数是为了提高代码的复用性,减少重复编码的工作
函数的语法:def
def 函数名(参数1,参数2):
函数体
return
函数名()
def name():
print("张三")
name()
1、使用关键字def 告诉python需要定义一个函数
2、函数名为name(),定义的时候需要以冒号结尾
3、def name():后面的信息需要告诉后面的操作内容
参数的第一种方式:位置/必传参数,可以有多个参数,需要进行对应
1、调用函数传递的参数个数一定要跟函数定义的参数个数一致,否则会报错
2、注意函数数体里面的参数的类型,要输入正确的参数类型,否则会报错
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': '故宫'}
(注:打印出来的结果是字典类型的,在函数当中是需要使用“=”)