鱼C论坛

 找回密码
 立即注册
查看: 456|回复: 15

[已解决]求大神指教这道题,谢谢!

[复制链接]
发表于 2020-4-20 21:01:53 | 显示全部楼层 |阅读模式

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

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

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

var = 520
fun(var)
print(var)
为什么会打印1314520呀?
最佳答案
2020-4-20 21:03:46
本帖最后由 liuzhengyuan 于 2020-4-20 21:09 编辑

是这样的,你先把 var 输入进函数,然后在函数中定义了一个同名变量 “var” 的值为 1314

因为这是局部变量,所以在主函数中,之前定义过的值,又变回原来定义的值了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-20 21:03:46 | 显示全部楼层    本楼为最佳答案   
本帖最后由 liuzhengyuan 于 2020-4-20 21:09 编辑

是这样的,你先把 var 输入进函数,然后在函数中定义了一个同名变量 “var” 的值为 1314

因为这是局部变量,所以在主函数中,之前定义过的值,又变回原来定义的值了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:05:42 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:03
是这样的,你先把 var 输入进去,然后在函数定义了一个同名变量 的值改变为 1314

因为这是局部变量,所 ...

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

使用道具 举报

发表于 2020-4-20 21:07:08 | 显示全部楼层

你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:10:47 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。

发来看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 21:28:30 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。

这个听起来挺牛呀,发来看看可否?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:30:20 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。

我也写了一个
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:32:20 | 显示全部楼层

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

使用道具 举报

 楼主| 发表于 2020-4-20 21:32:27 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:03
是这样的,你先把 var 输入进函数,然后在函数中定义了一个同名变量 “var” 的值为 1314

因为这是局部 ...

在函数改变全局变量会会生成一个同名的局部变量,然后fun(var)会打印1314,print(var)会打印520,是这样吧,不过这两个值为什么打印出来会在一行呀,求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:34:16 | 显示全部楼层
海神司夏 发表于 2020-4-20 21:32
在函数改变全局变量会会生成一个同名的局部变量,然后fun(var)会打印1314,print(var)会打印520,是 ...

你函数中的
print(var, end='')
end='' 表示不换行的意思

这个end=''就表示在结尾上加字符串
比如你想在结尾加空格,就可以end=' '(单引号中间是一个空格)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 21:35:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-20 21:37:00 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:34
你函数中的

end='' 表示不换行的意思

我没注意,看了一天了,老眼昏花,明白了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:51:20 | 显示全部楼层
本帖最后由 均昊山 于 2020-4-20 22:00 编辑

var是全局变量 1314
到fun函数内,对var赋值520,函数内部定义的变量即使与全局变量重名,也不影响全局变量的值(函数里的var与函数外的var没有任何关系)
想要在函数体内部改变全局变量的值,需要定义局部变量时,使用global关键字修饰
例如:def fun (var):
    global var1
    var1 = 520
    print(var1,end='')



var = 1314
var1 = 999
print (var1)
fun (var)
print(var1)

-------
这时候会打印出999
                      520520
比如兄弟的代码 没global关键字时,只是对函数\局部变量形参重新赋值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:51:41 | 显示全部楼层

只不过写的是十分的烂。。。
那代码我自己都不想看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:53:03 | 显示全部楼层
qiuyouzhi 发表于 2020-4-20 21:51
只不过写的是十分的烂。。。
那代码我自己都不想看

但是它能帮你获得最佳答案不是吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-20 21:54:09 | 显示全部楼层
liuzhengyuan 发表于 2020-4-20 21:53
但是它能帮你获得最佳答案不是吗?

这倒是
我后来还给它加了个GUI界面
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 16:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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