集合与函数

一、集合简介 (set)

1.与列表基本一致

2.与列表不同点:①只能存不可变的对象

②无序性(插入的与储存顺序不一致)

③不能重复出现(自动省略重复的,只出现第一个)

#创建集合

①使用  {}    空集合不能用这个创建  s = set()是字典

② 用 set()函数来创建  (可以把序列与字典转换成集合,但是字典只能打印其键)

注:set 没有索引值,若想取元素要先将其转换成列表

#集合的使用

①in 与 not in  检查是否在set里并且返回一个bool值

②len()        个数(长度)

③add()        添加元素

④update()  将一个集合的元素添加到当前函数中

⑤pop()        随机删除一个元素  有返回值

⑥remove()  删除指定的值    remove(值)

⑧clear()      清空集合

#集合的运算

a = {1,2,3,4,5}

b = {3, 4,5,6,7}

①&交集    如 a & b    {4,5}

②Ⅰ 并集    如 a ^ b    {1,2,3,4,5,6,7}

③-差集  分两种情况 但总是打印 减数里面没有的元素

1.  a - b  得{1 , 2}

2.  b - a  得{6,7}

④^亦或集  就是两个集合不一样的元素

如:  a ^ b 得{1,2,6,7}

⑤ <= 检查一个集合是否是另一个集合的子集  同时返回一个bool 值

⑥ <      是否是真子集

⑦ >=  是否是超集

⑧>      是否是真超集

二、 函数 (function)   

  函数简介

1.函数也是对象                                                                2.对象是内存中专门用来存储数据的一块区域          3.用来保存可执行代码并多次调用 

#语法                                                                              def  函数名( [形参])  :  (注: 形参可多个)                            代码块

def  fn( ):                                                                                print(‘hello’)                                                                print(fn)  得  fn的内存地址                                          fn()            得  hello

总结:fn 是函数对象  ,fn( ) 是调用函数

  函数的参数

1.可以多个形参(就相当于函数内部定义了变量)        2.  有几个形参就要传几个实参(实际函数就是函数定义时指定形参,那么调用函数的时候也必须传递实参)

  函数的传递方式

1.定义形参的时候,可以为形参定义一个默认值      2.指定的默认值以后,如果用户传递参数,则默认值不会产生任何作用                                                      3.如果用户没有传递参数,那么默认值将生效

①位置传参:将对应位置的实参传递给形参  如:          def  fn(a=2,b=5,c=9):                                      若 fn(1,2,3)  得a=1,b=2,c=3

②关键字传参:可以不按形参定义的顺序,而根据参数名传参

③位置传参和关键字传参可以混合使用,但必须把位置传参放在前面

图片发自App

实参的类型

1.函数在调用的时候,解释器不会检测实参的类型,实参可以是任意对象                                              2. 在函数中对形参进行重新赋值不会影响 其他的变量                                                                                      3.如果形参在执行的时候,当我们通过形参去修改对象的时候,就会影响到指向该对象的变量

这个独立不影响其他

不定长参数

1.在定义函数时,可以在形参的前面加上一个*号,这个形参将获取所有的实参,保存在元祖内      2.可变参数不必须写在最后,但*号后面要用关键字默认值

图片发自App

3.也可以两个*号,但是只能有一个并且只能放最后,保存在字典中,字典中key就是参数的名称,value就是参数的值

图片发自App

    参数的解包

所有的序列都可以解包,要求序列中的元素与形参个数一致

图片发自App

字典解包

                                                                               

你可能感兴趣的:(集合与函数)