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')

百度:https://zhidao.baidu.com/question/1732357323587493987.html?qbl=relate_question_0&word=unicode%D4%F5%C3%B4%D7%AA%B3%C9%D7%D6%B7%FB

 

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.exit(0)

 

https://deepinout.com/python/python-qa/9_python_programmatically_stop_execution_of_python_script.html

import os
os._exit(1)

 

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

 

 

posted @ 2022-06-15 20:00  凯宾斯基  阅读(165)  评论(0编辑  收藏  举报