函数篇

函数篇:

  1. 函数格式:

def loop():

return 1,2,3 #renturn函数需要返回的信息

a=loop() #调用函数并赋值给变量啊

print(a)#打印变量a

注意:return返回的值可以用于其他函数调用

如果一个函数没有return,则默认返回的是none

return后可以返回多个对象,比如列表,字符串,等等,返回都是一个元组

 

  1. 函数作用域

函数作用域分为四个部分,最外层的buti_in(即python自己系统定义的方法,如int());全局变量,嵌套局部变量,局域变量

x=int(2.9) #buit_in

name=0 #全局变量

def name()

name=0 #嵌套局部变量

def i_name():

i_name=1 #局部变量

print()

"""变量作用域优先级:局部变量>嵌套局部变量》全局变量;执行时先找本地,本地找不到再往外围找"""

"""

  1. 函数执行的顺序

对函数执行的顺序:

def name():

renturn 1,2,3

name()

 

当代码从上往下走的时候,会将

“”def name():

renturn 1,2,3“”

加入内存,但是不会去执行,当发现有name()调用的时候去执行name(),才会从上到下去执行

def name():

renturn 1,2,3

 

同理当代码执行,会把

def out():

out1=0

def out2():

out2=2

print(out2)

out2()

加入内存,当发现out(),才去执行

def out():

out1=0

然后将

def out2():

out2=2

print(out2)

加入内存,发现out2()才去从上而下执行

def out2():

out2=2

print(out2)

 

 

执行out时候,首先进入def out函数执行 out1,然后将def out2区域下的out2=2,print(out2)加入内存,然后执行out2(),接着执行到def out2(),执行out2=2,以及printout2

 

"""如:

def out():

out1=0

def out2():

out2=2

print(out2)

out2()

out()

  1. 全局变量和嵌套局域变量,常出现的问题

局部变量不可以修改全局变量,否则报错

(1).局部变量不可以修改全局变量否则报错,除非声明全局变量后方可使用

count=10 #全局变量

def count():

#glob(count)#局部变量如果需要更改全局变量,需要声明count为全局变量即可,则不会报错

count=count+1#局部变量不可以修改全局变量,此语句将全局变量10+1赋值给count,所以报错

count()

 

(2).当变量为嵌套局部变量,count函数需要需求name函数下的count则使用nonlocal=count即可,否则报错

def name():

count=10

def count():

# nonlocal=count #nonlocal是python3使用

#glob(count)#

count=count+1#局部变量不可以修改嵌套局域变量,此语句将全嵌套局域10+1赋值给count,所以报错

count()

name()

posted @ 2022-01-11 12:09  土孩子  阅读(52)  评论(0)    收藏  举报