广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python基础-内置函数-作用域-闭包
  • 293
分享到

python基础-内置函数-作用域-闭包

函数作用基础 2023-01-31 07:01:36 293人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

内置函数-作用域-闭包-递归 1.几个可能用到的内置函数 查看内置函数: print(dir(__builtins__)) 常见函数: len 求长度 min 最小值 max 最大值 sorted 排

内置函数-作用域-闭包-递归

1.几个可能用到的内置函数

查看内置函数:
    print(dir(__builtins__))
常见函数:
    len 求长度
    min 最小值
    max 最大值
    sorted 排序,从小到大
    reversed 反向
    sum 求和
进制转换:
    bin()  转换为二进制
    oct()   转换为八进制
    hex()   转换为十六进制
    ord()   将字符转换成对应的ASIIC码值
    chr()   将ASIIC码值转换成对应的字符
补充:
    1.enumerate()   返回一个可以枚举的对象
    2.filter()      过滤器
    3.map()         加工。对于参数iterable中的每个元素都应用fuction函数,并返回一个map对象
    4.zip()         将对象逐一配对

1.1 查看参数使用:
    >>> help(sum)
Help on built-in function sum in module builtins:
sum(iterable, start=0, /)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.

  >>> sum((1,23,4))
  28
  >>> sum([1,2,3])
  6
  >>> sum([1,2,3],10)
  16
  >>> sum([10,20,30],20)  #值=iterable值+start值
  80
  >>> sum([10,20,30],22)    #值=iterable值+start值
  82
  >>> sum({1:12,2:30})      #key相加 
  3
1.2 二进制:
  >>> bin(1)
  '0b1'
  >>> bin(2)
  '0b10'
1.3 八进制:
  >>> oct(8)
  '0o10'
  >>> oct(12)
  '0o14'
1.4 十六进制:
  >>> hex(10)
  '0xa'
  >>> hex(9)
  '0x9'
  >>> hex(15)
  '0xf'
1.5 将ASIIC码转换成相应的字符
  >>> chr(65)
  'A'
  >>> chr(32)
  ' '
1.6 将字符转换成ASIIC码
  >>> ord('a')
  97
  >>> ord(' ')
  32
1.7 enumerate:
    >>> help(enumerate)
    Help on class enumerate in module builtins:

    class enumerate(object)
     |  enumerate(iterable[, start]) -> iterator for index, value of iterable
     |  
     |  Return an enumerate object.  iterable must be another object that supports
     |  iteration.  The enumerate object yields pairs containing a count (from
     |  start, which defaults to zero) and a value yielded by the iterable argument.
     |  enumerate is useful for obtaining an indexed list:
     |      (0, seq[0]), (1, seq[1]), (2, seq[2]), ...
     |  
     |  Methods defined here:
     |  
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  
     |  __iter__(self, /)
     |      Implement iter(self).
     |  
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  
     |  __next__(self, /)
     |      Implement next(self).
     |  
     |  __reduce__(...)
     |      Return state infORMation for pickling.
  >>> enumerate([1,2,3,4])
  <enumerate object at 0x000000000343EF78>      #返回一个迭代器
  >>> list(enumerate([1,2,3,4]))                    #查看
  [(0, 1), (1, 2), (2, 3), (3, 4)]              #返回一个带索引的可枚举对象,index默认0,也可指定
  >>> list(enumerate(['a','b','c','d']))
  [(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]      #返回一个带索引的可枚举对象,index默认0,也可指定
  >>> list(enumerate(['a','b','c','d'],3))
  [(3, 'a'), (4, 'b'), (5, 'c'), (6, 'd')]
  >>> list(enumerate((1,23,4,5,6),3))
  [(3, 1), (4, 23), (5, 4), (6, 5), (7, 6)]
  >>> list(enumerate({1,2,3,4,5},3))        #返回一个伪索引
  [(3, 1), (4, 2), (5, 3), (6, 4), (7, 5)]
  >>> list(enumerate({1:2,2:3,3:4},3))      #按可以返回
  [(3, 1), (4, 2), (5, 3)]
1.8 filter 过滤器
    >>> help(filter)
    Help on class filter in module builtins:
    class filter(object)
     |  filter(function or None, iterable) --> filter object
     |  Return an iterator yielding those items of iterable for which function(item)
     |  is true. If function is None, return the items that are true.
     |  Methods defined here:
     |  __getattribute__(self, name, /)
     |      Return getattr(self, name).
     |  __iter__(self, /)
     |      Implement iter(self). 
     |  __new__(*args, **kwargs) from builtins.type
     |      Create and return a new object.  See help(type) for accurate signature.
     |  __next__(self, /)
     |      Implement next(self).
     |  __reduce__(...)
     |      Return state information for pickling.
     >>> filter(lambda x:x>2,[1,2,3,4,5])   #lambda x:x>2是个函数体
    <filter object at 0x0000000003420EB8>   #返回函数体
    >>> list(filter(lambda x:x>2,[1,2,3,4,5]))
    [3, 4, 5]
    >>> list(filter(None,[1,2,3,4,5]))
    [1, 2, 3, 4, 5]
1.9 map加工
  >>> help(map)
  Help on class map in module builtins:
  class map(object)
   |  map(func, *iterables) --> map object
   |  Make an iterator that computes the function using arguments from
   |  each of the iterables.  Stops when the shortest iterable is exhausted.
   |  Methods defined here:
   |  __getattribute__(self, name, /)
   |      Return getattr(self, name).
   |  __iter__(self, /)
   |      Implement iter(self).
   |  __new__(*args, **kwargs) from builtins.type
   |      Create and return a new object.  See help(type) for accurate signature. 
   |  __next__(self, /)
   |      Implement next(self).
   |  __reduce__(...)
   |      Return state information for pickling.
   >>> list(map(str,[1,2,3,4]))
    ['1', '2', '3', '4']
1.10 zip 将对象逐一配对
    >>> list(zip([1,2,3],[4,5,6]))
    [(1, 4), (2, 5), (3, 6)]
    >>> list(zip((1,2,3),(4,5,6)))
    [(1, 4), (2, 5), (3, 6)]
    >>> list(zip([1,2,3],(4,5,6)))
    [(1, 4), (2, 5), (3, 6)]
    >>> list(zip([1,2,3,4],[5,6,7,8,9],['a','b']))
    [(1, 5, 'a'), (2, 6, 'b')]

2.函数内变量的作用域

变量的作用域与其定义的方式有关:
    局部变量:变量在函数内部定义,则变量的作用域在函数内部
    全局变量:变量在函数的外部定义,则变量的作用域是全局

    global:用来在函数或其它局部作用域中,声明全局变量.(作用于全局)
    nonlocal:用在函数或其它作用域中,声明外层(非全局)变量。(作用于局部)
使用global情况:
    全局变量可以在函数内部访问,但 不能改变
    如果在函数内部想修改全局变量,可以使用global来修饰变量

    局部变量只能在局部进行访问和修改
    如果在函数外部,想访问局部变量,也可以使用global,将局部变量声明为全局变量

使用nonlocal的情况:
    当里层局部,需要修改外层局部时,需要使用nonlocal。(如:嵌套函数)

总结:
    global: 函数中,需要修改全局变量时使用
    nonlocal:当里层局部,需要修改外层局部时,使用。(局部调用局部,使用nonlocal)

2.1 全局、局部变量
    x=1         #全局变量,全局能被局部引用,但不能被局部修改
    def fun():
        y=2     #局部变量不能进入全局
        print(x,y)
2.2 局部修改全局变量,使用global
    x=1
    def fun():
        global x   #先声明
        x += 1
        print(x)
2.3 全局调用局部变量,使用global
    def fun():
        global x
        x = 1
        print(x)
2.4 局部变量
    def test():
        a=1             #局部外层变量
        print(a)
        def test2():
            b=2         #局部里层变量
            print(a,b)
        test2()         #没有此行,只输出test()。test2()不输出
     >>> test()
      1
      1 2
  2.5 局部里层修改局部外层:
    def test():
      a=1       #局部外层
      print(a)
      def test2():
          b=2       #局部里层
          nonlocal a        #声明为局部变量
          a += 1            #修改变量
          print(a,b)
    test2()
    >>> test()
    1
    2 2

3.内嵌函数和闭包

嵌套函数:
  def test():
      a=1
      print(a)
      def test2():
          b=2
          nonlocal a
          a += 1
          print(a,b)
      test2()       #嵌套函数调用内嵌函数
 闭包<两个函数,嵌套>:
     def test():
        a=1
        print(a)
        def test2():
            b=2
            print(b)
        return test2    #返回里层函数的函数体-闭包
    >>> test()
    1
    <function test.<locals>.test2 at 0x00000000005B7F28>
回调函数<两个函数,不嵌套>:
    def test1():
        print('first')
    def fun(a):
        a()
        print('two')
    fun(test1)
    ================== RESTART: C:\Users\xinyu\Desktop\test.py ==================
    first
    two

4.递归

函数调用自己本身

'''
例题:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
       问第4个人岁数,他说比第3个人大2岁。
       问第三个人,又说比第2人大两岁。
       问第2个人,说比第一个人大两岁。
       最后问第一个人,他说是10岁。
       请问第五个人多少岁?
'''
递归的核心:
    1.递归推导式
    2.递归终止条件
def age(n):
    if n == 1:
        return 10
    else:
        return age(n-1)+2

阶乘: 5!=5*4*3*2*1
#n != n*(n-1)*(n-2)*....1
def jicheng(n):
    if n == 1:
        return 1
    else:
        return jicheng(n-1)*n

--结束END--

本文标题: python基础-内置函数-作用域-闭包

本文链接: https://www.lsjlt.com/news/192374.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python基础-内置函数-作用域-闭包
    内置函数-作用域-闭包-递归 1.几个可能用到的内置函数 查看内置函数: print(dir(__builtins__)) 常见函数: len 求长度 min 最小值 max 最大值 sorted 排...
    99+
    2023-01-31
    函数 作用 基础
  • python基础之内置函数
    https://docs.python.org/3/library/function.html #python官方网址 # 取绝对值 print(a...
    99+
    2022-11-12
  • 基于Python函数的作用域规则和闭包(详解)
    作用域规则 命名空间是从名称到对象的映射,Python中主要是通过字典实现的,主要有以下几个命名空间: 内置命名空间,包含一些内置函数和内置异常的名称,在Python解释器启动时创建,一直保存到解释器退出。...
    99+
    2022-06-04
    详解 函数 规则
  • Python基础3 函数、递归、内置函数
    本节内容1. 函数基本语法及特性2. 参数与局部变量3. 返回值嵌套函数4.递归5.匿名函数6.函数式编程介绍7.高阶函数8.内置函数温故知新1. 集合主要作用: 去重关系测试, 交集\差集\并集\反向(对称)差集>>> ...
    99+
    2023-01-31
    递归 函数 基础
  • JavaScript(函数,作用域和闭包)
    目录 一,什么是函数1.1,常用系统函数1.2,函数声明 1.3,函数表达式二,预解析2.1,函数自调用 2.2,回调函数三,变量的作用域3.1,隐式全局变量 四,作用域与块级作用...
    99+
    2023-09-05
    前端 javascript 开发语言
  • Python基础globlalnonlocal和闭包函数装饰器语法糖
    目录一、global与nonlocal1、global2、nonlocal二、函数名的多种用法三、闭包函数1、什么是闭包函数2、闭包函数需满足的条件3、闭包函数的作用4、闭包函数的实...
    99+
    2022-11-11
  • Python函数的作用域及内置函数详解
    目录1.函数的作用域2.函数的调用详解3.内置函数总结1.函数的作用域 -- 内置 -- 全局,顶格写 -- 局部,函数内部 a = 34 #全局变量 def run(): ...
    99+
    2022-11-12
  • 【PHP】函数-作用域&可变函数&匿名函数&闭包&常用系统函数
    文章目录 函数定义&使用命名规则参数种类默认值引用传递函数返回值return关键字 作用域global关键字静态变量 可变函数匿名函数闭包常用系统函数输出函数时间函数数学函数与函数相关...
    99+
    2023-08-31
    php 开发语言
  • 【6】装饰器、闭包、偏函数、变量作用域问
            【一】、装饰器思想 装饰器是其实想增加一个函数的功能,但是又不想变动原来函数的代码,就用装饰器。 比如:我们用别人的一个函数,又不是很满意,所以用装饰器装饰一下即可。   def fun1(): print(...
    99+
    2023-01-30
    变量 函数 作用
  • Python基础常用内建函数图文示例解析
    目录abs()all()any()bin()bool()callable()abs() 返回一个数字的绝对值,它的参数可以是整数或者浮点数。举个例子: all() 参数为...
    99+
    2022-11-12
  • MySQL与PHP的基础与应用专题之内置函数
    概述 从今天开始, 小白我将带领大家一起来补充一下 数据库的知识. MySQL 内置函数 MySQL 内置函数可以帮助我们更方便的处理表中的数据, 简化操作. 数学函数: ...
    99+
    2022-11-13
  • python容器的内置通用函数操作
    学委之前分享了tuple/list和dict等类型,这几个类型都是用来存放数据的容器。 python对它们有几个通用的操作。 我们看一看。 这些数据容易的通用操作都有哪些? 除了数据...
    99+
    2022-11-12
  • Python内置函数Map、Reduce和Filter的作用
    本篇内容主要讲解“Python内置函数Map、Reduce和Filter的作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python内置函数Map、Reduce和Filter的作用”吧! m...
    99+
    2023-06-02
  • 如何使用Python中的内嵌函数和嵌套作用域
    如何使用Python中的内嵌函数和嵌套作用域Python是一种功能强大的编程语言,它为开发者提供了许多有用的功能和工具。其中,内嵌函数和嵌套作用域是Python中的两个重要概念。本文将介绍如何使用这些概念,并提供具体的代码示例。在Pytho...
    99+
    2023-10-28
    作用域链 Python内嵌函数 嵌套作用域
  • 如何使用Python中的内嵌函数和闭包实现一个计数器
    如何使用Python中的内嵌函数和闭包实现一个计数器Python作为一种功能强大的编程语言,提供了很多灵活的工具和技术,使得开发过程变得简单而高效。其中,内嵌函数和闭包是Python中非常重要的概念之一。在本文中,我们将探讨如何利用这两个概...
    99+
    2023-10-22
    闭包 计数器 内嵌函数
  • python字符串内置函数的作用有哪些
    Python字符串内置函数的作用有以下几种:1. len():返回字符串的长度。2. str():将其他类型的数据转换为字符串。3....
    99+
    2023-09-16
    python
  • 详解操作python容器的内置通用函数
    目录这些数据容易的通用操作都有哪些?我们看看几个容器的代码总结这些数据容易的通用操作都有哪些? 除了数据的增删查改(除了tuple不可变长度和元素不可变),我们还需要下面的操作: ...
    99+
    2022-11-12
  • 使用python怎么操作内置进制转换函数
    这篇文章给大家介绍使用python怎么操作内置进制转换函数,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。dec = input('10进制数为:')print("转换为二进...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作