Python学习DAY6

1387-常同学

发表文章数:44

热门标签

,
首页 » Python » 正文

1.全局变量与局部变量Python学习DAY6
注意最后一条:如果在函数内使用全局变量而不声明的话就会报错;因为可能会被当成是局部变量

#测试全局变量,局部变量
a=3
def test01():
    b=4
    print(b*10)
    print(a)
    a=300
    print(a)
test01()
结果:
40
Traceback (most recent call last):
  File "D:/pythonProject/hello.py", line 11, in <module>
    test01()
  File "D:/pythonProject/hello.py", line 6, in test01
    print(a)
UnboundLocalError: local variable 'a' referenced before assignment

进程已结束,退出代码1

所以应该先声明一下,声明之后在函数内对它做的修改,在函数外依然有效。可以看到在函数内把全局变量a改为300,函数外也还是300。

#测试全局变量,局部变量
a=3
def test01():
    b=4
    print(b*10)
    global a
    print(a)
    a=300
    print(a)
test01()
print(a)
结果:
40
3
300
300
进程已结束,退出代码

在函数内如果只想使用局部变量,那就直接用,但是函数外依然是全局变量在起作用

#测试全局变量,局部变量
a=3
def test01():
    a=300
    print(a)
test01()
print(a)

结果:
300
3

进程已结束,退出代码0

可以看到函数内a是300,函数外的a还是3
2.Python学习DAY6
测试之后可以看到,把可变对象a传给m,地址是一样的,传递对象没有变过,a的值改变了

#测试参数传递
a=[10,20]
print(id(a))
def test02(m):
    print(id(m))
    m.append(300)
    print(id(m))
test02(a)
print(a)

结果:
2077683150216
2077683150216
2077683150216
[10, 20, 300]

进程已结束,退出代码0

传递不可变参数时,仍然是地址在传递,但是在函数内进行赋值操作时会产生一个新的对象,因此id改变了,值改变了,但是a本身不管地址还是数值都没有改变。

#测试参数传递
a=100
print(id(a))
def test02(m):
    print(id(m))
    m+=300
    print(m)
    print(id(m))


test02(a)
print(a)
print(id(a))


测试结果:
1364049184
1364049184
400
2621715885808
100
1364049184

进程已结束,退出代码0

2.浅拷贝与深拷贝
Python学习DAY6
赋值操作时,浅拷贝会修改”原本”的内容;深拷贝复制”原本’'所有的内容,并且只会在副本上修改。
3.Python学习DAY6
Python学习DAY6
4.Python学习DAY6

f=lambda a,b,c,d: a*b*c*d
print(f(1,2,3,4))

测试结果;
24

进程已结束,退出代码0

5.递归的两个条件:
Python学习DAY6

def test01(n):
    print("testoq1:",n)
    if n==0:
        print("over")
    else:
        test01(n-1)

    print("test***",n)


test01(4)
结果如下:
testoq1: 4
testoq1: 3
testoq1: 2
testoq1: 1
testoq1: 0
over
test*** 0
test*** 1
test*** 2
test*** 3
test*** 4

进程已结束,退出代码0

未经允许不得转载:作者:1387-常同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《Python学习DAY6》 发布于2020-11-24

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录