python学习
python学习:http://www.runoob.com/python/python-tutorial.html
appium学习:https://testerhome.com/topics/1045
appium学习:http://blog.csdn.net/u011541946/article/details/77916671
selenium学习:http://blog.csdn.net/u011541946/article/category/6788788
1、中文编码,只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8
2、python不用[]、{}、()来控制类,用缩进来写模块,对格式要求非常严格。
3、我们可以使用斜杠( \)将一行的语句分为多行显示,如果有括号则不需要分行符,如下所示:
total = item_one + \ item_two + \ item_three
4、Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。
5、python中单行注释采用 # 开头,python 中多行注释使用三个单引号(''')或三个双引号(""")。
6、print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号。
7、变量赋值不需要类型声明,但必须赋值。
8、python的数据类型:
数字类型:int(有符号整型)、long(长整型[也可以代表八进制和十六进制])、float(浮点型)、complex(复数)
字符串类型:String,从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,比如s="abcdefg",s[1:5]=bcde。
列表类型:List列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套),用[]来标识。
元组类型:是只读的List,用小括号,而list用中括号,元组中只包含一个元素时,需要在元素后面添加逗号。
字典类型:是以键值对形式存储,是无序的,字典用"{ }"标识。
9、python没有switch语句,用elif来代替。
10、while....else中else是不符合while括号中的条件时执行的。
11、for循环可以遍历任何序列的项目,如一个列表或者一个字符串。比如输入一个1——9的三角矩阵:
for i in range(1,11):
for j in range(1,i):
print j,
j+=1
i+=1
print "\n"
for.......else是在for语句执行完之后再执行else当中的语句,如输出1-100以内的所有素数:
for i in range(2,100):
j=2
for j in range(2,i):
if i%j ==0:
break
else:
num.append(i)
print num
12、pass是空语句,是为了保持程序结构的完整性
13、支持字符串格式化:
print "My name is %s and weight is %d kg!" % ('Zara', 21)
My name is Zara and weight is 21 kg!
14、python三引号允许一个字符串跨多行,单引号双引号都支持,必须成对。
15、ASCII编码和Unicode编码的区别:前者是一个字节8位,后者是两个字节16位,如A:01000001 A:00000000 01000001
16、列表的内置方法:
增加:append()方法, 删除:del list[1], 移除元素: remove(), 长度:len(), 扩展:extend([]) 排序(默认从小到大):sort(),sort(reserve=True)从大到小
组合:[1, 2, 3] + [4, 5, 6](+号左右类型一样) 重复:['Hi!'] * 4,
迭代:for x in [1, 2, 3]: print x, 比较:cmp([],[]), 最大值:max(list), 最小值:min(list), 某元素在列表中出现的次数:list.count(obj),
从列表中找出某个值第一个匹配项的索引位置:list.index(obj),
将对象插入到列表中:list.insert(index,obj) 从0开始计数
移除列表中的一个元素(默认最后一个元素):list.pop(obj=list([-1]),
反向列表中元素:list.reverse(),
列表拷贝:用分片的方式拷贝,比如list1=list[:],list1=list只是将list1指向list
deque双端队列:可以从列表两端进行添加删除操作
17、字典的内置方法:
fromkeys(键,值),创建并返回一个新的字典,给键重新赋值,但值只能是一个参数
删除字典内所有元素:dict.clear() 返回字典的浅复制:dict.copy()
返回指定键的值:dict.get(key) 判断是否存在此键:dict.has_key(key)
以列表形式返回可遍历的元组数组:dict.items() 返回所有的键:dict.keys()
把dict2的键值更新到dict:dict.update(dict2) 返回所有的值:dict.values()
删除字典给定键 key 所对应的值:pop(key[,default])
随机返回并删除字典中的一对键和值:popitem()
18、日期与时间
(1)获取当前时间戳:time.time()
(2)获取格式化当前时间:localtime = time.asctime( time.localtime(time.time()) )
格式转换:# 格式化成2016-03-20 11:45:39形式 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
(3)a%星期名称简化、b%月份名称简化、%d月内中的一天(0-31)、%H%L%M%S、24小时制 12小时制 分钟 秒、%m年中的月份(01-12)、%y两位数的年份、%Y四位数的年份
(4)datetime模块
datetime.date.today().strftime("%Y-%m-%d")按照格式输出当前日期
19、python模块是一个python文件,import引入一个模块:
import time;引入时间模块
from fib import fibonacci;从fib模块中引入fibonacci函数
from math import *;引入math模块的所有函数
20、python文件I/O
f.open(“文件路径”,“打开模式”) f.close()
f.read(size=-1) 从指针位置读取size个字符,一个字符等于两个字节
f.readline()读取一行字符 f.tell()查看当前指针位置
f.seek(offset,from) offset是指针移动的个数,from是0从头开始,1是当前位置开始,2是末尾开始 f.seek(0,0)回到最开始位置
f.write(str)将字符串写入 f.writeline()将一行字符串写入
21、python字符串的所有方法:
capitalize() 将字符串第一个改为大写字母
casefold() 将整个字符串改为小写字母
count("xi") 统计xi在字符串中出现的次数
endswith("xi") 字符串是否以xi结束,是返回true,不是返回false
find("xi") 检查字符串中是否有xi,找到返回第一次出现的索引,找不到返回-1
rfind("xi")和find()一样,只是从右边开始查找
join(sub) 以字符串作为分隔符插入到sub的每个字符之间
partition(sub) 找到sub子字符串将原来的字符串拆分成三个
replace(old,new)将新字符串替换掉旧字符串
split("sub") 以sub切割字符
swapcase() 翻转字符串中的大小写
title() 将字符串以标题的形式返回,第一个字符串为大写,其余为小写
upper() 将所有小写字符改为大写字符
lower() 所有大写转化为小写字符
22、获取当前项目根目录的相对路劲:os.path.dirname(os.path.abspath('.'))
23、python日志获取:logger,handler,filter,formatter
24、序列(字符串、列表、元组)的常用方法:len max min sum sorted reserved (返回的是对象,所以在前面加List) enumerate(给每个元素加上序列号) zip(把两个列表结合起来成对显示)
25、函数:
参数文档:func.doc 打印函数的参数文档
关键字参数:函数调用时指定参数的值
默认参数:函数定义的时候给形参直接赋值
收集参数:def test(*parms): 参数的个数类型是可以随便变换的
全局变量:在函数里面修改全局变量会生成新的局部变量,只是名字和全局变量一样,但也可以用global关键字在函数中声明,就可以修改全局变量
闭包:使用非全局变量的外包变量,这个函数称为闭包,可以用nonlocal声明变量
匿名函数:不用定义,直接g=lambda x:2*x+1 ,g(2)=5
filter(func/none,序列):过滤器,把后面序列的每一个元素经过前面函数的计算,将结果为真的过滤出来组成新的序列
map(func,序列):映射关系,将序列每个元素作为函数的参数运算加工后组成新序列输出
递归
import pickle 把列表、字典等写入文件中:
pickle.dump(list,file) pickle.load(file)
26、集合——没有映射关系的字典就是集合,具有唯一性和无序性
不可变集合:set1=frozenset([1,2,3]) set1就是不可变集合
27、os操作系统模块的常用方法:
getcwd()返回当前工作目录 chdir()改变当前工作目录 listdir()列举出当前所有目录名
mkdir()创建目录 makedirs()创建多层目录 remove()删除文件
rmdir()删除空的单层目录 removedirs()删除空的多层目录 rename(old,new)修改名
system(command)运行系统的shell指令
os.path模块常用的方法:
basename(path)去掉路径返回文件名 dirname(path)去掉文件名返回路径
join(path1,path2)合成一个路径 split(path)将路径和文件名分隔开
splitext(path)将文件名与扩展名分隔开 getsize(file)返回当前文件的尺寸
28、常见的几种异常:
AssertionError断言失败 AttributeError访问的对象方法不存在
IndexError索引超出序列的范围 KeyError字典中查找不存在的关键字
NameError访问不存在的变量 OSError操作系统的异常(打开不存在的文件)
SyntaxError python语法错误 TypeError不同类型间的无效操作(1+‘1’)
ZeroDivisionError除数为零
29、图形用户界面编程 import easygui as g g.msgbox(".....")一个确定键的弹框
g.choicebox(msy,title,choices) g.ccbox("......")一个继续一个取消的弹框
30、正则表达式:re模块使 Python 语言拥有全部的正则表达式功能
re.match() 从字符串起始位置匹配一个模式 re.search() 扫描整个字符串并返回第一个匹配的字符串 re.sub() 替换字符串中的匹配项 re.compile() 生成一个正则表达式对象 re.findall() 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表 re.finditer() 在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回 re.split() 按照能够匹配的子串将字符串分割后返回列表