python学习之21天挑战赛(3)

简介: 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您

学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:

想系统/深入学习某技术知识点…

一个人摸索学习很难坚持,想组团高效学习…

想写博客但无从下手,急需写作干货注入能量…

热爱写作,愿意让自己成为更好的人…


🍈作者简介:大家好,我是我不叫内谁,渴望知识储备自己的一个菜狗

🍓本文目标:对函数定义进行详解。


1.示例怼脸

def Hello():

   print("Everyone!")

   print("Everyone!!!")

   print("Hello everyone!!!")

hello()

hello()

hello()

输出如下


d79fd307738548568e66e739a7e08e9c.png


如果不采用函数,则需用print多行输入,或者建立一个循环来实现。


一般来说,我们应该是避免使用ctrl c ctrl v,随着编程经验的增加,我们会发现,复杂的代码可能看起来很帅,但简洁的代码真的很惹人喜爱。


2.def语句和参数

def hello(name)://def为自定义函数命令

   print("Hello " + name + " !")

hello("Lucy")

hello("Judi")

输出


8c2889e360e1470abf71c97118c7b17f.png


值得注意的是,在函数执行过程中,虽然程序在执行上面的代码时分别隐含了name  = Lucy,name  = Judi.的语句,但是实际上,程序并没有创建name这个变量,如图


f9b52763f8d14b79809f7f01a22baf04.png


这涉及到局部作用域和全局作用域


3.局部作用域和全局作用域

3.1局部变量不能在全局作用域中使用

如上述命令中,name 并没有被赋值,即在全局作用域中,name变量是不存在的,但是在函数hello()的局部作用域中,name是可以被任意赋值的。


3.2局部作用域不能使用于其他局部作用域内的变量

例如:

0681d42ec14046dabf2855fb8af811da.png

开始的时候,number()函数被调用,创建了一个局部作用域,局部变量number被赋值为99,然后infoq()函数被调用,(infoq打钱)。


然后infoq函数被调用,创建第二个局部作用域,多个局部作用域能同时存在,局部变量被赋值为101


但是当infoq()返回时,在它本身定义域中所进行的number定义的赋值将被销毁

在number 作用域中的infoq作用域结束并销毁自身定义的临时变量时,程序依旧运行在number的作用域中,所以返回依旧是99.

目录
相关文章
|
2天前
|
Python
【Python21天学习挑战赛】- 错误和异常
【Python21天学习挑战赛】- 错误和异常
|
2天前
|
容器
【Python21天学习挑战赛】-迭代器 & f-格式化 & 模块
【Python21天学习挑战赛】-迭代器 & f-格式化 & 模块
|
2天前
|
Python
【Python21天学习挑战赛】- 函数进阶
【Python21天学习挑战赛】- 函数进阶
|
2天前
【Python21天学习挑战赛】文件读写操作
【Python21天学习挑战赛】文件读写操作
|
2天前
|
索引 Python
【Python21天学习挑战赛】集合 & 数据类型补充
【Python21天学习挑战赛】集合 & 数据类型补充
|
2天前
|
存储 缓存 Python
【Python21天学习挑战赛】字典 && 小数据池
【Python21天学习挑战赛】字典 && 小数据池
|
2天前
|
存储 索引 Python
【Python21天学习挑战赛】-列表 & 元组 & range
【Python21天学习挑战赛】-列表 & 元组 & range
|
2天前
|
Python
【Python21天学习挑战赛】-入门必备
【Python21天学习挑战赛】-入门必备
|
2天前
|
关系型数据库 MySQL C语言
【Python21天学习挑战赛】—Day1:学习规划,我与python的相遇
【Python21天学习挑战赛】—Day1:学习规划,我与python的相遇
|
6天前
|
运维 Shell Python
Shell和Python学习教程总结
Shell和Python学习教程总结