zoukankan      html  css  js  c++  java
  • Python全栈自动化系列之Python编程基础(函数的作用域、内置函数)

      一、函数的作用域

    全局变量:直接定义在模块中,在该模块的任何地方都可以直接使用

    局部变量:定义在函数内部的变量,只能在定义的这个函数内部使用

    note:模块,以.py结尾的文件,可以把它叫做模块

    注意点:尽量不要在函数内部定义与全局变量同名的变量;如果必须要定义一个同名的变量,那么建议放在函数的最前面

      ****全局变量以及局部变量的理解***********
      # 全局变量
      name = "zl"
      def func():
        # 局部变量
        a = 100
        # 函数内部使用
        print(a)
        # 函数内部使用全局变量
        print(name)

      func()
      # 全局变量可以用
      print(name)

    运行结果:

     二、在函数中使用关键字global,来声明变量,操作后可以对全局生效

      a = 100
      b = 200
      def func1():
        global a, b   # global声明摸个变量之后,那么这个变量在函数内部进行操作会对全局变量生效

        # 局部变量
        a = 999
        b = 789
        print("函数内打印a:",a)

      func1()
      print("函数外打印a:",a)
      print("函数外打印b:",b)

    运行结果:

     三、高级内置函数

    1)enumerate:利用他可以同时获取索引以及值

      li = [11,22,331,21,322]

      res = enumerate(li)
      for i in res:
        print(i)

    运行结果:

     2)eval:识别字符串中有效的python表达式

      str1 = '{"a":11,"b":22}'
      str2 = "[11,22,33,44]"
      # 把str1转换为字典
      dic1 = eval(str1) # 相当于----->dic1 = {"a":11,"b":22}
      print(dic1,type(dic1))
      # 把str2转换成列表
      li = eval(str2)
      print(li,type(li))

    运行结果:

     3)zip :聚合打包,列表元素长短不一时,以最短的为基准

    注意点:zip打包返回的数据,只能使用一次

      li = [1,2,3,4]
      li2 = [11,22,33,44,55]
      li3 = [111,222,333,444,555,666,777]
      res = zip(li,li2,li3)
      print(list(res))

    运行结果:

     zip打包返回的数据,只能使用一次

      # 转换成字典
      title = ["aa","bb","cc"]
      value = [11,22,33]
      res = zip(title,value)
      print(dict(res))
      print(list(res))  # 注意点:zip打包返回的数据,只能使用一次

    运行结果:

     

    4)filter:过滤器(根据第二个参数来决定是否把函数中的数据过滤出来)

    有两个参数:第一个参数,函数;第二个参数,可迭代对象(iterable)

    注意:iterable:可迭代对象

      简单理解,就是可以使用for循环遍历的都是可迭代对象,例如,字符串、列表、字典、集合、以及range所创建的数据

    过滤的原理:filter会将第二个参数中的数据,进行遍历,然后当成参数传入给第一个参数(即函数中),根据函数返回的结果说否为True,来决定是否把数据过滤出来

    例如:

    def func(a):
    print("这个是传入的参数a:",a)
    # 通过写过滤的条件
    return a>100 # 过滤大于100的数 (返回过滤)

    li = [11,22,33,44,111,222,333]

    res = filter(func,li)
    print("返回过滤后的数据为:",list(res))

    运行结果:

  • 相关阅读:
    QT UAC问题汇总贴
    被动的流氓
    Web前端优化需要注意的点
    VS快捷键
    延时过程中要加上app.processEvents(),进度条里也要加上这句
    Nim语言:Pascal的语法,Python的缩进
    QString转换成LPCWSTR
    Pascal编译器大全(非常难得)
    WCF学习心得----(三)服务承载
    SafeSEH原理及绕过技术浅析
  • 原文地址:https://www.cnblogs.com/bluesea-zl/p/12184537.html
Copyright © 2011-2022 走看看