日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
進(jìn)階Python,從編寫Python函數(shù)開始

 讀懂十行代碼不如自己親自上手編寫一行!代碼想熟練最好的方法就是能夠通過代碼解決工作中的實際問題,例如完成UI自動化測試、接口測試、創(chuàng)建測試數(shù)據(jù)、構(gòu)建測試環(huán)境、清理數(shù)據(jù)環(huán)境等等。上述這些場景我們都可以從把要解決的問題封裝成函數(shù)開始,例如我用ui自動化進(jìn)行登陸,可以把登陸的幾行代碼封裝成函數(shù)login(p_user,p_pwd),做接口測試可以把常用的get和post方法封裝成 get(p_url)和post(p_url,p_data)。在這里我會詳細(xì)的講解python中關(guān)于函數(shù)的基礎(chǔ)知識,最后以selenium 進(jìn)行百度搜索為例來講解自動化測試中如何把具體業(yè)務(wù)封裝成方法實現(xiàn)代碼復(fù)用,相信大家一定會有所收獲!

創(chuàng)新互聯(lián)是專業(yè)的蘭山網(wǎng)站建設(shè)公司,蘭山接單;提供成都網(wǎng)站設(shè)計、做網(wǎng)站,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蘭山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

?函數(shù)基礎(chǔ)知識
函數(shù)的本質(zhì)就是代碼復(fù)用,在面向?qū)ο笾邪押瘮?shù)稱為方法。Python提供了許多內(nèi)建函數(shù),比如

print()。我們也可以自己創(chuàng)建函數(shù),這被叫做用戶自定義函數(shù)。以下是函數(shù)定義的簡單規(guī)則:

  • 函數(shù)代碼塊以def關(guān)鍵詞開頭,后接函數(shù)標(biāo)識符名稱和圓括號()。
  • 圓括號之間用于定義參數(shù)。
  • 函數(shù)內(nèi)容以冒號起始,并且縮進(jìn)。
  • return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回None

例如:

 
 
 
 
  1. def func(): 
  2.        print("函數(shù)實例") 
  3. func() 

輸出結(jié)果是:

函數(shù)實例

函數(shù)的參數(shù)
形參和實參

定義一個帶參數(shù)的函數(shù),如下:

 
 
 
 
  1. def func_para(p_str): 
  2.        print(p_str) 

在函數(shù)func_para中,p_str就是一個形參,也就是形式參數(shù),是用來接收調(diào)用函數(shù)時傳入的參數(shù),你傳的是什么它就是什么。實參就是實際參數(shù),在調(diào)用函數(shù)的時候,傳遞是Kevin,那么Kevin就是實參,傳遞的是Mike,那么Mike也是實參,實參傳遞給函數(shù)后,會賦值給函數(shù)中的形參

把實參Kevin,賦值給函數(shù),即func_para(“Kevin”),輸出結(jié)果是Kevin

把實參Mike,賦值給函數(shù),即func_para(“Mike”),輸出結(jié)果是Mike

函數(shù)的返回值
調(diào)用方運行函數(shù)會得到一個值。首先說明,所有的函數(shù)都是有返回值的,如果編程人員沒有指定返回值,那默認(rèn)會返回None。

例如:

 
 
 
 
  1. def func_return(p_str): 
  2.     return p_str 
  3. str=func_return (“Kevin”)print(str) 

運行結(jié)果

Kevin

函數(shù)高級用法
以上是python中函數(shù)最基礎(chǔ)的定義,相信絕大多數(shù)同學(xué)都知道,接下來我會給大家介紹一些在python中函數(shù)的高級用法

參數(shù)的默認(rèn)值
python允許我們給函數(shù)的形參設(shè)置一個默認(rèn)值,不傳參數(shù)調(diào)用的話,就統(tǒng)一默認(rèn)是這個值。

 
 
 
 
  1. def func_default(name='kevin'): 
  2.       print("名字是"+name) 
  3. func_default() 
  4. func_default("mike") 

輸出:

名字是kevin

名字是mike

關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)讓你可以不用考慮函數(shù)的參數(shù)位置,你需以鍵值對的形式指定參數(shù)的對應(yīng)形參。

 
 
 
 
  1. def func_key(name,age): 
  2.        print("你好"+ name+", 你的年齡是"+age+" !") 
  3. func_key(age='38',name='kevin') 

輸出:

你好kevin, 你的年齡是38 !

不固定長度參數(shù)
有時候我們需要允許用戶提供任意數(shù)量的參數(shù),函數(shù)的形參可以帶個星號來接收,不管調(diào)用函數(shù)的時候傳遞了多少實參,都將被收集到形參這個變量當(dāng)中,形參的類型是元組。例如:

 
 
 
 
  1. def fun_unfixedlength_1 (*args): 
  2.         print(args)fun_unfixedlength_1 ('kevin','38','67674297') 

輸出

('kevin', '38', '67674297')

還有一種是帶兩個星號的形參,用于接收鍵值對形式的實參,導(dǎo)入到函數(shù)中的類型是字典。

 
 
 
 
  1. def fun_unfixedlength_2 (**args): 
  2.       print(args)fun_unfixedlength_2(name='kevin',age='38',qq='67674297') 

輸出

{'name': 'kevin', 'age':'38', 'qq': '67674297'}

匿名函數(shù)
匿名函數(shù)就是不用走正常函數(shù)定義的流程,可以直接定義一個簡單的函數(shù)并把函數(shù)本身賦值給一個變量,使得這個變量可以像函數(shù)一樣被調(diào)用,在python中可以用lambda關(guān)鍵字來申明定義一個匿名函數(shù)。例如

 
 
 
 
  1. lambda_demo = lambda first_name,last_name : first_name + " "+last_name 
  2. name = lambda_demo('kevin','li') 
  3. print(name) 

輸出kevin li

函數(shù)實際應(yīng)用
最后我結(jié)合ui自動化測試給大家舉一個函數(shù)在測試工作中的實際應(yīng)用。我們以selenium 進(jìn)行百度搜索為例,selenium的核心代碼如下:

 
 
 
 
  1. driver.get("https://www.baidu.com/") 
  2. driver.find_element_by_id("kw").clear() 
  3. driver.find_element_by_id("kw").send_keys("selenium")  #輸入框輸入selenium 
  4. driver.find_element_by_id("su").click()  #點擊搜索按鈕 

備注:我的頭條中有很多文章講解了關(guān)于selenium應(yīng)用的具體方法,在這里就不再贅述了??梢詤⒖迹?/p>

一文搞定Java和Python在Selenium3中的應(yīng)用

Selenium原理精講

場景分析:由于搜索的關(guān)鍵字是千變?nèi)f化的,而進(jìn)行搜索的動作是固定的,即:打開百度網(wǎng)頁>在輸入框輸入關(guān)鍵字>點擊百度一下搜索按鈕。所以我們可以把該場景編寫為函數(shù),用一個函數(shù)來處理進(jìn)行各種關(guān)鍵字搜索的需求。核心代碼實現(xiàn)如下:

 
 
 
 
  1. def baidu_search(p_key): 
  2.     driver.get("https://www.baidu.com/") 
  3.     driver.find_element_by_id("kw").clear() 
  4.     driver.find_element_by_id("kw").send_keys(p_key)  # 輸入框輸入selenium 
  5.     driver.find_element_by_id("su").click()  # 點擊搜索按鈕 

如果大家想通過函數(shù)來檢查是否找到了需要搜索的關(guān)鍵字,那么可以對函數(shù)進(jìn)行改進(jìn),如果在搜索結(jié)果頁面中出現(xiàn)了“百度為您找到相關(guān)結(jié)果約*個”的文字證明搜索到了關(guān)鍵字返回True,否則返回

False,如下圖所示:

改進(jìn)后的代碼方法如下:

 
 
 
 
  1. def baidu_search(p_key): 
  2.     driver.get("https://www.baidu.com/") 
  3.     driver.find_element_by_id("kw").clear() 
  4.     driver.find_element_by_id("kw").send_keys(p_key)  # 輸入框輸入selenium 
  5.     driver.find_element_by_id("su").click()  # 點擊搜索按鈕 
  6.     time.sleep(3) 
  7. try: 
  8.        result=driver.find_elements_by_class_name("nums_text").get_attribute('value') #獲取搜索結(jié)果的統(tǒng)計個數(shù)值,默認(rèn)是:百度為您找到相關(guān)結(jié)果約...個 
  9.        if re.match('百度為您找到相關(guān)結(jié)果約.*個', result)is None:  #通過正則進(jìn)行匹配,沒匹配到正則返回None 
  10.            return False 
  11.        else: 
  12.            return True 
  13.     exceptNoSuchElementException as e: 
  14.            return False 
  15.     return True 

標(biāo)題名稱:進(jìn)階Python,從編寫Python函數(shù)開始
文章位置:http://m.5511xx.com/article/cdogdgj.html