99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀Python基礎(chǔ)知識(shí)詳解(四):控制流篇
Python基礎(chǔ)知識(shí)詳解(四):控制流篇
2020-01-08
收藏
Python基礎(chǔ)詳解(四):控制流篇

作者 | CDA數(shù)據(jù)分析師

循環(huán)語(yǔ)句

1、for循環(huán)

For循環(huán)用來(lái)遍歷任何序列的項(xiàng)目,這個(gè)序列可以是一個(gè)列表也可以是一個(gè)字符串,針對(duì)這個(gè)序列中的每個(gè)項(xiàng)目去執(zhí)行相應(yīng)的操作。

舉一個(gè)例子,一個(gè)數(shù)據(jù)分析師的必修課主要有Excel、SQL、Python和統(tǒng)計(jì)學(xué),你要想成為一名數(shù)據(jù)分析師,那么這四門課是必須要學(xué)的呃,且學(xué)習(xí)順序也應(yīng)該是先Excel,再SQL,然后Python,最后是統(tǒng)計(jì)學(xué)。依次學(xué)習(xí)這四門課的過(guò)程就是在遍歷一個(gè)for循環(huán)。

Python基礎(chǔ)詳解(四):控制流篇


2、while循環(huán)

While循環(huán)用來(lái)循環(huán)執(zhí)行某程序,即當(dāng)條件滿足時(shí),一直執(zhí)行某程序,直到條件不滿足時(shí),終止程序。

舉一個(gè)例子,七周成為數(shù)據(jù)分析師,即只要你按課程表學(xué)習(xí)七周,你就算是一名數(shù)據(jù)分析師了,可以去找工作了。這里就是以你是否已經(jīng)學(xué)習(xí)了七周作為判斷條件,如果學(xué)習(xí)時(shí)間沒(méi)有達(dá)到七周,那么你就需要一直學(xué),直到學(xué)習(xí)時(shí)間大于七周,你才可以停止學(xué)習(xí),去找工作了。用while語(yǔ)句執(zhí)行時(shí)的具體流程如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


下面為其實(shí)現(xiàn)代碼:

Python基礎(chǔ)詳解(四):控制流篇


Python基礎(chǔ)詳解(四):控制流篇


Python基礎(chǔ)詳解(四):控制流篇


條件語(yǔ)句

1、if語(yǔ)句

if條件語(yǔ)句是程序先去判斷某個(gè)條件是否滿足,如果該條件滿足,則執(zhí)行判斷語(yǔ)句后的程序。If條件后面的程序需要首行縮進(jìn)。

舉一個(gè)例子,如果你好好學(xué)習(xí)數(shù)據(jù)分析師的必備技能,那么你就可以找到一份數(shù)據(jù)分析相關(guān)的工作,但是如果你不好好學(xué)習(xí),那么你很難找到一份數(shù)據(jù)分析相關(guān)的工作。

我們用1表示好好學(xué)習(xí),0表示沒(méi)有好好學(xué)習(xí),并賦初值為1,也就是假設(shè)你好好學(xué)習(xí)了。

當(dāng)判斷條件為是否好好學(xué)習(xí)時(shí),具體流程如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


下面為其實(shí)現(xiàn)代碼:

Python基礎(chǔ)詳解(四):控制流篇


當(dāng)判斷條件為是否沒(méi)有好好學(xué)習(xí)時(shí),具體流程如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


下面為其實(shí)現(xiàn)代碼:

Python基礎(chǔ)詳解(四):控制流篇


因?yàn)闂l件不滿足,所以執(zhí)行if條件后面的程序,即輸出為空。

2、else語(yǔ)句

else語(yǔ)句是if語(yǔ)句的補(bǔ)充,if條件只說(shuō)明了當(dāng)條件滿足時(shí)程序做什么,沒(méi)有說(shuō)當(dāng)條件不滿足時(shí)程序做什么。而else語(yǔ)句正好是用來(lái)說(shuō)明當(dāng)條件不滿足時(shí),程序做什么。

當(dāng)判斷條件為是否好好學(xué)習(xí)時(shí),具體流程如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


下面為其實(shí)現(xiàn)代碼:

Python基礎(chǔ)詳解(四):控制流篇


當(dāng)判斷條件為是否沒(méi)有好好學(xué)習(xí)時(shí),下面為其代碼實(shí)現(xiàn):

Python基礎(chǔ)詳解(四):控制流篇


3、elif語(yǔ)句

elif語(yǔ)句可以近似理解成else_if,前面提到的if語(yǔ)句、else語(yǔ)句都只能對(duì)一條語(yǔ)句進(jìn)行判斷,但是當(dāng)你需要讀多條語(yǔ)句進(jìn)行判斷時(shí),就可以用elif語(yǔ)句判斷。

elif中可以有else語(yǔ)句,也可以沒(méi)有,但是必須有if語(yǔ)句,具體執(zhí)行順序是先判斷if后面的條件是否滿足,如果滿足則運(yùn)行if為真時(shí)的程序,結(jié)束循環(huán);如果if條件不滿足時(shí)就判斷elif語(yǔ)句??梢杂卸鄠€(gè)elif語(yǔ)句,但是只有0個(gè)或者1個(gè)elif語(yǔ)句會(huì)被執(zhí)行。

比如你要猜某個(gè)人考試考了多少分,你該怎么猜?先判斷這個(gè)人是否及格(60分為準(zhǔn)),如果不及格,分?jǐn)?shù)范圍直接猜一個(gè)小于60分的即可,如果及格了再去判斷他的分?jǐn)?shù)到底在哪個(gè)分?jǐn)?shù)段,具體流程如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


代碼實(shí)現(xiàn)如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


Python基礎(chǔ)詳解(四):控制流篇


函數(shù)

函數(shù)是再一個(gè)程序中可以被重復(fù)使用的一段程序。這段程序是由一塊語(yǔ)句和一個(gè)名稱組成的,只要函數(shù)定義好以后,你就可以在程序中通過(guò)該名字調(diào)用執(zhí)行這段程序。

1、普通函數(shù)

普通函數(shù)一般由函數(shù)名(必需)、參數(shù)、語(yǔ)句塊(必需)、return、變量這幾部分組成。

函數(shù)定義語(yǔ)法如下圖所示:

Python基礎(chǔ)詳解(四):控制流篇


定義函數(shù)使用的關(guān)鍵詞是def,函數(shù)名后面的括號(hào)里面放參數(shù)(參數(shù)可以為空),參數(shù)后面要以冒號(hào)結(jié)尾,語(yǔ)句塊要縮進(jìn)四個(gè)空格,語(yǔ)句塊是函數(shù)具體要做的事情。

定義一個(gè)名為learn_python的函數(shù):

Python基礎(chǔ)詳解(四):控制流篇


上面的函數(shù)利用函數(shù)名learn_python調(diào)用了多次learn_python對(duì)應(yīng)的語(yǔ)句塊。

函數(shù)的參數(shù)有形參(形式參數(shù))和實(shí)參(實(shí)際參數(shù))兩種,在定義函數(shù)的時(shí)候使用的參數(shù)是形參,比如上面的location;在調(diào)用函數(shù)時(shí)傳遞的參數(shù)是實(shí)參,比如上面的地鐵。

上面語(yǔ)句塊中直接執(zhí)行了print操作,沒(méi)有返回值,我們也可以利用return對(duì)語(yǔ)句塊的運(yùn)行結(jié)果進(jìn)行返回。

定義一個(gè)含有return的函數(shù):

Python基礎(chǔ)詳解(四):控制流篇


Python基礎(chǔ)詳解(四):控制流篇


這次調(diào)用函數(shù)以后,沒(méi)有直接進(jìn)行print操作,而是將運(yùn)行結(jié)果利用return進(jìn)行了返回。

定義一個(gè)含有多個(gè)參數(shù)的函數(shù):

Python基礎(chǔ)詳解(四):控制流篇


2、匿名函數(shù)

匿名函數(shù),顧名思義就是沒(méi)有名字的函數(shù),也就是省略了def定義函數(shù)的過(guò)程。Lambda只是一個(gè)表達(dá)式,沒(méi)有函數(shù)體,lambda使用方法如下:

Python基礎(chǔ)詳解(四):控制流篇


arg1,arg2,arg3表示具體的參數(shù),expresion表示參數(shù)要執(zhí)行的操作。

現(xiàn)在我們分別利用普通函數(shù)和匿名函數(shù)兩種方式來(lái)建立一個(gè)兩數(shù)相加的函數(shù),讓大家看看兩者的不同。

普通函數(shù)如下:

Python基礎(chǔ)詳解(四):控制流篇


匿名函數(shù)如下:

Python基礎(chǔ)詳解(四):控制流篇


匿名函數(shù)比普通函數(shù)簡(jiǎn)潔的多,也是比較常用的,大家務(wù)必熟練的掌握。

Python基礎(chǔ)詳解(四):控制流篇


高級(jí)特性

1、列表生成式

現(xiàn)在有一個(gè)列表,你需要對(duì)該列表中的每一個(gè),你需要對(duì)該列表中的每個(gè)值求平方,然后將結(jié)果組成一個(gè)新列表,我們先看看普通方法怎么實(shí)現(xiàn)的。

普通方法實(shí)現(xiàn)如下:

Python基礎(chǔ)詳解(四):控制流篇


列表生成式實(shí)現(xiàn)如下:

Python基礎(chǔ)詳解(四):控制流篇


上面的需求比較簡(jiǎn)單,你可能沒(méi)有領(lǐng)略到列表生成式的妙用。我們?cè)賮?lái)看一些復(fù)雜的需求。

現(xiàn)在有兩個(gè)列表,需要把這兩個(gè)列表中的值兩兩組合,我們分別用普通方法和列表生成式實(shí)現(xiàn)一下。

普通方法實(shí)現(xiàn)如下;

Python基礎(chǔ)詳解(四):控制流篇


列表生成式實(shí)現(xiàn)如下:

Python基礎(chǔ)詳解(四):控制流篇


上面的需求用普通的方法要嵌套兩個(gè)for循環(huán),但是用列表生成式只要一行代碼即可。如果數(shù)據(jù)量很小,那么for循環(huán)嵌套運(yùn)行速度還行;如果數(shù)據(jù)量很大的話,那么for循環(huán)嵌套太多的程序,運(yùn)行就會(huì)變的很慢。

2、map函數(shù)

map函數(shù)的表現(xiàn)形式是map(function,agrs),表示對(duì)序列args中的每個(gè)值進(jìn)行function操作,最終得到一個(gè)結(jié)果列。

Python基礎(chǔ)詳解(四):控制流篇


map函數(shù)生成的結(jié)果序列不會(huì)直接把全部結(jié)果顯示出來(lái),要想獲取到結(jié)果需要for循環(huán)遍歷取出來(lái)。也可以使用list方法,將結(jié)果值生成一個(gè)列表。

Python基礎(chǔ)詳解(四):控制流篇


模塊

模塊是升級(jí)版的函數(shù),我們前面說(shuō)過(guò),在一段程序中可以通過(guò)函數(shù)名多次調(diào)用函數(shù),但是必須在定義函數(shù)的這段程序里面調(diào)用,如果換到其他程序里該函數(shù)就不起作用了。

模塊之所以是升級(jí)版的函數(shù),是因?yàn)樵谌我獬绦蛑卸伎梢酝ㄟ^(guò)模塊名去調(diào)用該模塊對(duì)應(yīng)的程序。

你要調(diào)用函數(shù)首先需要定義一個(gè)函數(shù),同理,你要調(diào)用模塊,首先需要導(dǎo)入模塊,導(dǎo)入模塊的方法主要有兩種。

Python基礎(chǔ)詳解(四):控制流篇

數(shù)據(jù)分析領(lǐng)域用的比較多的三個(gè)模塊分別是Numpy、Pandas、matplotlib,Python中還有很多類似的模塊,正是因?yàn)檫@類模塊的存在,使得Python變的很簡(jiǎn)單,受到越來(lái)越多人的歡迎。

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }