python全局变量和局部变量1

全局变量和局部变量

在函数中定义的称之为局部变量,只在函数内部生效
在函数外部的变量,称之为全局变量,全部变量的作用域从他定义开始到整个程序
例如:

def hanshu(a):
    a+=3
    print('函数内部',a)
x=10
hanshu(x)
print('x=',x)

结果:
x= 10
函数内部 13
x= 10*
其中a=3是函数变量
a=10是全局变量

全局变量的规则

1.全局变量是不可变的类型(这里的类型是整形,字符串)函数无法修改函数变量的值
例如:

def hanshu(a):
    a+=3
    print('函数内部',a)
x=10
hanshu(x)
print('x=',x)

***结果:
x= 10
函数内部 13
x= 10`
开始分析
其中x=10 是全局变量,改变,所以print(‘x=’,x)输入10

2.全局变量是个修改数据类型(这里的数据类型指的是列表,字典),函数可以修改全局变量的值
例如:

def hanshu(a):
    a.append(3)
x=[1,2]
hanshu(x)
print(x)

结果:
[1, 2, 3]
开始分析
调用了函数a.append 加入x列表中所以结果而如上
练习:
1.

  def hanshu(a=[]):
        a.append(10)
        print(a)
    hanshu()
    hanshu()

结果:
[10]
[10, 10]
开始分析
首先调用了函数一次a.append加入了列表
所以第一次输入[10]
然后又调用了一次在[10]的基础上又添加了一个10
所以结果:[10,10]
2.

def hanshu(a=[]):
    a.append(10)
    print(a)
hanshu()#函数1
b=[8]
hanshu(b)#函数2
hanshu()#函数3

结果:
[10]
[8, 10]
[10, 10]
开始分析
首先我们调用了函数1输出结果[10]
然后我们调用了函数2在这里[8,10]实参对形参没有任何的痕迹b=[8]是全局变量所以[8,10]
第三个函数在函数1 的基础上有添加了10所以[10,10]

def hanshu(a):
    a=[1,2]
b=[3,4]
hanshu(b)
print(b)

结果:
[3, 4]
开始分析
函数中的a=[1,2]是新的赋值,重新定义了a,b=[3,4]是全局变量,所以结果[3, 4]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值