def 函数名(传入参数) :
函数体
return 返回值
def fun(): # 传入参数不需要可以忽略
print("hello world")
# return 返回值不需要可以忽略
fun()
1.传入参数之间用逗号隔开,不限制个数
2.区分好什么是传入参数(形式参数),什么是实际参数
def add(x,y): # x,y为传入参数
print(f"{x}+{y}={x+y}")
# return 返回值不需要可以忽略
add(1,2) #1和2是实际参数
def checks(x): # x为传入参数
if x<=37.5:
print(f"你的体温为{x},正常")
else:
print(f"你的体温为{x},不正常")
# return 返回值不需要可以忽略
print("请输入你的体温")
y=float (input())
checks(y) # y是实际参数
函数有返回值,执行完这个函数会返回一个值,需要用变量来接收
return结果后的语句不执行
def add(x,y): # x,y为传入参数
print(f"{x}+{y}={x+y}")
return x+y
result=add(1,2) #1和2是实际参数
print(result)
def add(x,y): # x,y为传入参数
print(f"{x}+{y}={x+y}")
# return 返回值不需要可以忽略
z=add(1,2) #1和2是实际参数
print(z)
print(type(z))
a=None
在一个函数里面调用了另一个函数
def fun1():
print("hello")
def fun2():
fun1()
print("world")
fun2()
局部变量是在函数体内定义的变量,只在函数体内有效,当函数执行完了就销毁
在函数外定义,在函数内外都可以使用的变量
x=2
def fun1():
print(x)
def fun2():
print(x)
fun1()
fun2()
定义了全局变量x=1,在fun1打印x内容为1
在fun2里,改变x的值后打印,为2
但在函数外打印x还是1,为什么呢?
因为在fun1和fun2的x是局部变量,只在函数体内部有用
x=1
def fun1():
print(x)
def fun2():
x=2
print(x)
fun1()
fun2()
print(x)
那如果我想在函数内部改变全局变量的值怎么办?
用global关键字,在函数体内 global x
x=1
def fun1():
print(x)
def fun2():
global x #声明它是全局变量
x=2
print(x)
fun1()
fun2()
print(x)
return 1,2,3
返回几个值,就用几个变量接受
返回值可以是不同类型
def fun1():
return 1,2
a,b=fun1()
print(a,b)
根据函数定义的参数位置来传递参数
传递的参数和定义的参数顺序和个数必须一致
def fun(name,age,gender):
print(f"名字是{name}年龄为{age}性别是{gender}")
fun('jack',11,'male')
#调用函数的时候一一对应,顺序不变,数量也不变
键=值的形式传递参数
可以不按照顺序
可以与位置参数一起使用,但是位置参数必须在前面,匹配参数顺序
def fun(name,age,gender):
print(f"名字是{name}年龄为{age}性别是{gender}")
fun(name='jack',gender='male',age=11)
def fun(name,age,gender):
print(f"名字是{name}年龄为{age}性别是{gender}")
fun('jack',gender='male',age=11)
def fun(name,age,gender):
print(f"名字是{name}年龄为{age}性别是{gender}")
fun(name='jack',age=11,'male')
为参数提供默认值,调用函数可以不传这个参数的值,所有位置参数必须出现在默认参数之前
默认参数统一在最后
def fun(name,age,gender='male'):
print(f"名字是{name}年龄为{age}性别是{gender}")
fun('jack',11)
用于不确定调用时参数的个数
传入的参数被args收集,合并成一个元组
函数(*args)
变量没有特殊的格式要求,直接传进来就行
def fun(*args):
print(f"{args} ")
print(type(args))
fun('jack',11,[2,3,4])
函数(**kwargs)
有格式要求,参数必须是 键=值 的格式,然后组成字典
def fun(**kwargs):
print(f"{kwargs} ")
print(type(kwargs))
fun(a=1,b='b',c=[7,8,9])
def fun1(fun):
x=fun(1,2)
print(x)
def fun2(x,y):
return x+y
fun1(fun2)
lambd 传入参数 :函数体
函数体只能写一行,只能使用一次
def fun1(fun):
x=fun(1,2)
print(x)
fun1(lambda x,y:x*y)