
作者 | 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)。
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í)的具體流程如下圖所示:
下面為其實(shí)現(xiàn)代碼:
條件語(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í),具體流程如下圖所示:
下面為其實(shí)現(xiàn)代碼:
當(dāng)判斷條件為是否沒(méi)有好好學(xué)習(xí)時(shí),具體流程如下圖所示:
下面為其實(shí)現(xiàn)代碼:
因?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í),具體流程如下圖所示:
下面為其實(shí)現(xiàn)代碼:
當(dāng)判斷條件為是否沒(méi)有好好學(xué)習(xí)時(shí),下面為其代碼實(shí)現(xiàn):
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ù)段,具體流程如下圖所示:
代碼實(shí)現(xiàn)如下圖所示:
函數(shù)
函數(shù)是再一個(gè)程序中可以被重復(fù)使用的一段程序。這段程序是由一塊語(yǔ)句和一個(gè)名稱組成的,只要函數(shù)定義好以后,你就可以在程序中通過(guò)該名字調(diào)用執(zhí)行這段程序。
1、普通函數(shù)
普通函數(shù)一般由函數(shù)名(必需)、參數(shù)、語(yǔ)句塊(必需)、return、變量這幾部分組成。
函數(shù)定義語(yǔ)法如下圖所示:
定義函數(shù)使用的關(guān)鍵詞是def,函數(shù)名后面的括號(hào)里面放參數(shù)(參數(shù)可以為空),參數(shù)后面要以冒號(hào)結(jié)尾,語(yǔ)句塊要縮進(jìn)四個(gè)空格,語(yǔ)句塊是函數(shù)具體要做的事情。
定義一個(gè)名為learn_python的函數(shù):
上面的函數(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ù):
這次調(diào)用函數(shù)以后,沒(méi)有直接進(jìn)行print操作,而是將運(yùn)行結(jié)果利用return進(jìn)行了返回。
定義一個(gè)含有多個(gè)參數(shù)的函數(shù):
2、匿名函數(shù)
匿名函數(shù),顧名思義就是沒(méi)有名字的函數(shù),也就是省略了def定義函數(shù)的過(guò)程。Lambda只是一個(gè)表達(dá)式,沒(méi)有函數(shù)體,lambda使用方法如下:
arg1,arg2,arg3表示具體的參數(shù),expresion表示參數(shù)要執(zhí)行的操作。
現(xiàn)在我們分別利用普通函數(shù)和匿名函數(shù)兩種方式來(lái)建立一個(gè)兩數(shù)相加的函數(shù),讓大家看看兩者的不同。
普通函數(shù)如下:
匿名函數(shù)如下:
匿名函數(shù)比普通函數(shù)簡(jiǎn)潔的多,也是比較常用的,大家務(wù)必熟練的掌握。
高級(jí)特性
1、列表生成式
現(xiàn)在有一個(gè)列表,你需要對(duì)該列表中的每一個(gè),你需要對(duì)該列表中的每個(gè)值求平方,然后將結(jié)果組成一個(gè)新列表,我們先看看普通方法怎么實(shí)現(xiàn)的。
普通方法實(shí)現(xiàn)如下:
列表生成式實(shí)現(xiàn)如下:
上面的需求比較簡(jiǎn)單,你可能沒(méi)有領(lǐng)略到列表生成式的妙用。我們?cè)賮?lái)看一些復(fù)雜的需求。
現(xiàn)在有兩個(gè)列表,需要把這兩個(gè)列表中的值兩兩組合,我們分別用普通方法和列表生成式實(shí)現(xiàn)一下。
普通方法實(shí)現(xiàn)如下;
列表生成式實(shí)現(xiàn)如下:
上面的需求用普通的方法要嵌套兩個(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é)果列。
map函數(shù)生成的結(jié)果序列不會(huì)直接把全部結(jié)果顯示出來(lái),要想獲取到結(jié)果需要for循環(huán)遍歷取出來(lái)。也可以使用list方法,將結(jié)果值生成一個(gè)列表。
模塊
模塊是升級(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)入模塊的方法主要有兩種。
數(shù)據(jù)分析領(lǐng)域用的比較多的三個(gè)模塊分別是Numpy、Pandas、matplotlib,Python中還有很多類似的模塊,正是因?yàn)檫@類模塊的存在,使得Python變的很簡(jiǎn)單,受到越來(lái)越多人的歡迎。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
訓(xùn)練與驗(yàn)證損失驟升:機(jī)器學(xué)習(xí)訓(xùn)練中的異常診斷與解決方案 在機(jī)器學(xué)習(xí)模型訓(xùn)練過(guò)程中,“損失曲線” 是反映模型學(xué)習(xí)狀態(tài)的核心指 ...
2025-09-19解析 DataHub 與 Kafka:數(shù)據(jù)生態(tài)中兩類核心工具的差異與協(xié)同 在數(shù)字化轉(zhuǎn)型加速的今天,企業(yè)對(duì)數(shù)據(jù)的需求已從 “存儲(chǔ)” 轉(zhuǎn)向 “ ...
2025-09-19CDA 數(shù)據(jù)分析師:讓統(tǒng)計(jì)基本概念成為業(yè)務(wù)決策的底層邏輯 統(tǒng)計(jì)基本概念是商業(yè)數(shù)據(jù)分析的 “基礎(chǔ)語(yǔ)言”—— 從描述數(shù)據(jù)分布的 “均 ...
2025-09-19CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫(kù)表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-19SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實(shí)戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無(wú)論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫(kù)管理中,“大表” 始終是性能優(yōu)化繞不開(kāi)的話題。 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動(dòng)態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開(kāi)始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價(jià)值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫(kù)表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實(shí)戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫(kù))處理 Excel 數(shù)據(jù)時(shí),“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗(yàn)與 t 檢驗(yàn):差異、適用場(chǎng)景與實(shí)踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計(jì)學(xué)領(lǐng)域,假設(shè)檢驗(yàn)是驗(yàn)證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲(chǔ)的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計(jì)劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計(jì)劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對(duì)象的 text 與 content:區(qū)別、場(chǎng)景與實(shí)踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請(qǐng)求開(kāi)發(fā)時(shí)(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價(jià)值的核心操盤(pán)手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫(kù)表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請(qǐng)求工具對(duì)比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請(qǐng)求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)的科學(xué)計(jì)數(shù)法問(wèn)題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長(zhǎng)浮點(diǎn)數(shù)據(jù)時(shí)的科學(xué)計(jì)數(shù)法問(wèn)題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價(jià)值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運(yùn)營(yíng)問(wèn)題、提升執(zhí)行效率的核心手段,其價(jià)值 ...
2025-09-12用 SQL 驗(yàn)證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實(shí)戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過(guò)程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計(jì)” 與 “用戶體驗(yàn) ...
2025-09-11塔吉特百貨孕婦營(yíng)銷案例:數(shù)據(jù)驅(qū)動(dòng)下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見(jiàn)頂” 的當(dāng)下,精準(zhǔn)營(yíng)銷成為企業(yè)突圍的核心方 ...
2025-09-11