luck78 发表于 2021-9-30 21:34:42

函数问题

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

var = 520
fun(var)
print(var)

<<< '1314520'

请问 全局变量var =520 是作为函数 中var的参数输入进去,----> 就先打印出1314,那print(var)这一步骤为什么不是另起一行打印520
我原本想打印的是 >>>1314
                        >>>520

这个520是怎么在局部变量里打印出来的?
print(var,end='')这个步骤 var既打印了局部变量里的var=1314同时又访问了全局变量var=520 能解释一下吗?
         

寄安 发表于 2021-9-30 21:40:28

你不是end=''了吗,就说明你打印1234后不换行

luck78 发表于 2021-9-30 21:42:35

寄安 发表于 2021-9-30 21:40
你不是end=''了吗,就说明你打印1234后不换行

我想问最后的print(var)为什么会通过函数里打印出来呢,为什么不是一个单独打印全局变量的行为

寄安 发表于 2021-9-30 21:42:54

为啥要用两个一样的变量名,你是在深究全局变量和局部变量的问题吗

luck78 发表于 2021-9-30 21:44:25

寄安 发表于 2021-9-30 21:42
为啥要用两个一样的变量名,你是在深究全局变量和局部变量的问题吗

这是课后题目,没搞懂这个答案

寄安 发表于 2021-9-30 21:45:18

luck78 发表于 2021-9-30 21:42
我想问最后的print(var)为什么会通过函数里打印出来呢,为什么不是一个单独打印全局变量的行为

你定义的函数里有一个print
后边还有一个print
so就打印了两次

寄安 发表于 2021-9-30 21:46:06

luck78 发表于 2021-9-30 21:44
这是课后题目,没搞懂这个答案

问题不大,我也才是 初学者,共同进步

qaoapp 发表于 2021-9-30 22:17:08

你的函数参数在内部被重新赋值了, 任何参数传进来都是打印1314, 520没有在函数内部被打印出来, 你在全局有一个print(var)输出了520

傻眼貓咪 发表于 2021-10-1 08:23:04

範例 1:def func(var): # 參數是全局變量的值,不是全局變量本身
    var = 1314 # 局部變量
    print(var) # 這裡打印的是局部變量

var = 520 # 全局變量
func(var) # 打印局部變量
print(var) # 打印全局變量1314
520範例 2:def func(): # 沒有參數
    # var = 1314 也沒有局部變量
    print(var) # 這裡打印的就是全局變量

var = 520 # 全局變量
func() # 打印全局變量
print(var) # 打印全局變量520
520範例 3:def func(): # 沒有參數
    global var # 定義全局變量(意思就是現在這個 var 是全局變量)
    var = 1314 # 已經改變全局變量的值了
    print(var) # 這裡打印的就是全局變量

var = 520 # 全局變量
func() # 打印全局變量,全局變量的值由 520 變成 1314
print(var) # 打印全局變量1314
1314
页: [1]
查看完整版本: 函数问题