海神司夏 发表于 2020-4-20 21:01:53

求大神指教这道题,谢谢!

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

var = 520
fun(var)
print(var)
为什么会打印1314520呀?

liuzhengyuan 发表于 2020-4-20 21:03:46

本帖最后由 liuzhengyuan 于 2020-4-20 21:09 编辑

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

因为这是局部变量,所以在主函数中,之前定义过的值,又变回原来定义的值了

Hello. 发表于 2020-4-20 21:05:42

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

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

{:10_275:}

liuzhengyuan 发表于 2020-4-20 21:07:08

Hello. 发表于 2020-4-20 21:05


你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。{:10_256:}

Hello. 发表于 2020-4-20 21:10:47

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

发来看看

海神司夏 发表于 2020-4-20 21:28:30

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

这个听起来挺牛呀,发来看看可否?

qiuyouzhi 发表于 2020-4-20 21:30:20

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

我也写了一个{:10_257:}

liuzhengyuan 发表于 2020-4-20 21:32:20

qiuyouzhi 发表于 2020-4-20 21:30
我也写了一个

wow,{:10_275:}

海神司夏 发表于 2020-4-20 21:32:27

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

因为这是局部 ...

在函数改变全局变量会会生成一个同名的局部变量,然后fun(var)会打印1314,print(var)会打印520,是这样吧,不过这两个值为什么打印出来会在一行呀,求教

liuzhengyuan 发表于 2020-4-20 21:34:16

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

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

这个end=''就表示在结尾上加字符串
比如你想在结尾加空格,就可以end=' '(单引号中间是一个空格)

海神司夏 发表于 2020-4-20 21:35:45

qiuyouzhi 发表于 2020-4-20 21:30
我也写了一个

{:10_275:}

海神司夏 发表于 2020-4-20 21:37:00

liuzhengyuan 发表于 2020-4-20 21:34
你函数中的

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


我没注意,看了一天了,老眼昏花,明白了{:10_275:}

均昊山 发表于 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关键字时,只是对函数\局部变量形参重新赋值

qiuyouzhi 发表于 2020-4-20 21:51:41

liuzhengyuan 发表于 2020-4-20 21:32
wow,

只不过写的是十分的烂。。。
那代码我自己都不想看

liuzhengyuan 发表于 2020-4-20 21:53:03

qiuyouzhi 发表于 2020-4-20 21:51
只不过写的是十分的烂。。。
那代码我自己都不想看

但是它能帮你获得最佳答案不是吗?

qiuyouzhi 发表于 2020-4-20 21:54:09

liuzhengyuan 发表于 2020-4-20 21:53
但是它能帮你获得最佳答案不是吗?

这倒是
我后来还给它加了个GUI界面
页: [1]
查看完整版本: 求大神指教这道题,谢谢!