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

熱線電話:13121318867

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

作者 | CDA數據分析師

循環(huán)語句

1、for循環(huán)

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

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

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


2、while循環(huán)

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

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

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


下面為其實現代碼:

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


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


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


條件語句

1、if語句

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

舉一個例子,如果你好好學習數據分析師的必備技能,那么你就可以找到一份數據分析相關的工作,但是如果你不好好學習,那么你很難找到一份數據分析相關的工作。

我們用1表示好好學習,0表示沒有好好學習,并賦初值為1,也就是假設你好好學習了。

當判斷條件為是否好好學習時,具體流程如下圖所示:

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


下面為其實現代碼:

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


當判斷條件為是否沒有好好學習時,具體流程如下圖所示:

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


下面為其實現代碼:

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


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

2、else語句

else語句是if語句的補充,if條件只說明了當條件滿足時程序做什么,沒有說當條件不滿足時程序做什么。而else語句正好是用來說明當條件不滿足時,程序做什么。

當判斷條件為是否好好學習時,具體流程如下圖所示:

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


下面為其實現代碼:

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


當判斷條件為是否沒有好好學習時,下面為其代碼實現:

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


3、elif語句

elif語句可以近似理解成else_if,前面提到的if語句、else語句都只能對一條語句進行判斷,但是當你需要讀多條語句進行判斷時,就可以用elif語句判斷。

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

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

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


代碼實現如下圖所示:

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


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


函數

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

1、普通函數

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

函數定義語法如下圖所示:

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


定義函數使用的關鍵詞是def,函數名后面的括號里面放參數(參數可以為空),參數后面要以冒號結尾,語句塊要縮進四個空格,語句塊是函數具體要做的事情。

定義一個名為learn_python的函數:

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


上面的函數利用函數名learn_python調用了多次learn_python對應的語句塊。

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

上面語句塊中直接執(zhí)行了print操作,沒有返回值,我們也可以利用return對語句塊的運行結果進行返回。

定義一個含有return的函數:

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


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


這次調用函數以后,沒有直接進行print操作,而是將運行結果利用return進行了返回。

定義一個含有多個參數的函數:

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


2、匿名函數

匿名函數,顧名思義就是沒有名字的函數,也就是省略了def定義函數的過程。Lambda只是一個表達式,沒有函數體,lambda使用方法如下:

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


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

現在我們分別利用普通函數和匿名函數兩種方式來建立一個兩數相加的函數,讓大家看看兩者的不同。

普通函數如下:

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


匿名函數如下:

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


匿名函數比普通函數簡潔的多,也是比較常用的,大家務必熟練的掌握。

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


高級特性

1、列表生成式

現在有一個列表,你需要對該列表中的每一個,你需要對該列表中的每個值求平方,然后將結果組成一個新列表,我們先看看普通方法怎么實現的。

普通方法實現如下:

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


列表生成式實現如下:

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


上面的需求比較簡單,你可能沒有領略到列表生成式的妙用。我們再來看一些復雜的需求。

現在有兩個列表,需要把這兩個列表中的值兩兩組合,我們分別用普通方法和列表生成式實現一下。

普通方法實現如下;

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


列表生成式實現如下:

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


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

2、map函數

map函數的表現形式是map(function,agrs),表示對序列args中的每個值進行function操作,最終得到一個結果列。

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


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

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


模塊

模塊是升級版的函數,我們前面說過,在一段程序中可以通過函數名多次調用函數,但是必須在定義函數的這段程序里面調用,如果換到其他程序里該函數就不起作用了。

模塊之所以是升級版的函數,是因為在任意程序中都可以通過模塊名去調用該模塊對應的程序。

你要調用函數首先需要定義一個函數,同理,你要調用模塊,首先需要導入模塊,導入模塊的方法主要有兩種。

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

數據分析領域用的比較多的三個模塊分別是Numpy、Pandas、matplotlib,Python中還有很多類似的模塊,正是因為這類模塊的存在,使得Python變的很簡單,受到越來越多人的歡迎。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

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(), // 加隨機數防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數1:配置參數 // 參數2:回調,回調的第一個參數驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }