python - 函数,集合,包,模块
一、函数
a=1, b=2, 交换值
定义中间量c,C=None,
a,b=b,a
a,b,c=1,2,3
sys.argv
实现指定的某些功能,使用的时候可以直接调用,简化代码,提高代码复用性
def fun():#定义一个函数,后面是函数名
print("Hello World")#函数体
例如:
1、def sayHello():
print(“Hello World”)
sayHello() --调用
2、def sayName(name): --形参
print(’welcome to log in %s’%name)
sayName(‘Alice’) --实参
3、def calc(a,b): --必填参数
print(‘结果是%d’%(a+b))
calc(2,3)
4、链接mysql
def conn_mysql(host,username,passwd,port=3306) --port默认值参数,非必填,需要写在必填参数后面
print(‘已经连接mysql’)
print(‘ip’,host)
print(‘username’, username)
print(‘passwd’, passwd)
print(‘port’, port)
conn_mysql(‘1920168.0.0’,’alice’,’123456’) --位置参数,一一对应
conn_mysql(‘1920168.0.0’,’alice’,’123456’,3309) --port3309
conn_mysql(host=‘1920168.0.0’,
passswd=’123456’,
username=’alice’) --关键字参数,位置可不对应
5、def myfun(*arg): --可变参数、参数组,不限制参数个数,非必填
print(arg)
myfun(‘alice’,’emily’,’8080’)
关键字参数必须放在最后,可变和默认值参数没有先后顺序
顺序:必填参数、默认值参数、参数组、关键字参数
6、def myfun(**args): --字典,关键字参数
print(args)
myfun(name=‘alice’,name1=’emily’,port=’8080’)
--输出‘name’:’alice’,’name1’:Emily,’port’:8080
7、def calc(a,b): --乘法计算器
return a*b
//print(a*b) -- 函数里面,return后面的内容不执行,所以不会打印
res=calc(3*4)
print(res/2)
函数不写return,默认返回none
8、def calc(a,b):
c=a*b --局部变量
print(c)
calc(5,4)
print(c)
全局变量定义在首行
打印的时候先找里面的关键词,优先打印
修改全局变量的值,用global,先声明这个变量是一个全局变量,int、string、元祖
高阶函数,一个函数的入参是一个函数
二、集合
集合也是一种数据类型,类似列表,它的特点是无序的,不重复的,也就是说集合中是没有重复的数据
集合的作用:
1、它可以把一个列表中重复的数据去掉,而不需要你再写判断
2、可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合
list = [2,3,1,2,3,4]
s_list = set(list)#这样就定义了一个集合
set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合
set2={'hehe','hehe1','hehe3'}#这种方式是直接定义一个集合
intersection –取交集
& --取交集
union --取并集(合并去重)
| --取并集
difference --取差集
三、包、模块 OS sys random time
Import os,sys --内置模块
每个python文件就是一个模块,import 文件名(没有.py)
导入模块的本质,就是把python文件拿过来执行一次
环境变量的作用就是让一个命令可以在哪里都能使用
python setup.py install
修改pip源:
pip.ini
[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
pip uninstall
from pg.write_log import write_log #直接导入包里面python文件里的函数
from pg import write_log #导入包里面的某一个python文件
import json,requests
url='http://211.149.218.16:8081/get_user'
res = requests.get(url).text
res_dic = json.loads(res) #序列化,把json串转成字典
import os
print(os.getcwd())#取当前工作目录
os.chmod("/usr/local",7)#给文件/目录加权限
print(os.chdir("../"))#更改当前目录
print(os.curdir)#当前目录
print(os.pardir)#父目录
print(os.makedirs("/usr/hehe/hehe1"))#递归创建文件夹,父目录不存在时创建父目录
print(os.removedirs("/usr/hehe/hehe1"))#递归删除空目录
print(os.mkdir("test1"))#创建文件夹
print(os.rmdir("test1"))#删除指定的文件夹
print(os.remove("test"))#删除文件
print(os.listdir('.'))#列出一个目录下的所有文件
os.rename("test","test1")#重命名
print(os.stat("len_os.py"))#获取文件信息
print(os.sep)#当前操作系统的路径分隔符
print(os.linesep)#当前操作系统的换行符
print(os.pathsep)#当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
print(os.environ)#当前系统的环境变量
print(os.name)#当前系统名称
print(os.path.abspath(__file__))#获取绝对路径
print(os.path.split("/usr/hehe/hehe.txt"))#分割路径和文件名
print(os.path.dirname("/usr/local"))#获取父目录
print(os.path.basename("/usr/local"))#获取最后一级,如果是文件显示文件名,如果是目录显示目录名
print(os.path.exists("/usr/local"))#目录/文件是否存在
print(os.path.isabs("."))#判断是否是绝对路径
print(os.path.isfile("/usr/local"))#判断是否是一个文件
print(os.path.isdir("/usr/local"))#是否是一个路径
print(os.path.join("/root",'hehe','a.sql'))#拼接成一个路径
print(os.path.getatime("len_os.py"))#输出最近访问时间
print(os.path.getmtime("len_os.py"))#输出最近访问时间
sys
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout.write('please:')#向屏幕输出一句话
val = sys.stdin.readline()[:-1]#获取输入的值
random
print(random.random())#随机浮点数,默认取0-1,不能指定范围
print(random.randint(1,20))#随机整数
print(random.randrange(1,20))#随机产生一个range
print(random.choice('x23serw4'))#随机取一个元素
print(random.sample('hello',2))#从序列中随机取几个元素
print(random.uniform(1,9))#随机取浮点数,可以指定范围
x = [1,2,3,4,6,7]
random.shuffle(x)#洗牌,打乱顺序,会改变原list的值
print(x)
print(string.ascii_letters+string.digits)#所有的数字和字母
import datetime,time
print(time.timezone)#和标准时间相差的时间,单位是s
print(time.time())#获取当前时间戳
print(time.sleep(1))#休息几s