python :函数变量作用域和类型判断

    Python编程 wuya 75次浏览 已收录 0个评论

    变量作用域

    • 块级作用域
      if True:
          a = 250
      
      # 在代码块内部定义的变量可以在代码块外部使用
      # 说明没有块级作用域
      print(a)
    • 局部作用域
      def test():
          b = 100
      
      test()
      # 函数内部定义的变量只能在函数内使用
      # 说明有局部作用域,外部使用会报错
      # print(b)
    • 全局作用域
      c = 200
      
      def show():
          # 声明使用全局变量,然后就可以随意使用了
          global c
          # c = 100   # 这样相当于定义了新的局部变量
          # 函数内部可以使用全局变量,但是不能修改
          print('in func show:', c)
          c = 100
      
      show()
      print(c)
    • nonlocal
      def wai():
          d = 200
          def nei():
              # 若想修改外部函数的局部变量,需要使用nonlocal进行声明
              nonlocal d
              # d = 300 # 这样相当于定了局部变量
              # 内部函数中可以使用外部函数的局部变量,但是不能改
              # d += 100
              print(d)
              d += 100
          nei()
          print(d)
      
      wai()

    类型判断

    • 示例:
      a = 100
      print(type(a))
      
      # if type(a) == int:        # 与特定的类型对比
      # if type(a) == type(123):  # 与已知的类型对比
      if isinstance(a, int):      # 使用专门的类型判断函数,是返回True,不是返回False
          print(a, '是整型变量')
          
      def test():   
          pass
      
      print(type(test))
      
      # 不能使用这种方式判断是否是函数
      # print(isinstance(test, function))
      
      # 使用专门的函数进行判断,是返回True,不是返回False
      from inspect import isfunction
      
      print(isfunction(test))
      
      # 判断一个对象是否可以调用,能够调用的不一定都是函数
      print(callable(test))
      print(callable(a))

    练习:

    • 前面的练习试着封装成函数
    • 删除列表中重复的元素,保持元素顺序不变
    • 统计一个字符串中数字、字母以及其他字符的个数,返回一个元组
    • 完成列表的排序,能够支持升序和降序

    学海无涯 , 版权所有丨如未注明 , 均为原创丨转载请注明python :函数变量作用域和类型判断
    喜欢 (0)
    发表我的评论
    取消评论
    表情 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址