作用域

全局变量&局部变量

全局变量和局部变量都是在讨论无参数的函数,不要把全局变量和局部变量与函数的参数混淆了。
1.1 函数会在函数域中找变量(局部变量),如果函数内部没有定义该变量,则会在全局中寻找变量(全局变量)

a=100
def test1():print(a) # 输出结果100,函数域里没有a,所以去全局寻找
def test2():a=200print(a) # 输出结果为200,函数域里有a,所以取函数域里面的值

1.2 当一个函数使用了全局变量时,就不能再在函数域中修改同名变量,因为这个操作是在修改全局变量

a=100
def test1():print(a) a=200 # 此处不可以修改全局变量print(a)
test1()
UnboundLocalError: local variable 'a' referenced before assignment

如果想要修改全局变量,要先用global声明

a=100
def test1():global aprint(a) a=200 # 这里变成修改全局变量print(a) # 输出结果为200,

1.3 之所以不能修改全局变量,是因为局部作用域不能修改全局变量的指向,正是因为这个原因,所以对列表等可变的类型,可以不用声明就可以修改全局,因为没有更改其指向,而是修改了内容。

a=[1]
def test1():a.append(1)print(a)

Python 使用 LEGB 的顺序来查找一个符号对应的对象
locals -> enclosing function -> globals -> builtins

  1. locals,当前所在函数、模块
  2. enclosing,外部嵌套函数的命名空间(闭包中常见)
  3. globals,全局变量,函数定义所在模块的命名空间
  4. builtins,内建模块的命名空间

返回值(return)

可以使用list tuple dict 或者直接用,将多个结果同时返回(本质是tuple)

其他

匿名函数:

lambda [arg1 [,arg2,…argn]]:expression
冒号:后面相当于return返回

函数作为参数

当函数作为参数时,是把函数的引用传入到了函数里
def name(a,b,func)

字符串转函数

字符串转表达式
eval() 结合eval input可以给python传入function

Python 函数详解相关推荐

  1. python函数详解

    写在篇前   函数能提高应用的模块性,和代码的重复利用率,是编程必须具备的基本抽象能力.python函数更是奇妙灵活,与很多特性值得探讨,本篇文章就来详细看看python 函数那些巧妙之处.首先,在篇 ...

  2. 2、Python函数详解(0601)

    函数的基础概念 1.函数是python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构: 2.函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件: 3.函数用于将相关功能打包并参 ...

  3. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  4. python函数详解_Python函数详解(转)

    原地址:http://www.ithov.com/linux/100534_2.shtml 摘要:Python是一种面向对象.直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多 ...

  5. 【python入门篇——16】Python函数详解(函数定义,参数种类、返回值、作用域等)

    一 函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 1.代码重用2.保持一致性3.可扩展性 二 函数的创建 2.1 格式: Pyt ...

  6. python函数详解_INDEX函数

    一. 函数的作用 函数就是将一段具有独立功能的代码块 整合到一个整体并命名,在需要的位置调用这个名称即可完成对应的需求. 函数在开发过程中,可以更高效的实现代码重用. 二. 函数的使用步骤 1. 定义 ...

  7. python基础知识~ 函数详解2

    python~函数详解2  1 生成器函数    定义 如果函数有yield这个关键字,就是生成器函数.生成器函数() 获取的是生成器,不执行函数   须知 yield和return一样,都可以返回数 ...

  8. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  9. Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop()、dropna()、isna()、isnull()、fillna())函数详解之详细攻略

    Python之pandas:pandas中缺失值与空值处理的简介及常用函数(drop().dropna().isna().isnull().fillna())函数详解之详细攻略 目录 pandas中缺 ...

最新文章

  1. mybatis教程--一对多查询
  2. 操作系统 第四章【存储器管理】【MOOC答案】
  3. python3 object_detection_demo_yolov3_async.py出现ImportError: numpy.core.multiarray failed to import
  4. 2020年跨行业跨领域工业互联网平台
  5. ASP.NET典型三层架构企业级医药行业ERP系统实战(8大模块22个子系统)
  6. kafak manager + zookeeper + kafka 消费队列快速清除
  7. 写爬虫时遇到的问题及解决方法
  8. 博文视点 on Twitter
  9. MySQL用sql复制表数据到新表的方法
  10. 并发编程学习之线程池工作原理
  11. 带你玩转Visual Studio——带你跳出坑爹的Runtime Library坑
  12. 双目相机:基于双目视觉的目标测距
  13. 无人机在环保行业中的应用
  14. IESM项目实训三——语音合成工具类
  15. 交流纯电容电路中电容的容抗、容量和频率以及电压与电流的关系
  16. 市面上最适合跑步用的耳机有哪些、分享五款最优秀的跑步耳机
  17. jQuery教程_编程入门自学教程_菜鸟教程-免费教程分享
  18. 【AI简报20210702期】骁龙888 plus发布、RISC-V处理器大飞跃
  19. 苹果MT4手机软件怎么下载?下载后怎么使用?
  20. WAF——web安全及web应用防火墙

热门文章

  1. 学习Python+numpy数组运算和矩阵运算看这254页PPT就够了
  2. Python+sklearn使用逻辑回归算法预测期末考试能否及格
  3. 微课|中学生可以这样学Python(例11.3):tkinter通信录管理系统3
  4. mysql innodb排他锁_mysql 中innoDB引擎的事务喝共享锁喝排他锁
  5. templet 显示字段外键对应名_主外键和外键约束
  6. 力扣225. 用队列实现栈(JavaScript)
  7. docker和数据卷问题探究
  8. 累加求和a+aa+aaa+aa…a_过半深圳券商评级跃升4家维持在AA级
  9. python unique函数_《Python编程从入门到实践》json数据可视化练习详解
  10. 系统分析师资料_超全的“数据分析”自学资料,数据时代必get技能!