第19讲第3题先执行哪个print
def fun(var):# var = 1314
print(var, end='')#1
var = 520
fun(var)
print(var) #2
结果是520520,那是先打印哪个??如果var = 1314不当注释的话打印顺序会变吗??
还有个问题就是为什么这个结果是var未定义??
def fun(var):
var = 1314
print(var, end='')
fun(var)
var = 520
print(var) 主语句中你先执行fun(var),并没有给var赋值,系统不知道这是个什么玩意,当然提示未定义啦 def fun(var):
var = 1314 #函数内部重新对外部参数进行定义,形成同名的局部变量,赋值为1314
print(var, end='')#1#打印局部变量var=1314
var = 520#外部参数定义var为520
fun(var) #将var作为参数传给fun()
print(var) #2 #打印外部函数var=520
这个输出的结果是1314520 atai0622 发表于 2021-3-10 10:39
这个输出的结果是1314520
唔,大佬能标个看的顺序吗?应该不是直接从上往下看? 第一个demo
由于将var=1314标注掉了
函数相当于变成了
def fun(var):
print(var,end='')
意为打印传入的参数,并以''结尾
等同于 print(var,end='')
你在执行时,相当于
var = 520
print(var,end='')
print(var)
得出结果520520 (fun(var)在前,print(var)在后)
=============================================
如果去掉标注
def fun(var):
var = 1314
print(var,end = '')
函数变为了不论传入任何参数,var都会被内部变量var = 1314所覆盖
相当于print(1314,end='')
def fun(var):
var = 1314
print(var,end = '')
var=520
fun(var)
print(var)
等同于
print(1314,end='')
print(520)
结果 1314520 (先打印fun(var),再打印520)
==============================================
第二个demo
def fun(var): #var为形参
var = 1314 #内部变量var=1314
print(var, end='')
fun(var) #实参var 还未赋值
var = 520 #外部变量var 赋值
print(var)
我们先定义了函数fun,形参为var,内部变量var=1314
在执行fun(var)时,没有实参var
也就是说外部变量var还没有赋值
引发的报错
孤妓与酒 发表于 2021-3-10 10:44
唔,大佬能标个看的顺序吗?应该不是直接从上往下看?
5楼解释的很清楚了 嗯嗯,谢谢几位大佬的帮助{:10_254:}
页:
[1]