鱼C论坛

 找回密码
 立即注册
查看: 2613|回复: 7

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

[复制链接]
发表于 2021-3-9 16:00:24 | 显示全部楼层 |阅读模式

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

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

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

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

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

没有想明白为什么输出结果是1314520
最佳答案
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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-9 16:05:31 | 显示全部楼层
        你确定打印的是 "5201314"?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-3-9 16:17:12 | 显示全部楼层
jackz007 发表于 2021-3-9 16:05
你确定打印的是 "5201314"?

打错了,是1314520
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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 依然是原来的数值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

明白了,多谢大佬解惑!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

明白了,多谢大佬解惑!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-15 22:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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