python里的集合

  1.集合的概念

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

  2.集合的主要作用

    1)去重

      举例说明:      

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     a = [4,6,8,10,6]
    print(set(a))
    运行结果:{8, 10, 4, 6}
   2)关系测试
    关系测试主要包括交集,差集,并集,反向(对称)差集等。
    关系测试举例说明:
    交集例子:      
      #!/usr/bin/env python
      # _*_ coding:utf-8 _*_       a = set([4,6,8,10])
      b = set([2,6,7,8])
      print(a&b)
      运行结果:{8, 6}      并集例子:       #!/usr/bin/env python
      # _*_ coding:utf-8 _*_

      a = set([4,6,8,10])
      b = set([2,6,7,8])
      print(a|b)
      运行结果:{2, 4, 6, 7, 8, 10}
   
     差集例子:
    
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     a = set([4,6,8,10])
    b = set([2,6,7,8])
    print(a-b)
    运行结果:{10, 4}     
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     a = set([4,6,8,10])
    b = set([2,6,7,8])
    print(b-a)
    运行结果:{2, 7}      反向(对称)差集例子:    
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     a = set([4,6,8,10])
    b = set([2,6,7,8])
    print(b^a)
    运行结果:{2, 4, 7, 10} python里的函数 
1.函数的基本语法和一些特性 

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段;函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数;编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

  函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。

  函数的特性:

  1. 减少重复代码
  2. 使程序变的可扩展
  3. 使程序变得易维

  函数语法定义:例子

  def sayhi():#函数名

      print("Hello, I'm nobody!")
 
  sayhi() #调用函数
  
  函数的例子: 
  

  #!/usr/bin/env python
  # _*_ coding:utf-8 _*_   def func():
  print("nice to meet you !")
  func()
  运行结果:
    nice to meet you !   
  #!/usr/bin/env python
  # _*_ coding:utf-8 _*_   def func(Y):
  print("Lisa is %d years old"%Y)
  func(26)
  运行结果:Lisa is 26 years old 2.函数的参数与变量
  函数的参数:    

    形参:形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。

    实参:实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值。

  

     1)默认参数:例子 
    不带默认参数:   
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
  
    def func(name,sex,age,job):
    print("名字:",name)
    print("性别:",sex)
     print("年龄:",age)
    print("职业:",job)     func("jack","Man","30","IT")
    运行结果:      

      名字: jack
      性别: Man
      年龄: 30
      职业: IT

     带默认参数:    

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     def func(name,age,job,sex="Man"):
    print("名字:",name)
    print("性别:",sex)
    print("年龄:",age)
    print("职业:",job)     func("jack","30","IT")    
    运行结果:      

      名字: jack
      性别: Man
      年龄: 30
      职业: IT

    2)关键参数:例子

    正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可,但记住一个要求就是,关键参数必须放在位置参数之后。

    

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_     def func(name,age,job,sex):
    print("名字:",name)
    print("性别:",sex)
    print("年龄:",age)
    print("职业:",job)     func(age="30",name="jack",sex="Man",job="IT")
    运行结果:     

      名字: jack
      性别: Man
      年龄: 30
      职业: IT

 
     3)非固定参数:例子
      如果你的函数在定义时不确定用户想传入多少个参数,就可以使用非固定参数。
      带有一个"*"的形参:*args 会把多传入的参数变成一个元组形式      
#!/usr/bin/env python
        # _*_ coding:utf-8 _*_         def func(name,age,*args):
        print(name,age,args)         func("jack",26,"Man","IT")
        运行结果:
        jack 26 ('Man', 'IT')     
     带有两个"*"的形参:**kwargs 会把多传入的参数变成一个字典形式
      
      #!/usr/bin/env python
      # _*_ coding:utf-8 _*_       def func(name,age,*args,**kwargs):
      print(name,age,args,kwargs)       func("jack",26,"Man","IT",num="011")
      运行结果:
      jack 26 ('Man', 'IT') {'num': '011'}   
  与函数相关的变量:
  局部变量:例子    
    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    name = "Rain"
    def func(name):
    print(name)
    name = "Lucase"
    print(name)     func("jack")
    运行结果:

      jack
      Lucase

   全局变量和局部变量:

    在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。例如上个例子中第一个name就是全局变量,接下来函数里的name都是局部变量,虽然他们的名字一样,但是他们没有任何关系和关联。    

    全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
 
  
   函数的返回值:要想获取函数的执行结果,就可以用return语句把结果返回。

    注意:

      a.函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束;

      b.如果未在函数中指定return,那这个函数的返回值为None 。

 
 
  
    

    
      

  

 


  
    
												

python自动化开发-3的更多相关文章

  1. python自动化开发学习 进程, 线程, 协程

    python自动化开发学习 进程, 线程, 协程   前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...

  2. python自动化开发学习 I/O多路复用

    python自动化开发学习 I/O多路复用   一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听so ...

  3. Python自动化开发-简介

    1.Python简介 Python创始人  Guido Van Rossum,人称"龟叔",1989年圣诞节期间,为了在阿姆斯特丹打发时间,开发的一个新的脚本解释程序 作为ABC语 ...

  4. python自动化开发-1

    1.python简介 python是一门简明并且强大的面向对象的开发语言,已经在WEB开发,软件开发,科学计算,大数据分析,自动化运维等领域得到了广泛的应用. 注意:所有测试均已python3为主,与 ...

  5. 写给深圳首期Python自动化开发周未班的信

    你是否做了正确的决定? 深圳首期周未班的同学们大家好,我是Alex, 老男孩教育的联合创始人,Python项目的发起人,51CTO学院连续2届最受学员喜爱的讲师,中国最早一批使用Python的程序员, ...

  6. python自动化开发-2

    1.python的数据类型之列表 列表是Python开发语言中最常见的数据类型之一,通过列表可以实现对数据的增删改等常用操作. 列表的定义:例子 names = ["Lucy",& ...

  7. python自动化开发-[第二十一天]-form验证,中间件,缓存,信号,admin后台

    今日概要: 1.form表单进阶 2.中间件 3.缓存 4.信号 5.admin后台 上节课回顾 FBV,CBV 序列化 - Django内置 - json.dumps(xxx,cls=) Form验 ...

  8. python自动化开发-[第十六天]-bootstrap和django

    今日概要: 1.bootstrap使用 2.栅格系统 3.orm简介 4.路由系统 5.mvc和mtv模式 6.django框架 1.bootstrap的引用方式 1.Bootstrap 专门构建了免 ...

  9. python自动化开发-[第十一天]-Mysql

    今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格 ...

  10. python自动化开发-[第十天]-线程、协程、socketserver

    今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading imp ...

随机推荐

  1. Java学习笔记45(多线程二:安全问题以及解决原理)

    线程安全问题以及解决原理: 多个线程用一个共享数据时候出现安全问题 一个经典案例: 电影院卖票,共有100座位,最多卖100张票,买票方式有多种,网上购买.自主售票机.排队购买 三种方式操作同一个共享 ...

  2. LabVIEW(十四):VI属性

    1.VI的属性在项目研究中是很常用的,但是会经常忽略VI的属性设置,建议在编程事常常运用这些属性的设置,这样就可以使你的程序更加完善,易懂性也会提高. 属性快捷键:Ctrl+I. 2.常规 (1).编 ...

  3. Testing - 软件测试知识梳理 - 测试阶段

    估算 测试对软件工作量的估算的准确性 测试评估软件系统的状况的准确性 关注点: 不准确的估算 不适当的开发过程 不真实的状态报告 如何知道对工作量的估算是正确的 估算工作量的工具很容易出错 对软件工作 ...

  4. 干货:教你如何监控 Java 线程池运行状态

    之前写过一篇 Java 线程池的使用介绍文章<线程池全面解析>,全面介绍了什么是线程池.线程池核心类.线程池工作流程.线程池分类.拒绝策略.及如何提交与关闭线程池等. 但在实际开发过程中, ...

  5. .NET手记-定义类和接口的扩展方法

    对于iOS开发者来说,使用扩展方法是家常便饭.因为有很多的类是有系统框架的定义的,我们不能修改或者不想修改他们的源码,但是我们又想要给他添加一些扩展方法来使用.这时定义扩展方法就是很有用的方式了,正如 ...

  6. 内存管理cpuset,mempolicy[原理]

    介绍cpuset,mbind,set_mempolicy在内存管理上的应用 change log :确定先从mempolicy的man 手册翻译开始研究,计划如下 .先从man手册入手,通过实现mem ...

  7. 【2019北京集训2】Elephant 平衡树

    题目大意:给你一个长度为$n$的序列$A_i$,有$q$次操作,每次操作为以下三种之一: 询问区间的$F_M(A_i)$的最大公约数. 区间翻转,区间加一个正数. 我们定义$gcd(0,0)=0$,且 ...

  8. RPC的原理总结

    一.RPC的引入 早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能.这不是整人么?于 ...

  9. mongodb数据库添加权限及简单数据库命令操作笔记

    加固mongodb建议:修改数据库默认端口,添加数据库访问权限: 启动数据库(裸奔):C:\mongodb\bin>mongod --dbpath C:\MongoDB\data(同时用--db ...

  10. Android Bug分析系列:第三方平台安装app启动后,home键回到桌面后点击app启动时会再次启动入口类bug的原因剖析

    前言 前些天,测试MM发现了一个比较奇怪的bug. 具体表现是: 1.将app包通过电脑QQ传送到手机QQ上面,点击安装,安装后选择打开app (此间的应用逻辑应该是要触发 [闪屏页Activity] ...