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打包返回的数据,只能使用一次

运行结果:

 

猜你喜欢

转载自www.cnblogs.com/bluesea-zl/p/12184537.html