函数(1)
函数的概念
- 函数是一个对象
- 函数用来保存一段可执行的代码,可以在有需要时多次被执行
语法
def 函数名(形参,形参):
代码块
注意
- 函数名的命名方式必须符合标识符命名方式(由字母,下划线,数字组成,不能以数字开头)
- 函数名表示的是函数对象,函数名() 表示 调用函数
形参和实参
形参
形式参数;在定义函数时可以在括号里添加不定量的形参。指定了形参相当于在函数里声明了内部变量,但这不是赋值
形参可以设置默认值,当在调用函数传递参数时,如果指定了实参,则该默认值不生效;如果没有指定实参,则该默认值赋值给形参
# 设置默认值
# def fn(x,y=10):
# print(x,'+',y,'=',x+y)
# fn(3,5)
# fn(5)
实参
实际参数;当函数指定了形参时,就必须在调用函数传递参数时指定实参,实参会赋值给形参
注意:
- 有多少个形参,就要有多少个实参
- 每个参数之间都用英文逗号隔开(形参也是)
参数的传递方式
位置传参
对应位置进行传参(第一个位置的实参传递给第一个位置的形参,以此类推)
# def fn(x,y=10):
# print(x,'+',y,'=',x+y)
# fn(3,7)
关键字传参
指定形参进行传参,这时候在传递参数时可以不按照函数定义的形参顺序来写
# def fn(x,y,z):
# print(x+y+z)
# fn(x=1,y=2,z=3)
# fn(z=3,x=1,y=2)
位置传参和关键字传参的混用
# def fn(x,y,z):
# print(x+y+z)
# fn(1,z=3,y=2)
# fn(1,y=2,3) # SyntaxError: positional argument follows keyword argument
注意:关键字传参必须要在位置传参的后面
实参的类型
- int
- float
- bool
- NoneType
- str
- list
- tuple
- dict
- set
- function
# def fn1():
# print('第二个函数')
# fn(1)
# fn(1.2)
# fn(True)
# fn(None)
# fn('asdf')
# fn([12,3,4])
# fn({'a':1,'b':2})
# fn((1,2,3))
# fn({1,2,3})
# fn(fn1)
以上内容还有后续~ 敬请关注~
同时欢迎各位批评指正