#Python函数
#1.函数定义语法:
# def 函数名(参数):
# '''函数文档说明'''
# 函数体
# return 返回值
#无参
def test1():
print(123)
#2.调用函数:直接使用函数名,再跟上参数的值即可。
test1() #123
#3.函数参数
# 情况1:函数定义的参数的个数必须和调用函数传入的值个数保持一致
# 情况2:如果指定了函数的参数,在调用函数的时候,没有传入相对应的值,则会出错
# 情况3:在没有传入函数值的情况下,可以对函数参数设置默认值
def test2(a,b):
sum=a+b
print(sum)
#调用函数
test2(1,5) #6
#在定义函数时候,指定参数的默认值
def test3(a=1,b=1):
sum=a+b
print(sum)
#调用函数,传递参数
test3(2,3) #有参数传递,结果为5
test3() #没有参数传递,结果为2
#4.函数参数的传递方式
# 方式1:位置参数,以正确的顺序传入函数,调用时的数量必须和声明时一样
# 方式2:关键字参数,允许函数调用时参数的顺序和声明时不一致
def test5(a,b):
print(f"a={a}")
print(f"b={b}")
sum=a+b
print(sum)
#位置参数
test5(1,2) # a=1 b=2 3
#关键字参数
test5(b=1,a=2) #a=2 b=1 #3
#5.函数参数类型,可以为任意类型,可以为number,也可以为String,可以为List、Tuple、set、Dictionary都可以
#6.函数可变参数
#在某些情况下,函数的参数的个数是不固定的。可以传入参数,也可以选择不传递参数,可以传递一个参数,也可以传递多个,语法格式:def 函数名(*参数名):
#求多个值的和
# def test6(a):
# sum=0
# for i in a:
# sum+=i
# return sum
# sum=test6([1,2,3])
# print(sum) #6
def test7(*a):
print(type(a)) #<class 'tuple'>
sum=0
for i in a:
sum+=i
return sum
sum=test7(1,4,5)
print(sum) #10
#7.函数返回值 语法:return 结果 注意:返回结果可以是一个值,也可以是另外一个函数
def test8(*a):
print(type(a)) #<class 'tuple'>
sum=0
for i in a:
sum+=i
def test9():
print(f"计算的结果为:{sum}")
return test9()
test8(4,4,4) #计算的结果为:12
#8函数的说明文档
def test9(a,b):
'''
这是一个求两个数之和的函数
参数为a和b
'''
return a+b
sum=test9(6,6)
print(sum) #12
help(test9)
#9.作用域
# 变量的作用域分为两种:
# 全局作用域
# 函数作用域
# 全局作用域不能调用函数作用域中的变量,但是函数作用域可以调用全局作用域中的变量;若在函数作用域中修改全局作用域中的值,则使用global 声明
a=100 ##全局作用域
def test10():
a=200
b=200 #函数作用域
test10()
print(a) #100
a=100 ##全局作用域
def test11():
global a
a=200
b=200 #函数作用域
test11()
print(a) #200