函数2

函数参数传递的问题

传递的是地址值还是数值呢?
def fun1(a1):
print(a1)

name = 'xiaohu'
fun1(name)

python中函数的调用参数传递的是地址值

========================

def fun1(a1):
a1.append(666)

list1 = [1,2,3]
fun1(list1)

print(list1)

==========================

def fun1(a1):
b1 = a1.upper()
s1 = 'shujia'
fun1(s1)

print(s1)

作用域

作用域:实际上就是一块共享的区域
python程序中其实有两种作用域:

  • python的py文件中一整块是一个作用域
  • python中的函数内部是一个独立的作用域
    python
    name = '小虎'
    age = 18
    if 1==1:
    s1 = 10
    for i in range(10):
    pass
    print(name,age,s1,i) # 这里的name,age,s1,i其实都同属于一个大的作用域

全局变量和局部变量

  • 全局变量:将变量定义在函数的外部
  • 局部变量:将变量定义在函数的内部
    python

全局变量

name = '小虎'
age = 18
def fun1():
# 局部变量
a1 = 3
b1 = 4
c1 = 'xiaohu'
print(a1)
print(b1)
print(c1)

fun1()

  • 局部作用域可以访问外部作用域的变量
  • 函数与函数之间的作用域的变量是不可以互相访问的
  • 实际开发中,如果定义的变量是全局变量的话,使用大写字母下划线拼接;如果定义的是局部变量,使用小写字母下划线拼接
    python

全局变量

NAME = '小虎'
AGE = 18
def fun1():
# 局部变量
a1 = 3
b1 = 4
c1 = 'xiaohu'
print(a1)
print(b1)
print(c1)
fun1()

global关键字

可以修饰局部变量,将局部变量变成全局变量
python

全局变量

NAME = '小虎'
AGE = 18
def fun1():
# 局部变量
a1 = 3
b1 = 4
c1 = 'xiaohu'
print(a1)
print(b1)
print(c1)
fun1()
print(a1)

posted @ 2024-01-17 19:54  peculiar-  阅读(21)  评论(0)    收藏  举报