• python函数--day14-03


    集合(set):把不同的元素组成一起形成集合,是python基本的数据类型。

    集合元素(set elements):组成集合的成员(不可重复)

    集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键

    什么是可哈希,不可哈希?

     

    什么是可哈希(hashable)?
    简要的说可哈希的数据类型,即不可变的数据结构(字符串str、元组tuple、对象集objects)。
      哈希有啥作用?

    它是一个将大体量数据转化为很小数据的过程,甚至可以仅仅是一个数字,以便我们可以用在固定的时间复杂度下查询它,所以,哈希对高效的算法和数据结构很重要。

    什么是不可哈希(unhashable)?
    同理,不可哈希的数据类型,即可变的数据结构 (字典dict,列表list,集合set)

    集合分类:可变集合、不可变集合

    可变集合(set):可添加和删除元素,非可哈希的,不能用作字典的键,也不能做其他集合的元素

    不可变集合(frozenset):与上面恰恰相反

    函数有什么作用?

    1.减少重复代码

    2.方便修改,更容易扩展

    3.保持代码一致性

    #加法器
    def add(*args):	#*args构造成了元组
    	print(args)   #args表示参数
    	sum = 0
    	for v in args:
    		sum += v
    
    	return sum
    
    
    print(add(1, 4, 6, 9))
    print(add(1, 4, 6, 9, 5))
    
    
    def print_info(**kwargs):  #**kwargs创建了字典;kwargs 关键字参数参数
    	print(kwargs)	#**kwargs创建了字典
    	for i in kwargs:
    		print('%s:%s' % (i, kwargs[i]))  # 根据参数可以打印任意相关信息了
    
    	return
    
    
    print_info(name='alex', age=18, sex='female', hobby='girl', nationality='Chinese', ability='Python')
    

      

    ###########################位置
    
    def print_info(name, *args, **kwargs):   # 位置不能错  

    # def print_info(name,**kwargs,*args):报错 print('Name:%s' % name) print('args:', args) print('kwargs:', kwargs) return print_info('alex', 18, hobby='girl', nationality='Chinese', ability='Python') #print_info(hobby='girl','alex',18,nationality='Chinese',ability='Python') #报错 # print_info('alex',hobby='girl',18,nationality='Chinese',ability='Python') #报错
    #关于不定长参数的位置: *args放在左边,元组, *kwargs参数放在右边,字典
    #若有默认参数,放左边。

      

    函数的返回值return

    要想获取函数的执行结果,就可以用return语句把结果返回

    注意:

    1. 函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
    2. 如果未在函数中指定return,那这个函数的返回值为None  
    3. return多个对象,解释器会把这多个对象组装成一个元组作为一个一个整体结果输出。

    5.1 作用域介绍 

    python中的作用域分4种情况:

    • L:local,局部作用域,即函数中定义的变量;
    • E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;
    • G:globa,全局变量,就是模块级别定义的变量;
    • B:built-in,系统固定模块里面的变量,比如int, bytearray等。

    搜索变量的优先级顺序依次是:作用域局部 >外层作用域>当前模块中的全局>python内置作用域,也就是LEGB。

    x = int(2.9)  # int built-in  系统固定模块里面的变量
     
    g_count = 0  # global  全局变量
    def outer():
        o_count = 1  # enclosing 嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;
        def inner():
            i_count = 2  # local  局部作用域,即函数中定义的变量;局部作用于不能修改全局变量
            print(o_count)
        # print(i_count) 找不到
        inner() 
    outer()
     
    # print(o_count) #找不到
    

      

  • 相关阅读:
    srum.3
    进程调度
    Scrum 项目——1
    《构建之法》—第6-7章
    团队合作——2
    团队合作——1
    作业调度_3
    作业调度——实验2
    典型用户
    【软件工程】做汉堡包
  • 原文地址:https://www.cnblogs.com/BBS2013/p/13362638.html
Copyright © 2020-2023  润新知