鱼C论坛

 找回密码
 立即注册
查看: 3713|回复: 14

[已解决]小白求助py[课后作业] 第019讲

[复制链接]
发表于 2021-10-20 17:40:13 | 显示全部楼层    本楼为最佳答案   
我写了个很详细的回答,图片蛮多,我用的是Thoony调试给你的结果,你看了就明白了了。如果还不懂再问我吧。

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图

                               
登录/注册后可看大图


调试程序,运行fun1();
首先var在外部是全局变量,所以此时var= ‘HI’

1.png

先进入的是fun1();进入之后var被声明为全局,因此,此时可以从fun1的内部修改var的值了,
2.png

当这一步运行完之后就发现var修改为’Baby’。
3.png

运行完上一步后,到这一步就可以发现,右侧可见,var已经修改了
4.png

然后再运行return fun2(var),很明显是要搞清楚这个fun2(var)运行后的返回值了,此时return fun2(var)中的带进去的参数为’Baby’
5.png

带着这个’Baby’的参数进去到fun2之后,可见右侧的var在全局中还是’Baby’。此时,对fun2中的var进行运算,
6.png

很显然,var运算的结果是var变为Baby I love you。于是,带着Baby I love you这参数,我们将其带入到了fun3中。当然必须说明的是,fun2的返回值是返回此时在fun2的局部变量var——也即为BabyI love you。好了,到这里基本就不用再看fun3了,因为在fun3中也没有对var当成全局变量的声明,更没有修改
7.png

但是为了看的更清楚,我继续说一下fun3。进去fun3之后,此时带入fun3的参数还是var=BabyI love you。然后运行fun3的第一句,可以发现在fun3中的局部变量也是var,此时var就成了' 小甲鱼 '。但是注意这个函数没有返回值哦!!返回值是None。 8.png

我们甚至还可以看到在右侧提示全局变量var还是Baby哦!!
9.png

于是再回到fun2中的第三句,返回值为None,什么也不做
10.png

之后运行return var,当然此时的var已经是Baby I love you
11.png

因此fun1中的returnfun2(var)自然就是返回的就是fun2的返回值——Baby I love you。那么,fun1返回的也是这个字符串Baby I love you
12.png







小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-23 10:56:14 | 显示全部楼层
祢豆子oo 发表于 2021-10-22 19:53
想再问下 var = ' Hi '
def fun1():
    global var

抱歉看到的比较晚哈,相信你也应该懂了,如果在fun3里面加上了return var,那么很显然这里的var是你fun3中的定义的局部变量的var = '小甲鱼'。
此时的话,在fun2的这句话中,这个fun3(var)的调用等同于你这这写了一句‘小甲鱼’——你看这个没有赋值吧?没有赋值那就对在fun2中的var没有影响,自然,对于结果没有影响了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-10-25 13:02:08 | 显示全部楼层
祢豆子oo 发表于 2021-10-24 19:31
哈哈没事没事周末嘛,我昨天也出去玩了才看到回复。这部分我懂了,谢谢大佬的回复,3Q。

不客气,嘿嘿,那个thonny很好用的,你可以试试,调试的功能真的很多时候让你对分析的问题一目了然,你可以下载者用下,很轻量级,值得推荐
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表