python學(xué)習(xí):http://www.runoob.com/python/python-tutorial.html
appium學(xué)習(xí):https://testerhome.com/topics/1045
appium學(xué)習(xí):http://blog.csdn.net/u011541946/article/details/77916671
selenium學(xué)習(xí):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 可以使用引號( ' )、雙引號( " )、三引號( ''' 或 """ ) 來表示字符串,引號的開始與結(jié)束必須的相同類型的。
5、python中單行注釋采用 # 開頭,python 中多行注釋使用三個單引號(''')或三個雙引號(""")。
6、print 默認輸出是換行的,如果要實現(xiàn)不換行需要在變量末尾加上逗號。
7、變量賦值不需要類型聲明,但必須賦值。
8、python的數(shù)據(jù)類型:
數(shù)字類型:int(有符號整型)、long(長整型[也可以代表八進制和十六進制])、float(浮點型)、complex(復(fù)數(shù))
字符串類型:String,從字符串中獲取一段子字符串的話,可以使用變量 [頭下標(biāo):尾下標(biāo)],就可以截取相應(yīng)的字符串,比如s="abcdefg",s[1:5]=bcde。
列表類型:List列表可以完成大多數(shù)集合類的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)。它支持字符,數(shù)字,字符串甚至可以包含列表(即嵌套),用[]來標(biāo)識。
元組類型:是只讀的List,用小括號,而list用中括號,元組中只包含一個元素時,需要在元素后面添加逗號。
字典類型:是以鍵值對形式存儲,是無序的,字典用"{ }"標(biāo)識。
9、python沒有switch語句,用elif來代替。
10、while....else中else是不符合while括號中的條件時執(zhí)行的。
11、for循環(huán)可以遍歷任何序列的項目,如一個列表或者一個字符串。比如輸入一個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語句執(zhí)行完之后再執(zhí)行else當(dāng)中的語句,如輸出1-100以內(nèi)的所有素數(shù):
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是空語句,是為了保持程序結(jié)構(gòu)的完整性
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編碼的區(qū)別:前者是一個字節(jié)8位,后者是兩個字節(jié)16位,如A:01000001 A:00000000 01000001
16、列表的內(nèi)置方法:
增加:append()方法, 刪除:del list[1], 移除元素: remove(), 長度:len(), 擴展:extend([]) 排序(默認從小到大):sort(),sort(reserve=True)從大到小
組合:[1, 2, 3] + [4, 5, 6](+號左右類型一樣) 重復(fù):['Hi!'] * 4,
迭代:for x in [1, 2, 3]: print x, 比較:cmp([],[]), 最大值:max(list), 最小值:min(list), 某元素在列表中出現(xiàn)的次數(shù):list.count(obj),
從列表中找出某個值第一個匹配項的索引位置:list.index(obj),
將對象插入到列表中:list.insert(index,obj) 從0開始計數(shù)
移除列表中的一個元素(默認最后一個元素):list.pop(obj=list([-1]),
反向列表中元素:list.reverse(),
列表拷貝:用分片的方式拷貝,比如list1=list[:],list1=list只是將list1指向list
deque雙端隊列:可以從列表兩端進行添加刪除操作
17、字典的內(nèi)置方法:
fromkeys(鍵,值),創(chuàng)建并返回一個新的字典,給鍵重新賦值,但值只能是一個參數(shù)
刪除字典內(nèi)所有元素:dict.clear() 返回字典的淺復(fù)制:dict.copy()
返回指定鍵的值:dict.get(key) 判斷是否存在此鍵:dict.has_key(key)
以列表形式返回可遍歷的元組數(shù)組:dict.items() 返回所有的鍵:dict.keys()
把dict2的鍵值更新到dict:dict.update(dict2) 返回所有的值:dict.values()
刪除字典給定鍵 key 所對應(yīng)的值:pop(key[,default])
隨機返回并刪除字典中的一對鍵和值:popitem()
18、日期與時間
(1)獲取當(dāng)前時間戳:time.time()
(2)獲取格式化當(dāng)前時間:localtime = time.asctime( time.localtime(time.time()) )
格式轉(zhuǎn)換:# 格式化成2016-03-20 11:45:39形式 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
(3)a%星期名稱簡化、b%月份名稱簡化、%d月內(nèi)中的一天(0-31)、%H%L%M%S、24小時制 12小時制 分鐘 秒、%m年中的月份(01-12)、%y兩位數(shù)的年份、%Y四位數(shù)的年份
(4)datetime模塊
datetime.date.today().strftime("%Y-%m-%d")按照格式輸出當(dāng)前日期
19、python模塊是一個python文件,import引入一個模塊:
import time;引入時間模塊
from fib import fibonacci;從fib模塊中引入fibonacci函數(shù)
from math import *;引入math模塊的所有函數(shù)
20、python文件I/O
f.open(“文件路徑”,“打開模式”) f.close()
f.read(size=-1) 從指針位置讀取size個字符,一個字符等于兩個字節(jié)
f.readline()讀取一行字符 f.tell()查看當(dāng)前指針位置
f.seek(offset,from) offset是指針移動的個數(shù),from是0從頭開始,1是當(dāng)前位置開始,2是末尾開始 f.seek(0,0)回到最開始位置
f.write(str)將字符串寫入 f.writeline()將一行字符串寫入
21、python字符串的所有方法:
capitalize() 將字符串第一個改為大寫字母
casefold() 將整個字符串改為小寫字母
count("xi") 統(tǒng)計xi在字符串中出現(xiàn)的次數(shù)
endswith("xi") 字符串是否以xi結(jié)束,是返回true,不是返回false
find("xi") 檢查字符串中是否有xi,找到返回第一次出現(xiàn)的索引,找不到返回-1
rfind("xi")和find()一樣,只是從右邊開始查找
join(sub) 以字符串作為分隔符插入到sub的每個字符之間
partition(sub) 找到sub子字符串將原來的字符串拆分成三個
replace(old,new)將新字符串替換掉舊字符串
split("sub") 以sub切割字符
swapcase() 翻轉(zhuǎn)字符串中的大小寫
title() 將字符串以標(biāo)題的形式返回,第一個字符串為大寫,其余為小寫
upper() 將所有小寫字符改為大寫字符
lower() 所有大寫轉(zhuǎn)化為小寫字符
22、獲取當(dāng)前項目根目錄的相對路勁:os.path.dirname(os.path.abspath('.'))
23、python日志獲?。簂ogger,handler,filter,formatter
24、序列(字符串、列表、元組)的常用方法:len max min sum sorted reserved (返回的是對象,所以在前面加List) enumerate(給每個元素加上序列號) zip(把兩個列表結(jié)合起來成對顯示)
25、函數(shù):
參數(shù)文檔:func.doc 打印函數(shù)的參數(shù)文檔
關(guān)鍵字參數(shù):函數(shù)調(diào)用時指定參數(shù)的值
默認參數(shù):函數(shù)定義的時候給形參直接賦值
收集參數(shù):def test(*parms): 參數(shù)的個數(shù)類型是可以隨便變換的
全局變量:在函數(shù)里面修改全局變量會生成新的局部變量,只是名字和全局變量一樣,但也可以用global關(guān)鍵字在函數(shù)中聲明,就可以修改全局變量
閉包:使用非全局變量的外包變量,這個函數(shù)稱為閉包,可以用nonlocal聲明變量
匿名函數(shù):不用定義,直接g=lambda x:2*x+1 ,g(2)=5
filter(func/none,序列):過濾器,把后面序列的每一個元素經(jīng)過前面函數(shù)的計算,將結(jié)果為真的過濾出來組成新的序列
map(func,序列):映射關(guān)系,將序列每個元素作為函數(shù)的參數(shù)運算加工后組成新序列輸出
遞歸
import pickle 把列表、字典等寫入文件中:
pickle.dump(list,file) pickle.load(file)
26、集合——沒有映射關(guān)系的字典就是集合,具有唯一性和無序性
不可變集合:set1=frozenset([1,2,3]) set1就是不可變集合
27、os操作系統(tǒng)模塊的常用方法:
getcwd()返回當(dāng)前工作目錄 chdir()改變當(dāng)前工作目錄 listdir()列舉出當(dāng)前所有目錄名
mkdir()創(chuàng)建目錄 makedirs()創(chuàng)建多層目錄 remove()刪除文件
rmdir()刪除空的單層目錄 removedirs()刪除空的多層目錄 rename(old,new)修改名
system(command)運行系統(tǒng)的shell指令
os.path模塊常用的方法:
basename(path)去掉路徑返回文件名 dirname(path)去掉文件名返回路徑
join(path1,path2)合成一個路徑 split(path)將路徑和文件名分隔開
splitext(path)將文件名與擴展名分隔開 getsize(file)返回當(dāng)前文件的尺寸
28、常見的幾種異常:
AssertionError斷言失敗 AttributeError訪問的對象方法不存在
IndexError索引超出序列的范圍 KeyError字典中查找不存在的關(guān)鍵字
NameError訪問不存在的變量 OSError操作系統(tǒng)的異常(打開不存在的文件)
SyntaxError python語法錯誤 TypeError不同類型間的無效操作(1+‘1’)
ZeroDivisionError除數(shù)為零
29、圖形用戶界面編程 import easygui as g g.msgbox(".....")一個確定鍵的彈框
g.choicebox(msy,title,choices) g.ccbox("......")一個繼續(xù)一個取消的彈框
30、正則表達式:re模塊使 Python 語言擁有全部的正則表達式功能
re.match() 從字符串起始位置匹配一個模式 re.search() 掃描整個字符串并返回第一個匹配的字符串 re.sub() 替換字符串中的匹配項 re.compile() 生成一個正則表達式對象 re.findall() 在字符串中找到正則表達式所匹配的所有子串,并返回一個列表 re.finditer() 在字符串中找到正則表達式所匹配的所有子串,并把它們作為一個迭代器返回 re.split() 按照能夠匹配的子串將字符串分割后返回列表