我又来提问了-关于全局变量上概念的不理解
我觉得我对全局变量和局部变量的理解可能不是很到位,希望各位能看看我理解是否有问题。局部变量是只能之作用在函数内的变量,在函数外不能使用。
局部变量和全局变量的区别是,如果要设置全局变量就在函数内部重复定义一个函数外的变量(?)--这个是我看书对比得出的···不太理解
然后全局变量是可以在函数内外任意打印都可以出现结果的(?)
GLOBAL关键字是为了让修改全局变量时不生成局部变量
局部变量和全局变量的区别是,如果要设置全局变量就在函数内部重复定义一个函数外的变量(?)--这个是我看书对比得出的···不太理解
这样说吧,局部变量第一次赋值是在函数内部进行赋值的,而全局变量的第一次赋值是在所有函数或者类对象外部赋值的
然后全局变量是可以在函数内外任意打印都可以出现结果的(?)
全局变量在所有函数都可以那来使用,局部变量只能在赋值的函数内部进行使用,也就是一个是全局的,一个只有在局部的使用范围
GLOBAL关键字是为了让修改全局变量时不生成局部变量
global 是声明这个变量是全局变量,所以在这个函数内部你直接对这个变量进行更改,就是对全局变量进行更改
你可以看看课后习题的解析来辅助理解具局部变量、全局变量、屏蔽机制的知识:https://fishc.com.cn/forum.php?mod=viewthread&tid=175453&page=1#pid4848159
Twilight6 发表于 2020-8-29 16:04
这样说吧,局部变量第一次赋值是在函数内部进行赋值的,而全局变量的第一次赋值是在所有函数或者类 ...
不好意思···我还是不是很懂全局变量,您能举个例子吗? 富富猪猪 发表于 2020-8-29 16:11
不好意思···我还是不是很懂全局变量,您能举个例子吗?
就是全局变量就是大家都可以拿来使用的
局部变量就只有在一小块区域内使用
看看这个代码:
y = 'Y' # 全局变量,因为是在所有函数外
def func1():
x = 'X' # 局部变量,在函数内部进行赋值
print(y)# 这里打印了全局变量说明成功使用了全局变量
def func2():
z = 'Z' # 局部变量,在函数内部进行赋值
print(x)# 这里打印第一个定义的变量,报错,因为局部变量只在自己定义的作用域才能使用
print(y) # 成功打印全局变量
func1() # 调用 func1 函数
func2() # 调用 func2 函数,会报错
# print(z) # 这里打印 z 变量会报错,因为 z 在函数 fun2 内部,所以是局部变量,打印失败 Twilight6 发表于 2020-8-29 16:18
就是全局变量就是大家都可以拿来使用的
局部变量就只有在一小块区域内使用
所以就是全局变量就是不在函数内的就是了对吧?只要是函数内的变量在函数外都不可以调用出来对吧? Twilight6 发表于 2020-8-29 16:18
就是全局变量就是大家都可以拿来使用的
局部变量就只有在一小块区域内使用
你可以顺便告诉我这个代码的意义吗?我总是不知道END在这里啥意思,我知道END‘XX’是在末尾加上XX字符串,但在这‘’里没东西呀?而且1314是怎么和520搞在一起的呢?而且这里VAR是局部变量吧?VAR=1314,他们是怎么加在一起的呢?
def fun(var):
var = 1314
print(var, end='')
var = 520
fun(var)
print(var)
富富猪猪 发表于 2020-8-29 16:30
你可以顺便告诉我这个代码的意义吗?我总是不知道END在这里啥意思,我知道END‘XX’是在末尾加上XX字符串 ...
对呀end 是在 print 函数打印完成后追加打印 end 参数,而且没有赋值之前默认为\n换行符,这也是 print 函数为什么能够换行的原因
所以这里 end = '' 也就是覆盖了之前 \n 的效果,也就打印不会换行,追加打印一个空字符串,所以 1314 可以 和 520 在同一行
Twilight6 发表于 2020-8-29 16:39
对呀end 是在 print 函数打印完成后追加打印 end 参数,而且没有赋值之前默认为\n换行符,这也 ...
end''是不换行的吗?那也就是说fun(var)的结果是print(var,end='')但应该要换行才能和重新赋值的var合并在一起呀 富富猪猪 发表于 2020-8-29 16:56
end''是不换行的吗?那也就是说fun(var)的结果是print(var,end='')但应该要换行才能和重新赋值的var合 ...
。。。你是怎么理解换行的?
不换行所以打印在一行,换行就打印在两行了 Twilight6 发表于 2020-8-29 17:17
。。。你是怎么理解换行的?
不换行所以打印在一行,换行就打印在两行了
可是FUN在上面PRINT在下面呀···不是这样理解吗 富富猪猪 发表于 2020-8-29 17:21
可是FUN在上面PRINT在下面呀···不是这样理解吗
fun 函数里面有个 print
而且先调用 fun 函数的,所以是先执行 print(var, end='') ,这里 var = 1314,所以打印了 1314 ,且 end = '' 所以不换行
然后 执行 print(var) ,此时 var =520 所以打印 520所以最好结果是 1314520
页:
[1]