求大神指教这道题,谢谢!
def fun(var):var = 1314
print(var, end='')
var = 520
fun(var)
print(var)
为什么会打印1314520呀? 本帖最后由 liuzhengyuan 于 2020-4-20 21:09 编辑
是这样的,你先把 var 输入进函数,然后在函数中定义了一个同名变量 “var” 的值为 1314
因为这是局部变量,所以在主函数中,之前定义过的值,又变回原来定义的值了 liuzhengyuan 发表于 2020-4-20 21:03
是这样的,你先把 var 输入进去,然后在函数定义了一个同名变量 的值改变为 1314
因为这是局部变量,所 ...
{:10_275:} Hello. 发表于 2020-4-20 21:05
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。{:10_256:} liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。
发来看看 liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。
这个听起来挺牛呀,发来看看可否? liuzhengyuan 发表于 2020-4-20 21:07
你知道吗,我最近做了一个可以提醒我 有人在论坛问了问题的python程序。。。
我也写了一个{:10_257:} qiuyouzhi 发表于 2020-4-20 21:30
我也写了一个
wow,{:10_275:} liuzhengyuan 发表于 2020-4-20 21:03
是这样的,你先把 var 输入进函数,然后在函数中定义了一个同名变量 “var” 的值为 1314
因为这是局部 ...
在函数改变全局变量会会生成一个同名的局部变量,然后fun(var)会打印1314,print(var)会打印520,是这样吧,不过这两个值为什么打印出来会在一行呀,求教 海神司夏 发表于 2020-4-20 21:32
在函数改变全局变量会会生成一个同名的局部变量,然后fun(var)会打印1314,print(var)会打印520,是 ...
你函数中的
print(var, end='')
end='' 表示不换行的意思
这个end=''就表示在结尾上加字符串
比如你想在结尾加空格,就可以end=' '(单引号中间是一个空格) qiuyouzhi 发表于 2020-4-20 21:30
我也写了一个
{:10_275:} liuzhengyuan 发表于 2020-4-20 21:34
你函数中的
end='' 表示不换行的意思
我没注意,看了一天了,老眼昏花,明白了{:10_275:} 本帖最后由 均昊山 于 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关键字时,只是对函数\局部变量形参重新赋值 liuzhengyuan 发表于 2020-4-20 21:32
wow,
只不过写的是十分的烂。。。
那代码我自己都不想看 qiuyouzhi 发表于 2020-4-20 21:51
只不过写的是十分的烂。。。
那代码我自己都不想看
但是它能帮你获得最佳答案不是吗? liuzhengyuan 发表于 2020-4-20 21:53
但是它能帮你获得最佳答案不是吗?
这倒是
我后来还给它加了个GUI界面
页:
[1]