8:12 2019/1/13/周日
//函数
def test(x,*y,**m):
print(x)
print(y)
print(m,m["name"])
test(1,*["x","y","z"],**{"name":"azk"})//其中一个*表示传递的是元组,**表示的是传递的是字典,在定义函数的时候也要加*或者**,上面函数定义不能先把**放在*的前面,不然会出错。
结果:
1
('x', 'y', 'z')
{'name': 'azk'} azk
// 在局部里面加上 global name
name="zs"
这样的情况就是在局部里面修改了全局变量,
(如果在函数里面加入了global 那么如果有修改全局变量,则全局变量则修该了)
name="azk"//如果去掉这句话,在调用的时候还是zs
def chang_name():
global name
name="zs"
print(name)
def global_name():
print(name)
chang_name()
global_name()
结果:
zs
zs
//如果在局部变量里面对元组或者字典进行了增加或者删除,或者是修改,那个全局变量也变化了。
name=["azk"]
def chang_name():
name.append("zs")
print(name)
def global_name():
print(name)
chang_name()
global_name()
结果:
['azk', 'zs']
['azk', 'zs']
name=["azk"]
def chang_name():
name.pop()
print(name)
def global_name():
print(name)
chang_name()
global_name()
结果:
[]
[]
//规则:全局变量全部大写,局部变量全部小写。
nonlocal 表示的是上一级的变量。
函数即变量。
//递归:
//问路,在其中调用import time ,通过time.sleep(s)延迟时间。s表示是秒。
import time
name=list("abcdefg")
def ask_myway(name):
if len(name)==0:
return "不好啥意思,没人知道!"
name_top=name.pop(0)
if name_top=='f':
return "往东走20米,然后在往西走33米"
else:
time.sleep(5)
print("我帮你问其他人去%s" %name)
return ask_myway(name)
print(ask_myway(name))
//在局部变量中的时候一定加上global 才能调用全局变量。
name="azk"
def a():
global name
print(name)
name="zs"
def b():
print(name)
return b
a()()
python_06(函数)
猜你喜欢
转载自blog.csdn.net/qq_37431752/article/details/86464800
今日推荐
周排行