函数

1、定义函数
a = 2
b = 2

#定义函数calc,参数A、B为形参
def calc(A,B):
# rerurn是将函数的执行结果返回
return A**B


# a,b实参,必须先赋值,实参传递给形参
c = calc(a,b)
print(c)



2、函数参数影响范围
2.1、局部变量影响范围
def change(n):
     print(n) #传递的全局变量,
n = "change me" #局部变量,作用域在函数内部,不会影响函数外部;外部变量默认不能被函数内部修改,只能引用。此处的n 与传递进来的n不是同一个,此处的n重新开辟了一块内存空间
print(n)
print('fun is inner')

n = 'test' #全局变量
change(n)
print(n) #此处调用的是全局变量,在函数内部n被重新赋值,但只在函数内部起作用,不会影响函数外部

执行结果

test
change me
fun is inner
test

2.2函数可以直接应用全局变量

def change1():

     print(n)    #函数可以直接应用全局变量,此处不是参数传递,是引用

n = "test1" #全局变量

change1()

2.3、外部变量默认不能被函数内部修改
def  change1():
print(n)
n = "cha n " #外部变量默认不能被函数内部修改
print(n)
n = "test1" #全局变量

change1()
执行结果:

Traceback (most recent call last):
File "C:\Users\WCY\PycharmProjects\pythonProject1\Func.py", line 42, in <module>
change1()
File "C:\Users\WCY\PycharmProjects\pythonProject1\Func.py", line 37, in change1
print(n)
UnboundLocalError: local variable 'n' referenced before assignment(赋值前引用了局部变量“n”)

Process finished with exit code 1

posted @ 2022-06-17 06:14  nzhcwb  阅读(58)  评论(0)    收藏  举报