• return
  • 全局变量和局部变量
  • 函数名的使用
  • 函数的嵌套
  • nonlocal

return

# ### return 返回值
"""
自定义函数的返回值,return 可以把值返回到函数的调用处(1) return + 六大标准数据类型 , 还有类和对象,函数如果不定义return , 默认返回的是None(2) 在执行完return之后,立刻终止函数,后面的代码不执行
"""# 1.return的返回类型
def func():# return 1# return 3.14# return "abc"# return []# return ()# return {"a":1}pass
res = func()
# 如果不定义return , 默认返回的是None
print(res) # None# 2.在执行完return之后,立刻终止函数,后面的代码不执行def func():print(1)print(2)return 3print(4)print(5)res = func()
print(res)def func():for i in range(3):if i == 2:return 1print(i)
res = func()
print(res)# 3.模拟简单的计算器 + - * /
def func(sign,num1,num2):if sign == "+":res = num1 + num2elif sign =="-":res = num1 - num2elif sign == "*":res = num1 * num2elif sign == "/":if num2 == 0:return "除数不能为0  , 脑弟!"res = num1 / num2else:return "这个本计算器真算不了"return resres = func("+",3,5)
res = func("-",10,20)
res = func("*",10,20)
res = func("/",20,10)
res = func("/",20,0)
res = func("&",20,0)
print(res)

全局变量和局部变量

# ### 全局变量 和 局部变量
"""
局部变量 : 在函数内部定义的变量(局部命名空间)
全局变量 : 在函数外部定义的或者使用global在函数内部定义(全局命名空间)作用域: 作用的范围
局部变量作用域: 在函数的内部
全局变量作用域: 横跨整个文件生命周期:内置变量 > 全局变量 > 局部变量"""# 1.局部变量
def func():# 定义局部变量a = 5# 获取局部变量print(a)# 修改局部变量a = 10print(a)func()
# print(a) error 不能再全局调用局部变量# 2.全局变量
# 定义全局变量
b = 10
# 获取全局变量
print(b)
# 修改全局变量
b = 20def func():# 可以在函数内部获取全局变量print(b)
func()# 3.使用global在函数内部创建全局变量
def func():global cc = 200
func()
print(c)# 4.使用global在函数内部修改全局变量
d = 300
def func():global dd = 400
func()
print(d)"""
总结:可以使用global 关键字在函数内部定义一个全局变量也可以使用global关键字在函数内部修改一个全局变量
"""

函数名的使用

# ### 函数名的使用def func():print("我是func函数")return 1111# 1.函数名是个特殊的变量,可以当做变量赋值
a = "你好"
print(a)
a = func
a()# 函数可以像变量一样销毁
del a
# a()# 2.函数名可以作为容器类型数据的元素
def func1():print("我是func1函数")def func2():print("我是func2函数")    def func3():print("我是func3函数")lst = [func1,func2,func3]
for i in lst:print(i)i() # func1() func2() func3()# 3.函数名可以作为函数的参数
def func4(f):f()func4(func3)# 4.函数名可作为函数的返回值
def func(f):return fres = func(func2) # f <=> func2 =>  res = func2()
res()# ### __doc__ 或者 help查看文档def eat_bigchang(something):"""功能: 大肠刺身参数: 肠子名字返回值: 吃的状态   """print("先把{}洗一洗".format(something))print("找出肠子头放嘴里")print("嘬!!")return "吃完了,满意的放下肠子,擦擦嘴"
res = eat_bigchang
res()res = eat_bigchang("猪肠子")
print(res)
help(eat_bigchang)
res = eat_bigchang.__doc__
print(res)

函数的嵌套

# ### 函数的嵌套
"""
函数之间可以互相嵌套
外层的叫做外函数
内层的叫做内函数
"""def outer():def inner():print("我是inner函数")inner()outer()
# inner()# (1)内部函数可以直接在函数外部调用么  不行!
# (2)调用外部函数后,内部函数可以在函数外部调用吗 不可行!
# (3)内部函数可以在函数内部调用吗 可以!
# (4)内部函数在函数内部调用时,是否有先后顺序 有! 必须先定义在调用# 外层是outer , 内层是inner ,最里层是smaller,调用smaller里面的所有代码def outer():def inner():def smaller():          print("我是smaller函数" , ccid)smaller()inner()
outer()# LEGB 原则 (就近找变量原则)
"""
#找寻变量的调用顺序采用LEGB原则(即就近原则)
B —— Builtin(Python);Python内置模块的命名空间      (内建作用域)
G —— Global(module); 函数外部所在的命名空间        (全局作用域)
E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域)
L —— Local(function);当前函数内的作用域            (局部作用域)
依据就近原则,从下往上 从里向外 依次寻找
"""

nonlocal

# ### nonlocal 修改局部变量
"""
nonlocal遵循LEGB就近找变量原则(1)找当前空间上一层的局部变量进行修改(2)如果找不到,会继续向上寻找(3)最后什么也没有,直接报错
"""# (1)找当前空间上一层的局部变量进行修改
def outer():a = 100def inner():nonlocal aa = 200print(a)inner()print(a)outer()    # (2) 如果找不到,会继续向上寻找def outer():a = 100def inner():def smaller():nonlocal a a = 400print(a)smaller()print(a)inner()print(a)
outer()# (3) 注意点:nonlocal只能修改局部变量
print("<=====>")
# 最后什么也没有,直接报错
"""
a = 100
def outer():def inner():def smaller():nonlocal a a = 400print(a)smaller()print(a)inner()print(a)
outer()
"""# 400 400 400
# 500 400 400
# 400 400 500# (4) 不使用nonlocal 修改局部变量
def func():lst = [1,2,3,4]def inner():lst[-1] = 10inner()print(lst)
func()

Python ------ return返回值等相关推荐

  1. python return返回值_Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  2. python return返回值

    # return 返回值作用: # 1.函数中包含return 语句,结束函数执行并返回值 # 2.函数体中不包含return语句,返回None值 # 3.返回多个值,可使用列表,元组,字典,集合 d ...

  3. python return返回值在计算机内的存储形式_Python如何执行存储过程,获取存储过程返回值...

    在Pathon中如何执行存储过程呢?可以使用如下方法: 存储过程定义基本如下: ALTER procedure [dbo]. [mysp] @Station varchar ( 50), @SN va ...

  4. python return返回值格式化_day11__函数名的应用,python新特f-strings格式化输出、迭代器...

    一.函数名的应用 ​函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值:但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名 ...

  5. python中return返回值为函数名_Python函数返回值

    Python函数返回值教程 同时,Python 函数的返回值不需要在函数的签名上体现,只需要在函数体里面直接使用 return 语句返回即可. Python函数不返回值详解 语法 def func_n ...

  6. python没有return语句的函数将返回_为什么Python没有return返回值

    为什么Python没有return返回值 发布时间:2020-08-24 17:12:18 来源:亿速云 阅读:118 今天就跟大家聊聊有关为什么Python没有return返回值,可能很多人都不太了 ...

  7. Python函数常见return返回值类型

    Python函数常见return返回值类型Python函数return返回值类型主要包括: class 'int', class 'str', class 'tuple', class 'list', ...

  8. python 函数返回值的特殊情况

    今天没事和大家一起聊聊python 函数返回值的特殊情况,之前我也碰到过类似方面的问题,到后来查阅了一些资料后,发现原来是这样! 我记得很久以前和大家聊过python列表操作方法,python列表非 ...

  9. python函数返回值的应用

    python函数返回值的应用 1.代码 def func(name,age,course):print(name,age,course)if age>22:print("too old ...

最新文章

  1. Spring Boot 整合Redis 实现缓存
  2. 企业选择网站制作公司需要关注这几点!
  3. 相机+激光雷达重绘3D场景
  4. python去噪音_python中的噪声是什么意思
  5. leetcode python3 简单题70. Climbing Stairs
  6. 常见面试算法:树回归、树剪枝
  7. VIM:使用js高亮对json文件着色
  8. Tensorflow(GPU版安装后代码测试)
  9. js实现网页中元素缩放(zoom vs scale)
  10. adodb 连接oracle php,c# 利用ADODB连接ORACLE数据库
  11. 【算法动画图解】:安利一款昨天发现的app
  12. 使用Aforge 开发的摄像头,有拍照,录像,设置帧率,分辨率等,以及对视频以及相机等的控制
  13. Excel 公式学习笔记:数组用法
  14. 无线传感器网络中低功耗MAC协议—S-MAC
  15. ideaIU--2018.2.2安装教程
  16. 李南江 html链接,HTML5教程-多媒体标签-李南江
  17. 如何批量将图片转换为 Excel 文档
  18. 【实用网址】:平常用不到,想用的时候找不到
  19. 机器人操作臂运动学入门一--D-H参数标定
  20. Ubuntu 无法解析域名 提示错误

热门文章

  1. 姜小白的Python日记Day10 装饰器
  2. paddle 基础函数 cosine_decay
  3. 函数的 smoothness 和 convexity
  4. 程序包清单签名验证失败
  5. 什么是Saas架构?
  6. In Search of the Holy Grail 寻找圣杯 中文翻译
  7. cubic算法优化_安卓cpu优化tcp拥塞算法cubic和reno怎么选择?
  8. hellow windows
  9. 以洪荒之力打开linux德·摩根定律
  10. 微信小程序如何保存图片到本地?