python笔记
列表,元组(不可添加和修改),字典 3种集合模式
模块—-类—函数
要把文件变成双击运行,要把文件的属性选择python安装目录下的python.exe
1、查看数据类型
print(type(hour))
2、转换数据类型:
整数字符串转换为对应的整数int(’12’)
数字转换为字符串str(123.45)
数据格式化
str() #转成字符
int() #转成数字
3、获取日期时间的方法
import time
#获取当前时间
b=time.strftime(‘%Y-%m-%d-%H-%M-%w’)
网站:http://www.tuicool.com/articles/2e6fU3
4、切集合的方法 selenium 教程 5.3.3
使用split() 如:b.split(‘-‘) 已-为切点,切b集合
5、自己创建一个模块和包的方法:
Title上加入:
import sys
sys.path.append(模块的地址)
在模块地址下要加个名称为__init__.py的的文件 ,才能正常调用模块
注意:路径中 \这个斜杠,还有文件的路径不要有中文的字符
5-1这个方法还可以做成在一个py文件里打开一个py文件
因为每次import时会跑一遍import的文件
那么我们把要执行的py文件放入指定模块里面
使用import调用
6、随机数的生成
import random
A=random.randint(0,99)
#调用 random 模块 randint函数
7、python列表的创建和往列表里添加内容
List = [] #创建一个空的列表
a= 1
b= 2
List.append(a) #t添加到列表里面
List.append(b)
print List[0]
8、数据类型的转码问题:
将Unicode中文字符串转换成 string字符串
本身的文档是utf-8的话 直接用encode
su = su.encode(‘utf-8’)
9、print 换行方法
使用 \n
如:print “我是\n换行”
假如换多行,使用 ‘\n’*n 后面那个n是行数
如:”print “这个是测试回归的简介”,’\n’*3,”换了三行”
10、python 打开text读取文件的方法:
file_info = open(‘info.txt’,’r’)
values = file_info.readlines() #.read() 这里用read 可以读取文件内所有内容
file_info.close()
#Values就是文件里面的信息
后记:
还可以读取html文件
网上写入的方法:
方法1: 只要是print 就输出的方法
# -*- coding: utf-8 -*-
import sys
origin = sys.stdout
f = open(‘file.txt’, ‘w’)
sys.stdout = f
print “要记录的信息”
处理完之后,
sys.stdout = origin
f.close()
URL:https://zhidao.baidu.com/question/1575148317362063540.html
方法2:
#coding=utf-8
#输入文件信息进去
fout=open(“test1.txt”,”wt”)
print >>fout,”你好”
print >>fout,”我好”
print >>fout,”大家好”
fout.close()
新增
其中把里面的fout=open(“test1.txt”,”a”) 改成”a” 就是往text文件里面追加
方法三 只写入文件不输出的方法
# coding=utf-8
file=open(“/Users/lucax/Desktop/test实验室/123.txt”,’w’)
file.write(“444”) #写入文件
print 333 #输出控制屏
11、导入CSV文件做参数化(注意csv文件不要包含空的行,建议先记事本写好再改后缀)
#coding=utf-8
import csv #导入csv 包
#读取本地CSV 文件
my_file=’test.csv’
date=csv.reader(file(my_file,’rb’))
For B in date:
B=str(B) #要把列表格式化为字符,再进行分割
A=B.split(“,”) #已,号分隔字符
Print A[0] #输出要的值
如果要每个数据都单独赋值,可以创建一个空的列表,往里面扔
如:
List = []
for B in date:
B=str(B)
C=B.split(“,”)[0]
List.append(C)
print List[0]
2019.4月都完了这个函数怎么用了
其实就是把列表里面的值取出来,然后里面的值按 , 再分成若干值,变成数组
12.跳出循环的方法
Break
13、python 杀进程
import os
os.system(‘taskkill /f /im chromedriver.exe’)
Chrmoedriver.exe可以自定义你要杀的进程
14、python多线程的使用
http://www.aichengxu.com/view/34207
如果使用 import thread 模块
只可以在python自己的ide 里面使用,其他编辑器报错
其他方法在python多线程文件里面有做笔记
15、在多线程里面使用到了正则表达式的方法:
参考URL:http://www.runoob.com/python/att-string-startswith.html
for i in L:
A=i.startswith (‘http’)
if A == True:
Print i
16、解决assic编码报错的问题
http://blog.csdn.net/mindmb/article/details/7898528
在头部加上
import sys
reload(sys)
sys.setdefaultencoding(‘utf8’)
或者在头部加上
#-*- coding: UTF-8 -*-
https://blog.csdn.net/u013045749/article/details/45292091
17、python断言
#coding=utf-8
a=”2″
assert a == “1”,”失败”
print 1
当a不等于1,会抛出错误信息,并且不会执行下面的代码
要执行可以使用try:和except : (参考webdriver笔记本第7条)
18、定义全局函数,使用 global
在需要定义的局部变化的变量前加上 global 可以变为全局函数
19、python类似正则表达式的函数
Url:http://www.jb51.net/article/54281.htm
startswith()函数
此函数判断一个文本是否以某个或几个字符开始,结果以True或者False返回。
endswith()函数
此函数判断一个文本是否以某个或几个字符结束,结果以True或者False返回。
判断文件是否为exe执行文件
我们可以利用endswith()函数判断文件名的是不是以.exe后缀结尾判断是否为可执行文件
20、中止python程序
import sys
sys.exit(0)
21、utf-8变成unicode格式的方法
22、assert 断言
当断言是Flase的时候他会报错,并且不会往下执行
当断言是Ture的时候,不会报错
自动化断言案例;
逻辑判断层:
用例层:
23、items()方法的使用. 把字典变成数组的方法
Python字典items()方法用于返回字典dict的(key,value)元组对的列表
A = {‘爱情买卖.mp3′:3,’阿凡达.mp4’:5}
A.item() 把A字典变成列表
A[(‘爱情买卖.mp3’,3,),(‘阿凡达.mp4′:5)’]
使用for –in– 在for后面增加一个变量,可以取出列表里面的2个值
24、筛选文件的方法
casedir=[]
#指定测试用例的存放路径,获取路径下所有文件夹
listaa=os.listdir(‘C:/Users/123/Desktop/BBB’)
print listaa
#把thread开头的测试用例文件夹都筛选出来加入casedir列表里
for xx in listaa:
if “thread” in xx:
casedir.append(xx)
25、在python文件里,执行另外一个文件的方法,使用 函数 execfile(“文件地址”)的方法
调用,把调用的文件的东西也变成自己的
execfile(‘a.py’)
26、反斜杠用处,断言一些字符包含特殊字符的
if “<h3 class=\”entH 22222setH\”>刷新成功</h3>” in r.content:
print “OK”
else:
print “失败”
说明: 断言的文案里面有”双引号和外面的双引号冲突,使用反斜杠变为普通字符
后记:
如果断言文中有的反斜杠\ ,那么只要输入\\两条 那么就当一条反斜杠的字符识别
还有一个方法,字符前面加上r,变为原始字符串
https://blog.csdn.net/qq_33338553/article/details/80305757
26-1、字符包含特殊字符的解决方法 如 \
可以在前面加r
print “123\\” #123\
print r”123\\” #123\\
27、生成数字数组
range(10) 生成0~9的列表
28、生成随机数组
import random
random.randint(1,5) 生成 1~5 的随机数
29、try错误处理 ,见 第58条 标准写法
a=1
try:
a==2
except:
print”出错了”
else:
print(‘假如没有出错就执行这个’)
finally:
print”try后都会执行这个”
30.把字符变成字典的方法
31.序列化后,让展示出的数据换行
indent属性是让字符缩进多少的意思
32、数列取值方法
33、有时候发现输出list的字符时会展示不出:
加上print typ(x),就可以了
34、语法小技巧,让代码更好看
在%后面加个\ 那么要替换的变量值可以换行,可观性更佳
35.读取txt文件中的汉字和字符打印却是一串编码,像这种:(b’\xef\xbb\xbf\xe5\xa5\xbd\xe7\x9a\x84\r\n’)
解决代码如下:
x=open(“2.txt”,”rb”)
y=x.readlines()
for i in y:
j=i.decode(‘utf-8’) :在原有代码增加一句
Print (j)
x.close()
36.调用类下面函数的方法: (这里踩了个坑,调类函数的时候忘了加括号)
先设置好类下面函数要用的变量的写法: def __init__ 这个叫 类的构造函数 or 初始化 的方法
类里面的函数,调用类其他函数 的方法
37.函数里面调用函数的方法:
38、获取字典里2个数值的方法:(含把字典变成数组的方法)
其中items() 是把字典转化成数组
39、让数组倒序排列
40、像命令 or 终端 窗里输入命令的调用方法
import os
os.system(“adb shell input tap 200 500”)
后记:
这个方法os.system(“adb shell input tap 200 500”) 返回后的值 是 0(命令执行成功) or 其他数字(执行失败)
他有个兄弟函数 os.popen(),使用这个函数返回值是str 可以赋值 ,然后进行下一步操作
例子:(获取端口号8080 FD为5u的进程pid)
参考: https://blog.csdn.net/rj03hou/article/details/5603368?utm_source=blogxgwz2
其中system要执行多条命令时,要使用下面的方法执行
import os os.system(‘cd /usr/local && mkdir aaa.txt’) # 或者 os.system(‘cd /usr/local ; mkdir aaa.txt’)
参考:https://www.cnblogs.com/cwp-bg/p/8465566.html
41、获取python主目录路径的方法
import sys
print sys.path
//查看python解释器位置
which python
42、查找字符的位置
str_1=’wo shi yi zhi da da niu ‘
char_1=’i’
Pos=str_1.find(char_1)
print Pos
43、多个判断条件的方法
num = 5
if num == 3: # 判断num的值
print ‘boss’
elif num == 2:
print ‘user’
elif num == 3:
print ‘user’
else:
print ‘roadman’ # 条件均不成立时输出
44、读取json文件的方法
import json
json.loads(open(‘./users.dev.json’, ‘r’).read()) #获取文件的类容,并且序列化把看似列表的字符 变成列表
45、序列化 和 反序列化方法
import json
x=[{1:3}]
json.dumps(x) #把数组,变成字符
x=str([1,2,3])
json.loads(x) #把看似像数组的字符,变成数组
46、if判断小技巧 if a:
47、函数默认传参的方法:
def a(a=1):#a为参数,当不输入参数调用函数的时候,默认使用a=1传参
print a
a(2)
后记,传2个形参的话,把没有默认参数的放前面,不然会传参报错
48、调用不同方法里面的变量
类里面,函数 和 函数之间变量的调用
方法一:
方法二:
函数和函数要调用变量的方法:
49、剔除字符中不要的字符的方法–使用 replace函数
还可以控制替换次数
str.replace(old, new , max)
例子
str = “this is string example….wow!!! this is really string”;
print str.replace(“is”, “was”, 3); #实际就替换了前2个
thwas was string example….wow!!! thwas was really string
50、找执行文件的位置
例子:
找python编译器的位置
which python
找locust执行文件的位置
which locust
51、查找字符的包含个数
s= ‘ok123123123ok’
print (s.count(‘ok’))
52、-> 这个符号的用法,是告诉开发这个函数要输入什么类型字符(实际也可以当备注用)
例子:
def qwe(a)->(str):
print (a)
也可以像下面的方法提示
def qwe2(a:str):
print (a)
53、把字符变成数组的方法:
54、给数字补零的方法
n = “123”
s = n.zfill(5)
assert s == ‘00123’
https://blog.csdn.net/vitaminc4/article/details/78732036
55、raise AsserionError –生成一个异常的方法,try except else 含捕获异常的写法:
def mye( level ):
if level < 1:
raise Exception,”异常输出语句” ——–raise Exception(“env参数错误”, “这里可以放一个导致问题的变量”)
print ‘不会执行这句’
raise AsserionError(‘手机号注册过’). ————貌似这个是跑到这里就停 不会继续往下执行
# 触发异常后,后面的代码就不会再执行
try:
mye(5) # 触发异常
except Exception,err:
print 1,err
else:
print 2
56、给值赋空的方法
version=None
57、查看模块里面的方法有哪些,会把模块里面的方法都打印出来
import time
print dir(time)
58、try 、except 标准语法书写
59、print 不换行的方法(在输出的字符后面加个,)
print 123,
print 333
输出效果 123 333
60、获取数字并放到数组里面的简便写法
61、判断响应是否是数字 的函数 isdigit()
a=r.text.isdigit() #是返回true 不是返回False
# # 断言接口
self.assertTrue(a)
62、秒转换成时分秒的方法
import datetime
print datetime.timedelta(seconds=889)
63、数组去重的方法
lst=[1,3,5,3,4,4,2,9,6,7]
set_lst=set(lst)
参考:https://blog.csdn.net/weixin_44520259/article/details/89764254
64、统计数组 or 元组 里面字符的重复次数
参考: https://blog.csdn.net/weixin_44520259/article/details/89764254
65、取数组里面元素的多个元素展示的方法
for i,r in [(1,2)]:
print i,r
66、写入json文件 —– 上下文与 with语句 (如打开文件open的巧妙写法)
with open("../config/record.json","w") as f:
json.dump(new_dict,f)
print("加载入文件完成...")
67、递归.
这里涉及栈的知识
#coding=utf-8
def tri_recursion(k):
if(k>0):
result = k+tri_recursion(k-1)
k=k+1
print(result)
else:
result = 0
return result
print("\n\nRecursion Example Results")
tri_recursion(6)
其实就是 当遇到自身的函数就默认return进入栈里,return的意思是返回实参,那么下次取出来调用时,实参就确定了(先进后出,后进先出)
最后输出
Recursion Example Results
1
3
6
10
15
21
计算
#当 tri_recursion(0)时 retuen result=0
so 取栈1
传入tri_recursion(1)
当执行到
result = k+tri_recursion(k-1) 即为 1+tri_recursion(0)
上面已知道tri_recursion(0) 时 result=0
so 等于 result = 1+0 =1
接着 取栈2
传入tri_recursion(2)
当执行到
result = k+tri_recursion(k-1) 即为 1+tri_recursion(1)
上面已知道tri_recursion(1) 时 result=1
so 等于 result = 2+1 =3
接着 取栈3
传入tri_recursion(3)
当执行到
result = k+tri_recursion(k-1) 即为 1+tri_recursion(2)
上面已知道tri_recursion(2) 时 result=3
so 等于 result = 3+3 =6
67、高级语法 循环 、 判断、且生成新数组
a=[1,2,3]
b=[i for i in a if i >2]
print(b)
68、起一个局域网那样的网站,让别人能通过浏览器查看我本机的文件
python3 -m http.serve 8081
69、类似正则–re.findall 的使用
https://www.cnblogs.com/kaibindirver/p/7488885.html
70、中字符串String去除出换行符和空格的问题
https://www.cnblogs.com/kaibindirver/p/12681418.html