小白入坑求解
《零基础入门学习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中的“小甲鱼”为什么没有打印呢? 代码执行过程如下:
调用 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,而不是全局变量或其他函数中的变量。因此,它对其他函数的执行和返回值没有影响,所以 "小甲鱼" 没有在最终结果中出现。 在这个代码中,变量 var 是一个全局变量,因为在 fun1 中使用了 global var 语句,所以在 fun2 和 fun3 中也可以访问到它。当 fun1 被调用时,它会修改全局变量 var 的值为 ' Baby ',然后将这个值作为参数传递给 fun2。fun2 接收到参数后,会将它修改为 ' Baby I love you',然后调用 fun3 并将修改后的参数传递给它。fun3 中的语句 var = ' 小甲鱼 ' 只是将函数内部的局部变量 var 的值修改为 ' 小甲鱼 ',并不会影响全局变量 var 的值,所以 fun3 中的语句并不会影响程序的输出结果。 fun3中没有返回小甲鱼
页:
[1]