python -- 函数、集合

1、集合

  集合也属于一种数据类型,类似于list,具有无序、去重的特点,即集合里没有重复的数据。

  通过{}来定义集合,用set()来强制转换成集合。

1 list = [1,2,2,4,5,3,2]      #定义列表
2 s_list = set(list)          #强制转换为集合
3 print(s_list)
4 
5 s_list_2 = {1,2,3,3,4,5}    #通过{}直接定义集合
6 print(s_list_2)

  集合操作

    set1.intersection(set2)  交集:两个集合都有   

    set1.union(set2)       并集:两个集合所有合并,自动去重  

    set1.difference(set2)    差集:两个集合,其中一个有,即集合1有,集合2没有  

    set3.issubset(set1)      子集:set3是否为set1的子集  

    set1.issuperset(set3)    父集:set1是否为set3的父集  

 1 set1 = {1,2,3,4,5,6}
 2 set2 = {2,3,4,7,8}
 3 set3 = {5,6}
 4 
 5 print(set1.intersection(set2))      #交集
 6 print(set1.union(set2))             #并集
 7 print(set1.difference(set2))        #差集,set1有,set2没有
 8 print(set3.issubset(set1))          #子集,set3是否为set1子集
 9 print(set1.issuperset(set3))        #父集,set1是否为set3的父集
10 
11 set1.add(7)                         #添加元素
12 set1.update([77,66,66])             #添加元素
13 set1.remove(77)                     #删除元素,若不存在会报错
14 set1.pop()                          #随机删除元素,并返回删除的元素
15 set1.discard(2)                     #删除元素,若存在,则删除,不存在则不做处理

2、函数

  函数是一组语句的集合, 通过函数名封装起来,用到时直接调用即可。

   函数定义

    定义函数用def关键字,后面跟函数名,注意函数名不能重复

1 def fun():            #定义一个函数,后面是函数名
2     print("Hello World")    #函数体

  函数参数

    函数的参数有形参、实参之分,形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。

    因此,形参只在函数内部有效。实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用

    时,它们都必须有确定的值,以便把这些值传送给形参。函数调用结束返回主调用函数后则不能再使用该形参变量。

1 def plus(a,b):      #a,b为形参
2     print(a+b)
3 plus(2,3)           #2,3为实参

  形参

    分为位置参数、默认参数、可变参数、关键字参数四种;

    位置参数就是按照参数位置进行传参,如下面例子的a,b就是位置参数,位置参数是必传参数

    默认值参数就是在定义形参时给定一个默认值,若指定默认值,则默认值参数为指定值,若未指定默认值,则按默

    认值传参;

    可变参数的参数是不固定的,可变参数用【*args】表示,可变参数必须在位置参数和默认值参数后面,是非必传参数

    关键字参数用【**kwargs】表示,需要用关键字传参,也是非必传参数;

1 def regedit(name,sex,age=18,*args,**kwargs):
2     print(name,sex,age=18,*args,**kwargs)
3 regedit("bob","male","score","addr",phone="137xxxxxx")

  函数返回值

    函数都有返回值,若未在函数里指定返回值,则在执行完返回none,函数也可有多个返回值,并存入一个元组

    函数返回值使用return,函数遇到return就立即结束

1 def plus(a,b):      
2     c = a + b
3     return c,a,b
4 print(plus(2,3))    #返回一个元组(5, 2, 3)

 3、局部变量和全局变量

  局部变量只在函数内部生效,全局变量在整个程序都生效,定义爱程序最前面的都是全局变量,在函数中修改的话,需要

  使用【global】关键字声明,如果是局部变量,则不需加【global】

 1 name = 'marry'#字符串全局变量
 2 names = []#list全局变量
 3 print(name)
 4 print(names)
 5 
 6 def test():
 7     global name #修改name的值就需要用global关键字
 8     name = 'Sriba'
 9     names.append(name)#修改全局变量names的值
10     return names
11 test()调用函数
12 print('修改后',name)
13 print('修改后names',names)

 

 

 

    

posted @ 2017-06-09 22:59  试尝百味  阅读(248)  评论(0编辑  收藏  举报