目录
活动地址:CSDN21天学习挑战赛
学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您: 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持,想组团高效学习… 想写博客但无从下手,急需写作干货注入能量… 热爱写作,愿意让自己成为更好的人…
🍈作者简介:大家好,我是我不叫内谁,渴望知识储备自己的一个菜狗
🍇个人主页:我不叫内谁的博客_CSDN博客-领域博主
🍓本文目标:对函数定义进行详解。
def Hello():
print("Everyone!")
print("Everyone!!!")
print("Hello everyone!!!")
hello()
hello()
hello()
输出如下
如果不采用函数,则需用print多行输入,或者建立一个循环来实现。
一般来说,我们应该是避免使用ctrl c ctrl v,随着编程经验的增加,我们会发现,复杂的代码可能看起来很帅,但简洁的代码真的很惹人喜爱。
def hello(name)://def为自定义函数命令
print("Hello " + name + " !")
hello("Lucy")
hello("Judi")
输出
值得注意的是,在函数执行过程中,虽然程序在执行上面的代码时分别隐含了name = Lucy,name = Judi.的语句,但是实际上,程序并没有创建name这个变量,如图
这涉及到局部作用域和全局作用域
如上述命令中,name 并没有被赋值,即在全局作用域中,name变量是不存在的,但是在函数hello()的局部作用域中,name是可以被任意赋值的。
例如:
开始的时候,number()函数被调用,创建了一个局部作用域,局部变量number被赋值为99,然后infoq()函数被调用,(infoq打钱)。
然后infoq函数被调用,创建第二个局部作用域,多个局部作用域能同时存在,局部变量被赋值为101
但是当infoq()返回时,在它本身定义域中所进行的number定义的赋值将被销毁
在number 作用域中的infoq作用域结束并销毁自身定义的临时变量时,程序依旧运行在number的作用域中,所以返回依旧是99.