python自动化开发-3
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。
函数的定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。
函数的特性:
- 减少重复代码
- 使程序变的可扩展
- 使程序变得易维
函数语法定义:例子
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
#!/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都是局部变量,虽然他们的名字一样,但是他们没有任何关系和关联。
注意:
a.函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束;
b.如果未在函数中指定return,那这个函数的返回值为None 。
python自动化开发-3的更多相关文章
- python自动化开发学习 进程, 线程, 协程
python自动化开发学习 进程, 线程, 协程 前言 在过去单核CPU也可以执行多任务,操作系统轮流让各个任务交替执行,任务1执行0.01秒,切换任务2,任务2执行0.01秒,在切换到任务3,这 ...
- python自动化开发学习 I/O多路复用
python自动化开发学习 I/O多路复用 一. 简介 socketserver在内部是由I/O多路复用,多线程和多进程,实现了并发通信.IO多路复用的系统消耗很小. IO多路复用底层就是监听so ...
- Python自动化开发-简介
1.Python简介 Python创始人 Guido Van Rossum,人称"龟叔",1989年圣诞节期间,为了在阿姆斯特丹打发时间,开发的一个新的脚本解释程序 作为ABC语 ...
- python自动化开发-1
1.python简介 python是一门简明并且强大的面向对象的开发语言,已经在WEB开发,软件开发,科学计算,大数据分析,自动化运维等领域得到了广泛的应用. 注意:所有测试均已python3为主,与 ...
- 写给深圳首期Python自动化开发周未班的信
你是否做了正确的决定? 深圳首期周未班的同学们大家好,我是Alex, 老男孩教育的联合创始人,Python项目的发起人,51CTO学院连续2届最受学员喜爱的讲师,中国最早一批使用Python的程序员, ...
- python自动化开发-2
1.python的数据类型之列表 列表是Python开发语言中最常见的数据类型之一,通过列表可以实现对数据的增删改等常用操作. 列表的定义:例子 names = ["Lucy",& ...
- python自动化开发-[第二十一天]-form验证,中间件,缓存,信号,admin后台
今日概要: 1.form表单进阶 2.中间件 3.缓存 4.信号 5.admin后台 上节课回顾 FBV,CBV 序列化 - Django内置 - json.dumps(xxx,cls=) Form验 ...
- python自动化开发-[第十六天]-bootstrap和django
今日概要: 1.bootstrap使用 2.栅格系统 3.orm简介 4.路由系统 5.mvc和mtv模式 6.django框架 1.bootstrap的引用方式 1.Bootstrap 专门构建了免 ...
- python自动化开发-[第十一天]-Mysql
今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格 ...
- python自动化开发-[第十天]-线程、协程、socketserver
今日概要 1.线程 2.协程 3.socketserver 4.基于udp的socket(见第八节) 一.线程 1.threading模块 第一种方法:实例化 import threading imp ...
随机推荐
- Android精通:View与ViewGroup,LinearLayout线性布局,RelativeLayout相对布局,ListView列表组件
UI的描述 对于Android应用程序中,所有用户界面元素都是由View和ViewGroup对象构建的.View是绘制在屏幕上能与用户进行交互的一个对象.而对于ViewGroup来说,则是一个用于存放 ...
- Java高级开发必会的50个性能优化细节
在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身.养成良好的编码习惯非常重要,能够显著地提升程序性能. 1. 尽量在合适的场合使用单例 使用单例可以减轻加载的负担,缩短加载的时 ...
- asp.net mvc 安全测试漏洞 " HTTP 动词篡改的认证旁路" 问题解决
IBM Security Appscan漏洞筛查-HTTP 动词篡改的认证旁路漏洞,具体解决方案: 在Web.Config中system.webServer节点增加配置security: <se ...
- setting-mirrorO以及下载jar包流程简介
mirrorOf常见的几种配置如下 1.* 2.repo3 3.repo1,repo2,*,!repo3 4.external:* 第二个例子只配置了一个repo3,这个镜像只能匹配id是repo3的 ...
- 链表的创建(C语言实现)
学习链表之前,我们要知道为什么要引入链表. C语言中的数组使用之前,我们必须要定义数组的大小.但是当我们不知道数据个数(或者很大)时,定义数组大小就成了一个困扰,而且对于这么多数据的处理也会很麻烦.所 ...
- mysql 开发进阶篇系列 38 mysql日志之错误日志log-error
一.mysql日志概述 在mysql中,有4种不同的日志,分别是错误日志,二进制日志(binlog日志),查询日志,慢查询日志.这此日志记录着数据库在不同方面的踪迹(区别sql server里只有er ...
- JAR(Spring Boot)应用的后台运行配置
酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式: 运行Spring Boot的应用主类 使用Mave ...
- Docker两种方式进入后台运行的容器
1.在启动容器的时候,有时候我们加了参数-d,这时容器自动进入后台运行.如果我们要进入容器,该怎么办?通常使用docker attach命令和nsenter工具. 2.docker attach是Do ...
- 和我一起打造个简单搜索之IK分词以及拼音分词
elasticsearch 官方默认的分词插件,对中文分词效果不理想,它是把中文词语分成了一个一个的汉字.所以我们引入 es 插件 es-ik.同时为了提升用户体验,引入 es-pinyin 插件.本 ...
- 【Flask-RESTPlus系列】Flask-RESTPlus系列译文开篇
0x00 背景介绍 因为工作上的需要,最近开始研究Python中实现Restful API的框架和工具包.之前粗略学习过Flask,由于它比较轻量级,感觉用它来实现Restful API再适合不过了. ...