python基础 #005 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段,函数能提高应用的模块性,和代码的重复利用率。
1.函数基础
1.1 语法
def 函数名(参数列表):
函数体(代码块)
return 返回值
1.2 传参
1.2.1 位置传参 & 关键字传参
设def add(x,y):
位置传参:add(4,5)
关键字传参:add(x=4, y=5)
1.2.2 关键字传参
#前面两个数传给x,y后面的数传给agrs并封装成数组
def test(x, y ,*agrs):
print(x, y, agrs)
test(1,2,3,4,5,6,7,8)
>>> 1 2 (3, 4, 5, 6, 7, 8)
# ---------------------------------------------------------
# 关键字传参:x,y 只能用关键字传参,否则数据全部被agrs接收
def f(*agrs,x,y):
print(agrs,x,y)
f(5,8,6,9,6,x=2,y=6)
>>> (5, 8, 6, 9, 6) 2 6
1.2.3 不定长传参
- 不定长位置传参
def f(*agrs):
sum = 0
for i in agrs: # for能遍历agrs,*agrs把元素封装成元组
sum += i
return sum
f(1,2,3)
>>> 6
# ------------------------------------------------------------------------
def k(*agrs):
print(agrs)
k(1,2,3,4,5,6) #封装成tuple
>>> (1, 2, 3, 4, 5, 6)
- 不定长关键字传参
def f(**agrs):
print(agrs)
f(a=123,b=456,c=789) #封装成dict
>>> {'a': 123, 'b': 456, 'c': 789}
1.3 参数解构
#列表解构
def f(*agrs):
print(agrs)
f([1,2,3,4,5,6]) #未解构只有一个元素
>>> ([1, 2, 3, 4, 5, 6],)
f(*[1,2,3,4,5,6]) # 解构的元素封装为元组
>>> (1, 2, 3, 4, 5, 6)
# -------------------------------------------------------------------------
# 字典解构
def add(x,y):
print(x,y)
return x+y
add(**{'x':1,'y':2})
>>> 1 2
>>> 3
2. 作用域
2.1 全局变量和局部变量
TIP:函数是一个封装,它会开辟一个作用域,x变量被限制在作用域中,在函数外部x 变量不可见。
x = 100 # 这里的x为全局变量
def f():
print(x) #全局变量函数内可见
f()
>>> 100
# -------------------------------------------------------------------------
x = 100 # 这里的x为全局变量
def f():
x += 100 # x = x + 100,理解为 x(局部2) = x(局部1) + 100,但局部1没定义初始值
print(x)
f()
>>> UnboundLocalError: local variable 'x' referenced before assignment
2.2 global
使用gobal方法后,当局部变量名和全局变量名相同时,函数中的变量(局部),用全局变量代替
x = 100 # 全局变量
def f():
global x #函数中局部变量x,用全局变量x替代
x += 100
print(x)
f()
>>> 200
本文来自博客园,作者:{枫_Null},转载请注明原文链接:https://www.cnblogs.com/fengNull/articles/16618628.html

浙公网安备 33010602011771号