鱼C论坛

 找回密码
 立即注册
查看: 2374|回复: 3

小白入坑求解

[复制链接]
发表于 2023-3-19 20:34:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

《零基础入门学习Python》第19讲

var = ' Hi '

def fun1():
    global var
    var = ' Baby '
    return fun2(var)

def fun2(var):
    var += 'I love you'
    fun3(var)
    return var

def fun3(var):
    var = ' 小甲鱼 '

print(fun1())


打印结果为什么是: Baby I love you
函数def fun3中的“小甲鱼”为什么没有打印呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-19 21:05:07 | 显示全部楼层
代码执行过程如下:

调用 fun1() 函数。
在 fun1() 函数中,将全局变量 var 修改为 ' Baby '。
调用 fun2(var) 函数,传递参数 ' Baby '。
在 fun2() 函数中,将局部变量 var 修改为 ' Baby I love you'。
调用 fun3(var) 函数,传递参数 ' Baby I love you'。
在 fun3() 函数中,将局部变量 var 修改为 ' 小甲鱼 '。注意,这里的 var 是 fun3() 函数的局部变量,不会影响到 fun2() 函数中的 var。
fun3() 函数没有返回值,所以不会影响到 fun2() 函数的返回值。
fun2() 函数返回 ' Baby I love you'。
fun1() 函数将结果打印出来,所以输出结果是:' Baby I love you'。
关于为什么 "小甲鱼" 没有打印,原因如下:

fun3() 函数没有包含任何打印语句,所以它不会直接打印任何内容。此外,fun3() 函数修改的是它自己的局部变量 var,而不是全局变量或其他函数中的变量。因此,它对其他函数的执行和返回值没有影响,所以 "小甲鱼" 没有在最终结果中出现。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-3-20 08:56:56 | 显示全部楼层
在这个代码中,变量 var 是一个全局变量,因为在 fun1 中使用了 global var 语句,所以在 fun2 和 fun3 中也可以访问到它。当 fun1 被调用时,它会修改全局变量 var 的值为 ' Baby ',然后将这个值作为参数传递给 fun2。fun2 接收到参数后,会将它修改为 ' Baby I love you',然后调用 fun3 并将修改后的参数传递给它。fun3 中的语句 var = ' 小甲鱼 ' 只是将函数内部的局部变量 var 的值修改为 ' 小甲鱼 ',并不会影响全局变量 var 的值,所以 fun3 中的语句并不会影响程序的输出结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-13 00:39:12 | 显示全部楼层
fun3中没有返回小甲鱼
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 21:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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