P-Python 发表于 2021-3-9 16:00:24

19课的课后习题fun(var)函数的打印值为什么是1314520

本帖最后由 P-Python 于 2021-3-9 16:02 编辑

在19课的习题3中,程序代码如下:

def fun(var):
    var=1314
    print(var,end='')
var=520
fun(var)
print(var)

没有想明白为什么输出结果是1314520

jackz007 发表于 2021-3-9 16:05:31

      你确定打印的是 "5201314"?

P-Python 发表于 2021-3-9 16:17:12

jackz007 发表于 2021-3-9 16:05
你确定打印的是 "5201314"?

打错了,是1314520{:10_266:}

逃兵 发表于 2021-3-9 16:22:47

def fun(var):
    var=1314
    print(var,end='')
函数fun(var)的局部变量为var=1314,并且不影响全局变量
无论你传入的参数是什么,都会执行
print(1314,end='')
所以fun(var)
相当于
print(1314,end='')


var = 520

print(1314,end='')

print(var)

jackz007 发表于 2021-3-9 16:30:00

本帖最后由 jackz007 于 2021-3-9 16:35 编辑

def fun(var):         # var 是函数 fun() 的输入参数,属于局部变量
    var=1314            # fun() 的局部变量 var 被赋新值 1314
    print(var,end='')   # 打印 var 的新值 1314,不换行
var=520               # 定义主函数中的变量 var 的值为 520
fun(var)                # 以 var 为输入参数调用函数 fun()
print(var)            # 在 1314 后面继续打印出 var 的值 520
      调用 fun() 时,对函数输入的参数 var 是单向的,就是说,主函数中的变量 var 可以作为参数进入 fun,而 var 在 fun() 中的修改却不能传回主函数,调用完 fun() 后,主函数中的 var 依然是原来的数值。

P-Python 发表于 2021-3-9 17:11:14

逃兵 发表于 2021-3-9 16:22
函数fun(var)的局部变量为var=1314,并且不影响全局变量
无论你传入的参数是什么,都会执行
print(1314 ...

明白了,多谢大佬解惑!

P-Python 发表于 2021-3-9 17:11:49

jackz007 发表于 2021-3-9 16:30
调用 fun() 时,对函数输入的参数 var 是单向的,就是说,主函数中的变量 var 可以作为参数进入...

明白了,多谢大佬解惑!

O2H2O 发表于 2021-5-8 16:10:53

这道题的答案应该分2行写,2个返回值分别是1314和520,不是一步返回1314520>>> def fun(var):
        var = 1314
        print(var,end=' ')

       
>>> var = 520
>>> fun(var)
1314
>>> print(var)
520
页: [1]
查看完整版本: 19课的课后习题fun(var)函数的打印值为什么是1314520