Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng) (第二版) 課件 宋天龍 第1-4章 Python入門指南-數(shù)據(jù)探索和預(yù)處理_第1頁
Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng) (第二版) 課件 宋天龍 第1-4章 Python入門指南-數(shù)據(jù)探索和預(yù)處理_第2頁
Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng) (第二版) 課件 宋天龍 第1-4章 Python入門指南-數(shù)據(jù)探索和預(yù)處理_第3頁
Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng) (第二版) 課件 宋天龍 第1-4章 Python入門指南-數(shù)據(jù)探索和預(yù)處理_第4頁
Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng) (第二版) 課件 宋天龍 第1-4章 Python入門指南-數(shù)據(jù)探索和預(yù)處理_第5頁
已閱讀5頁,還剩245頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Python入門指南Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng)(第二版)01本章學(xué)習(xí)目標(biāo)掌握Python基本概念及其在數(shù)據(jù)分析中的應(yīng)用理解并運(yùn)用Anaconda和pip工具,構(gòu)建Python開發(fā)環(huán)境熟悉主要Python數(shù)據(jù)分析工具,如Pandas、NumPy、Matplotlib等掌握J(rèn)upyterNotebook的基本操作學(xué)會(huì)在JupyterNotebook環(huán)境下進(jìn)行Python編程和互動(dòng)學(xué)習(xí)1.1Python與數(shù)據(jù)分析Python的基本概念Python在數(shù)據(jù)分析中的作用使用Anaconda輕松安裝Python環(huán)境使用pip管理第三方庫(kù)1.1Python與數(shù)據(jù)分析Python是一種面向?qū)ο蟮慕忉屝愿呒?jí)編程語言。1989年的圣誕節(jié),荷蘭人Guido開始編寫Python語言的編譯器。1991年,第一個(gè)Python編譯器誕生,這標(biāo)志著Python的第一個(gè)版本正式誕生。Python的基本概念1.1Python與數(shù)據(jù)分析(1)開源/免費(fèi)。(2)可移植性:Windows、Linux、Mac等多平臺(tái)運(yùn)行。(3)豐富的第三方庫(kù):適用于數(shù)據(jù)庫(kù)連接、數(shù)據(jù)科學(xué)計(jì)算、機(jī)器學(xué)習(xí)及深度學(xué)習(xí)等眾多領(lǐng)域。(4)與其他語言集成:Python能夠直接調(diào)用Java、C、C++、MATLAB、R等語言開發(fā)的應(yīng)用程序或系統(tǒng)功能。Python語言的特點(diǎn)Python的基本概念1.1Python與數(shù)據(jù)分析(5)強(qiáng)大的學(xué)習(xí)交流和培訓(xùn)資源:作為全球最主流的編程語言之一,Python擁有豐富的社區(qū)支持、博客、論壇及培訓(xùn)教育資源。(6)高開發(fā)效率:Python語法簡(jiǎn)潔規(guī)范,有效提升開發(fā)效率。(7)簡(jiǎn)單易學(xué):Python語法易于學(xué)習(xí),適合編程初學(xué)者,大幅降低了數(shù)據(jù)分析的學(xué)習(xí)門檻。Python語言的特點(diǎn)Python的基本概念1.1Python與數(shù)據(jù)分析數(shù)據(jù)分析指通過處理和分析特定數(shù)據(jù)集,提取有價(jià)值信息、挖掘規(guī)律、得出有效結(jié)論和洞察的方法。這一過程在輔助決策、提供科學(xué)建議的實(shí)際應(yīng)用中發(fā)揮重要作用。數(shù)據(jù)分析不僅限于傳統(tǒng)統(tǒng)計(jì)方法,還包括機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等與數(shù)據(jù)相關(guān)的多種方法和算法,應(yīng)用于解決各行各業(yè)的問題。Python在數(shù)據(jù)分析中的作用數(shù)據(jù)分析的基本概念1.1Python與數(shù)據(jù)分析(1)數(shù)據(jù)清洗與準(zhǔn)備(2)統(tǒng)計(jì)分析與數(shù)據(jù)建模(3)文本處理與自然語言處理(NLP)(4)深度學(xué)習(xí)與人工智能(5)大數(shù)據(jù)處理(6)數(shù)據(jù)可視化Python在數(shù)據(jù)分析中的作用Python在數(shù)據(jù)分析中的作用1.1Python與數(shù)據(jù)分析Python標(biāo)準(zhǔn)程序:官方發(fā)布的標(biāo)準(zhǔn)Python編程環(huán)境,包含Python解釋器和核心功能、庫(kù)、包,是Python編程的基礎(chǔ)設(shè)施。Python第三方庫(kù):它們由社區(qū)和開發(fā)者創(chuàng)建,用于擴(kuò)展Python在特定領(lǐng)域的功能,例如數(shù)據(jù)分析、科學(xué)計(jì)算、機(jī)器學(xué)習(xí)等場(chǎng)景功能增強(qiáng)。使用Anaconda輕松安裝Python環(huán)境Python環(huán)境的構(gòu)成1.1Python與數(shù)據(jù)分析手動(dòng)安裝:從官網(wǎng)下載Python標(biāo)準(zhǔn)程序,手動(dòng)安裝所需第三方庫(kù),這種方法雖靈活,但配置和管理庫(kù)的依賴關(guān)系可能較為繁瑣。使用Anaconda:Anaconda是一個(gè)集成Python環(huán)境,主要用于簡(jiǎn)化和加速數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和科學(xué)計(jì)算的開發(fā)部署。核心特點(diǎn):內(nèi)置Python環(huán)境、豐富的三方庫(kù)、依賴管理、跨平臺(tái)支持、多種交互方式、環(huán)境隔離。使用Anaconda輕松安裝Python環(huán)境安裝Python環(huán)境的常見方法1.1Python與數(shù)據(jù)分析1.登錄Anaconda官網(wǎng)下載對(duì)應(yīng)系統(tǒng)和對(duì)應(yīng)版本即可選擇對(duì)應(yīng)系統(tǒng),找到下載鏈接2.運(yùn)行安裝程序,完成安裝根據(jù)操作系統(tǒng),打開下載的Anaconda安裝程序,Windows為.exe文件,macOS和Linux為.sh文件。運(yùn)行安裝程序,安裝過程中,跟隨安裝向?qū)褂媚J(rèn)配置即可。使用Anaconda輕松安裝Python環(huán)境使用Anaconda準(zhǔn)備Python環(huán)境1.2如何準(zhǔn)備Python程序環(huán)境pip是Python包管理工具,提供了對(duì)Python包的查找、下載、安裝、更新、卸載等功能。conda是Anaconda的Python包管理工具,提供的功能與pip基本類似,區(qū)別僅在于僅適用于anaconda安裝環(huán)境,pip則是通用任何環(huán)境。使用pip管理第三方庫(kù)Anaconda管理第三方庫(kù)的工具1.2如何準(zhǔn)備Python程序環(huán)境#示例,安裝結(jié)巴分詞庫(kù)使用pipinstalljieba#示例,安裝特定版本的庫(kù)則可以指定版本號(hào)pipinstalljieba==0.42.1安裝庫(kù):使用命令pipinstall庫(kù)名安裝第三方庫(kù)使用pip管理第三方庫(kù)1.2如何準(zhǔn)備Python程序環(huán)境#示例,更新結(jié)巴分詞庫(kù)pipinstall-Ujiebapipinstall--upgradejieba更新庫(kù):使用pipinstall-U庫(kù)名或pipinstall--upgrade庫(kù)名升級(jí)已安裝的庫(kù)使用pip管理第三方庫(kù)1.2如何準(zhǔn)備Python程序環(huán)境#示例,查看結(jié)巴分詞庫(kù)的版本、路徑等信息使用pipshowjieba查看庫(kù):使用piplist查看所有已安裝庫(kù),或pipshow庫(kù)名查看特定庫(kù)的詳細(xì)信息使用pip管理第三方庫(kù)1.2如何準(zhǔn)備Python程序環(huán)境#示例,卸載結(jié)巴分詞庫(kù)pipuninstalljieba卸載庫(kù):使用pipuninstall庫(kù)名從Python環(huán)境中卸載不再需要的庫(kù)使用pip管理第三方庫(kù)1.2Python數(shù)據(jù)分析工具數(shù)據(jù)分析的得力助手統(tǒng)計(jì)分析與建模工具文本處理與分析的利器走進(jìn)深度學(xué)習(xí)與人工智能新潮的數(shù)據(jù)分析方法1.2Python數(shù)據(jù)分析工具Pandas是PythonDataAnalysisLibrary的簡(jiǎn)稱主要應(yīng)用于數(shù)據(jù)預(yù)處理、數(shù)據(jù)探索、特征工程、數(shù)據(jù)可視化。提供用于進(jìn)行結(jié)構(gòu)化數(shù)據(jù)分析的二維的表格。Pandas還提供了時(shí)間序列的功能,用于金融行業(yè)的數(shù)據(jù)分析。Anaconda默認(rèn)已經(jīng)安裝了該包。數(shù)據(jù)分析的得力助手:Pandas、NumPy、MatplotlibPandas1.2Python數(shù)據(jù)分析工具NumPy是Python的數(shù)值計(jì)算庫(kù)。核心價(jià)值點(diǎn)在于數(shù)學(xué)函數(shù)、運(yùn)算符、廣播、索引和切片功能等數(shù)據(jù)處理能力更加高效。在科學(xué)計(jì)算、線性代數(shù)、統(tǒng)計(jì)分析等領(lǐng)域應(yīng)用較多。Anaconda默認(rèn)已經(jīng)安裝了該包。數(shù)據(jù)分析的得力助手:Pandas、NumPy、MatplotlibNumPy1.2Python數(shù)據(jù)分析工具最受歡迎的數(shù)據(jù)可視化庫(kù)之一。主要用于創(chuàng)建圖表,也是其他很多數(shù)據(jù)可視化庫(kù)的基礎(chǔ)庫(kù)它提供豐富的繪圖選項(xiàng),包括折線圖、散點(diǎn)圖、柱狀圖、餅圖、3D圖等。主要適用于數(shù)據(jù)探索、傳達(dá)發(fā)現(xiàn)和生成專業(yè)圖形報(bào)告。Anaconda默認(rèn)已安裝Matplotlib數(shù)據(jù)分析的得力助手:Pandas、NumPy、MatplotlibMatplotlib1.2Python數(shù)據(jù)分析工具數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的主要庫(kù)。它提供監(jiān)督式學(xué)習(xí)和非監(jiān)督式學(xué)習(xí)方法,包括回歸、K近鄰、貝葉斯、決策樹、混合高斯模型、聚類、分類等算法。該庫(kù)支持?jǐn)?shù)據(jù)預(yù)處理、模型選擇和評(píng)估,是全面的機(jī)器學(xué)習(xí)的工具庫(kù)。Anaconda默認(rèn)已安裝sklearn。統(tǒng)計(jì)分析與建模工具:scikit-learn、Statsmodelsscikit-learn1.2Python數(shù)據(jù)分析工具統(tǒng)計(jì)建模和計(jì)量經(jīng)濟(jì)學(xué)工具包。它提供了描述性統(tǒng)計(jì)、統(tǒng)計(jì)模型估計(jì)、統(tǒng)計(jì)測(cè)試等功能。它集成了多種線性回歸模型、廣義線性模型、離散數(shù)據(jù)分布模型、時(shí)間序列分析模型等。Statsmodels是進(jìn)行統(tǒng)計(jì)分析和建模的重要工具。Anaconda默認(rèn)已安裝Statsmodels。統(tǒng)計(jì)分析與建模工具:scikit-learn、StatsmodelsStatsmodels1.2Python數(shù)據(jù)分析工具專用于中文文本處理的Python庫(kù)。它提供了分詞、關(guān)鍵字提取、詞性標(biāo)注等自然語言處理功能。它支持精確模式、全模式和搜索引擎模式分詞,適用于中文文本挖掘、自然語言處理和信息檢索。jieba分詞是處理中文文本的首選工具。Anaconda未集成jieba分詞,可通過pipinstalljieba安裝。文本處理與分析的利器:jieba分詞、Gensimjieba分詞1.2Python數(shù)據(jù)分析工具主題建模和文本分析的Python庫(kù)。它支持文本主題建模,如LatentDirichletAllocation(LDA)和LatentSemanticAnalysis(LSA)。Gensim是大規(guī)模文本數(shù)據(jù)處理、文本聚類和信息檢索的關(guān)鍵工具。Anaconda未集成Gensim,可通過pipinstallgensim安裝。文本處理與分析的利器:jieba分詞、GensimGensim1.2Python數(shù)據(jù)分析工具它是Google開發(fā)的開源機(jī)器學(xué)習(xí)框架。廣泛應(yīng)用于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)。它提供靈活的計(jì)算圖模型構(gòu)建各類神經(jīng)網(wǎng)絡(luò),如CNN、RNN、自動(dòng)編碼器等。TensorFlow具高度優(yōu)化的計(jì)算性能和硬件加速支持,是大規(guī)模深度學(xué)習(xí)項(xiàng)目的首選框架。走進(jìn)深度學(xué)習(xí)與人工智能:Tensorflow、pytorchTensorFlow1.2Python數(shù)據(jù)分析工具它由Facebook開發(fā)的深度學(xué)習(xí)框架。支持模型構(gòu)建和修改,快速迭代實(shí)驗(yàn)。提供自動(dòng)微分、模型并行處理、遷移學(xué)習(xí)等高級(jí)功能。PyTorch有活躍社區(qū)和豐富生態(tài)系統(tǒng),包括擴(kuò)展庫(kù)、預(yù)訓(xùn)練模型等。該庫(kù)在學(xué)術(shù)研究領(lǐng)域應(yīng)用比較廣泛。走進(jìn)深度學(xué)習(xí)與人工智能:Tensorflow、pytorchPytorch1.2Python數(shù)據(jù)分析工具它是OpenAI提供的基于GPT技術(shù)的智能聊天機(jī)器人。ChatGPT允許用戶以自然語言提出數(shù)據(jù)分析問題,然后生成相應(yīng)的回答和建議。ChatGPT支持上傳文件,自動(dòng)進(jìn)行數(shù)據(jù)分析和處理。新潮的數(shù)據(jù)分析方法:基于大語言模型的分析——ChatGPT、Auto-GPT、pandas-aiChatGPT1.2Python數(shù)據(jù)分析工具它是基于GPT技術(shù)(例如ChatGPT)的自主AI代理,能夠根據(jù)用戶設(shè)定的目標(biāo)和規(guī)則進(jìn)行決策和執(zhí)行任務(wù)。Auto-GPT結(jié)合了AI的強(qiáng)大代碼邏輯、文件處理和開發(fā)流程能力,以及與其他語言和服務(wù)的集成能力。它能自動(dòng)完成特定任務(wù),如根據(jù)用戶用自然語言描述的數(shù)據(jù)分析目標(biāo),自動(dòng)執(zhí)行數(shù)據(jù)分析任務(wù)。新潮的數(shù)據(jù)分析方法:基于大語言模型的分析——ChatGPT、Auto-GPT、pandas-aiAuto-GPT1.2Python數(shù)據(jù)分析工具它是一個(gè)集成了GPT技術(shù)的Python庫(kù),專為增強(qiáng)pandasDataFrame的操作而設(shè)計(jì)。它允許用戶使用ChatGPT風(fēng)格的自然語言提示來執(zhí)行pandasDataFrame上的各種操作。pandas-ai的優(yōu)勢(shì)在于簡(jiǎn)化數(shù)據(jù)處理流程,用戶可以通過自然語言指令進(jìn)行數(shù)據(jù)轉(zhuǎn)換、查詢、繪圖等任務(wù),而無需編寫復(fù)雜的pandas代碼。新潮的數(shù)據(jù)分析方法:基于大語言模型的分析——ChatGPT、Auto-GPT、pandas-aiPandas-ai1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebook啟動(dòng)JupyterJupyter的功能介紹Jupyter的常用操作技巧Jupyter的特殊命令個(gè)性化配置Jupyter1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebook(1)通過程序快捷入口啟動(dòng)(2)使用命令行啟動(dòng)(3)通過AnacondaNavigator啟動(dòng)啟動(dòng)Jupyter有3種方式啟動(dòng)JupyterNotebook1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebook啟動(dòng)Jupyter有3種方式啟動(dòng)JupyterNotebook1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebookJupyter的功能介紹主功能區(qū):圖中①展示的是File(文件,默認(rèn)視圖)功能區(qū),這里可以查看并管理該空間下所有文件和目錄文件和目錄功能區(qū):在圖中②,用戶可以在此區(qū)域?qū)ξ募湍夸涍M(jìn)行新增、刪除、移動(dòng)、上傳等操作。文件和目錄列表:圖中③展示了特定目錄和文件,用戶可以直接單擊以查看文件詳情。1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebookJupyter的常用操作技巧新建Python文件編輯Python文件保存與恢復(fù)導(dǎo)出文件單元格輸入和輸出單元格常用編輯功能執(zhí)行Python程序1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebookJupyter的特殊命令魔術(shù)命令(MagicCommands)是IPython及其交互式計(jì)算環(huán)境JupyterNotebook中的一種特殊功能。它們是以百分號(hào)(%)為前綴的命令,這些命令覆蓋了各種常用功能,如文件和目錄操作、交互式數(shù)據(jù)可視化、性能分析、環(huán)境管理等。什么是魔術(shù)命令1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebookJupyter的特殊命令常用魔術(shù)命令%matplotlibinline:把matplotlib庫(kù)的可視化結(jié)果%ls:查看當(dāng)前目錄下的文件或文件夾詳細(xì)列表信息%cd:切換工作路徑%run:執(zhí)行特定Python文件。要中斷程序,按Ctrl+C組合健%paste和%cpaste:粘貼在剪切板中的內(nèi)容%pwd:查看當(dāng)前Python工作路徑和目錄1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebook個(gè)性化配置Jupyter生成配置文件命令:jupyternotebook--generate-config完成之后,系統(tǒng)會(huì)有如下提示:Writingdefaultconfigto:C:\Users\Administrator\.jupyter\jupyter_notebook_config.py1.3互動(dòng)學(xué)習(xí)環(huán)境:JupyterNotebook個(gè)性化配置Jupyter配置Jupyter工作目錄示例,將Jupyter的默認(rèn)工作目錄更改為本書附件的根目錄:(1)在配置文件(在上一步的jupyternotebook--generate-config命令輸出的目錄中看到)中找到“c.NotebookApp.notebook_dir=”這一行代碼.(2)取消其前面的注釋(即去掉“#”),并在其后設(shè)置具體的目錄路徑。Signature1.4首次嘗試:編寫并運(yùn)行第一個(gè)的Python程序步驟1新建一個(gè)名為code的Python3文件步驟2輸入如下代碼:步驟3單擊按鈕,執(zhí)行命令步驟4查看打印及保存結(jié)果print('helloworld')源碼見配套資源:第1章/code.ipynbSignature任務(wù)實(shí)訓(xùn):展示你的個(gè)性——打印出自己的名字基本背景:在Python中,print命令是一項(xiàng)基礎(chǔ)且常用的操作,它用于將目標(biāo)對(duì)象輸出到調(diào)試窗口。訓(xùn)練要點(diǎn):(1)掌握print函數(shù)的基本用法。(2)培養(yǎng)中文輸入和英文輸入字符串的習(xí)慣。提示:漢字輸出需要中文輸入法,而字符串符號(hào)則需要英文輸入狀態(tài)。實(shí)訓(xùn)要求:在Jupyter中新建一個(gè)Python3文件,在單元格中使用print方法打印輸出你的中文名字。學(xué)習(xí)進(jìn)步!Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng)(第二版)Python基本語法02Python數(shù)據(jù)處理、分析、可視化與數(shù)據(jù)化運(yùn)營(yíng)(第二版)本章學(xué)習(xí)目標(biāo)深入理解Python的基本特性和語法規(guī)則全面掌握Python的數(shù)據(jù)類型和結(jié)構(gòu),熟悉類型判斷與轉(zhuǎn)換方法熟練應(yīng)用條件判斷、循環(huán)、運(yùn)算符等控制流程和邏輯處理復(fù)雜問題熟悉文本處理和正則表達(dá)式的關(guān)鍵技能,有效進(jìn)行字符串操作和模式匹配熟練使用函數(shù)、類、高階函數(shù)等實(shí)現(xiàn)代碼模塊化封裝,提升代碼重用性和維護(hù)性靈活應(yīng)用Pandas庫(kù)進(jìn)行常見的數(shù)據(jù)處理和分析工作2.1Python基礎(chǔ)Python解釋器的作用聲明編碼:設(shè)置文件字符編碼縮進(jìn)與執(zhí)行域:代碼結(jié)構(gòu)的重要性優(yōu)雅換行:處理長(zhǎng)語句的技巧注釋的力量:?jiǎn)涡泻投嘈凶⑨尩膽?yīng)用命名與賦值:變量規(guī)則和賦值方法2.1Python基礎(chǔ)Python解釋器的作用含義:解釋并執(zhí)行Python文件的程序基本語法:使用#!引導(dǎo)Python解釋器的具體路徑語法位置:腳本的第一行#!/usr/bin/python2.1Python基礎(chǔ)聲明編碼:設(shè)置文件字符編碼含義:用于指定Python解釋器讀取文件時(shí)的編碼規(guī)則基本語法:例如,聲明中文編碼可用語法位置:如果首行是Python解釋器信息,那么編碼就在第二行;否則編碼應(yīng)該在首行#coding=<encodingname>或者#-*-coding:<encodingname>-*-“#coding=utf-8”或“#-*-coding:utf-8-*-”。2.1Python基礎(chǔ)縮進(jìn)與執(zhí)行域:代碼結(jié)構(gòu)的重要性用途:通過不同層次的縮進(jìn)實(shí)現(xiàn)功能范圍的界定基本語法:一般上,在Python中以4個(gè)英文空格為單位實(shí)現(xiàn)不同層級(jí)的縮進(jìn),且不同層級(jí)的縮進(jìn)量必須相同示例(偽代碼):如果a>5:#層級(jí)1

打印a>5#層級(jí)2否則:#層級(jí)1

打印a<5#層級(jí)22.1Python基礎(chǔ)優(yōu)雅換行:處理長(zhǎng)語句的技巧print(‘這是一個(gè)條非常非常非常非常非常非常非常非常非常很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)的語句’)#未斷行print('這是一個(gè)條非常非常非常非常非常非常非常非常非常\很長(zhǎng)很長(zhǎng)很長(zhǎng)很長(zhǎng)的語句‘)#斷行用途:為提高可讀性,可將過長(zhǎng)語句分為多行長(zhǎng)度建議:一般每行長(zhǎng)度不超過79或80個(gè)字符(注意:該長(zhǎng)度不是必須的,只是建議值)用法:使用反斜杠\斷行,示例:2.1Python基礎(chǔ)注釋的力量:?jiǎn)涡泻投嘈凶⑨尩膽?yīng)用用途:注釋是編寫代碼時(shí)用于解釋程序特定部分用途、功能或注意事項(xiàng)的文本除極簡(jiǎn)單的代碼外,大部分程序都應(yīng)包含注釋。注釋可分為單行注釋和多行注釋。2.1Python基礎(chǔ)注釋的力量:?jiǎn)涡泻投嘈凶⑨尩膽?yīng)用單行注釋單行注釋用于解釋特定語句或行,使用#符號(hào)。例如:print('LearnPython')#打印輸出字符串——這里是注釋信息2.1Python基礎(chǔ)注釋的力量:?jiǎn)涡泻投嘈凶⑨尩膽?yīng)用多行注釋多行注釋適用于解釋復(fù)雜功能或模塊化代碼,如函數(shù)、類。使用三個(gè)單引號(hào)'''或三個(gè)雙引號(hào)"""包圍注釋內(nèi)容。例如:'''這是多行注釋第一行這是多行注釋第二行'''print('LearnPython')2.1Python基礎(chǔ)命名與賦值:變量規(guī)則和賦值方法命名規(guī)則(1)變量名可由字母、數(shù)字、下劃線組成,但不能以數(shù)字開頭。(2)變量名不得使用Python關(guān)鍵字,如if、while、enumerate、true等。(3)變量名區(qū)分大小寫,如a=1和A=1代表不同變量。(4)推薦使用行業(yè)通用且有意義的變量名,以便理解其含義。2.1Python基礎(chǔ)命名與賦值:變量規(guī)則和賦值方法變量賦值變量賦值使用等號(hào)=。左側(cè)為變量名,右側(cè)為賦予的值。任何對(duì)象都可賦值給變量,包括數(shù)字、字符串、日期、數(shù)組、矩陣等。例如:is_man=1is_woman=False2.2數(shù)據(jù)類型數(shù)字型數(shù)據(jù):整數(shù)型、浮點(diǎn)型、布爾型和復(fù)數(shù)型字符串型數(shù)據(jù):文本處理基礎(chǔ)日期型數(shù)據(jù):時(shí)間的表示與操作數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧2.2數(shù)據(jù)類型數(shù)字型數(shù)據(jù):整數(shù)型、浮點(diǎn)型、布爾型和復(fù)數(shù)型Python的數(shù)字類型主要包括整數(shù)型、浮點(diǎn)型、布爾型和復(fù)數(shù)型。a1=2#整數(shù)型,等價(jià)于int(2)a2=2.1#浮點(diǎn)型,等價(jià)于float(2.1)a3=True#布爾型,等價(jià)于bool(1)a4=complex(1)#復(fù)數(shù)型其中,a1定義為整數(shù)型、a2為浮點(diǎn)型、a3為布爾型、a4為復(fù)數(shù)型。(1)整數(shù)型(a1)可包含正數(shù)、負(fù)數(shù)和0。(2)浮點(diǎn)型(a2)通常為雙精度,取決于底層機(jī)器架構(gòu)。(3)布爾型(a3)只包含True和False兩種值,在計(jì)算時(shí)True視為1,F(xiàn)alse視為0。(4)復(fù)數(shù)型(a4)通常用complex方法創(chuàng)建,以一對(duì)雙精度浮點(diǎn)數(shù)表示復(fù)數(shù)值,使用較少。2.2數(shù)據(jù)類型字符串型數(shù)據(jù):文本處理基礎(chǔ)字符串以字符為處理單位,而bytes類型以字節(jié)為單位。下面的a5和a6分別是字符串和bytes類型的實(shí)例。a5='字符串'#字符串a(chǎn)6=bytes('字符串','utf-8')#bytes(1)字符串(a5)由Unicode碼位值組成,范圍是U+0000至U+10FFFF,可表示各種字符,如中文、英文、標(biāo)點(diǎn)符號(hào)等。字符串可通過單引號(hào)、雙引號(hào)或三引號(hào)創(chuàng)建。例如,a5='字符串'、a5="字符串"、a5="""字符串"""和a5='''字符串'''是等價(jià)效果。(2)bytes類型(a6)可通過bytes()方法或前綴b加字符串創(chuàng)建,bytes方法可指定編碼,如utf-8,而b''要求字符串必須是ASCII字符串。2.2數(shù)據(jù)類型日期型數(shù)據(jù):時(shí)間的表示與操作日期數(shù)據(jù)不是Python內(nèi)置類型,而是標(biāo)準(zhǔn)庫(kù)time和datetime中的類型。此外,calendar庫(kù)也可操作日期時(shí)間。由于日期在事務(wù)型數(shù)據(jù)中常見,這里介紹常用的日期類型,以datetime庫(kù)為例。2.2數(shù)據(jù)類型日期型數(shù)據(jù):時(shí)間的表示與操作1fromdatetimeimportdatetime2date_info=datetime.today().date().strftime('%Y-%m-%d')3time_info=datetime.today().time().strftime('%H:%M:%S')4Datetime_info=datetime.now().strftime('%Y-%m-%d%H:%M:%S')5Datetimestamp_info=datetime.now().strftime('%Y-%m-%d%H:%M:%S%f')6Datetimestamp_info2=datetime.now().timestamp()第1行導(dǎo)入datetime模塊。代碼2、3、4、5、6分別獲取當(dāng)前日期、時(shí)間、日期時(shí)間、兩種時(shí)間戳格式。(1)Date:由代碼2實(shí)現(xiàn)的日期,格式為YYYY-MM-DD。(2)Time:由代碼3實(shí)現(xiàn)的時(shí)間,格式為HH:MM:SS。(3)Datetime:由代碼4實(shí)現(xiàn)的日期時(shí)間,格式為YYYY-MM-DDHH:MM:SS。(4)Datetimestamp:代碼5和6實(shí)現(xiàn)的時(shí)間戳,分別為日期時(shí)間毫秒級(jí)格式和Unix時(shí)間戳。2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧判斷數(shù)據(jù)類型可使用type或isinstance方法。(1)type(object)直接返回對(duì)象的類型。(2)isinstance(object,class_or_tuple)判斷對(duì)象是否為指定類型或元組中的類型,返回布爾值。例如:數(shù)據(jù)類型的判斷方法type(a5)#使用type方法判斷類型,返回strisinstance(a5,(int,bytes))#使用isinstance方法判斷類型是否為int或bytes類型,返回False2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧字符串str和bytes類型相互轉(zhuǎn)換str_to_bytes=str.encode(a5)#將字符串轉(zhuǎn)換為bytes類型,默認(rèn)utf-8編碼bytes_to_str=bytes.decode(str_to_bytes)#將bytes解碼為字符串,默認(rèn)utf-8解碼2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧字符串str和數(shù)字Number類型相互轉(zhuǎn)換a7='1'#定義一個(gè)必須能轉(zhuǎn)換為數(shù)字的字符串對(duì)象str_to_int=int(a7)#使用int方法將字符串轉(zhuǎn)換為整數(shù)型str_to_int=float(a7)#使用float方法將字符串轉(zhuǎn)換為浮點(diǎn)型str_to_bool=bool(a7)#使用bool方法將字符串轉(zhuǎn)換為浮點(diǎn)型str_to_complex=complex(a7)#使用complex方法將字符串轉(zhuǎn)換為復(fù)數(shù)型字符串轉(zhuǎn)換為數(shù)字類型的方法2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧字符串str和數(shù)字Number類型相互轉(zhuǎn)換int_to_str=str(str_to_int)#使用str方法轉(zhuǎn)換為字符串型數(shù)字類型轉(zhuǎn)換為字符串直接使用str方法即可,示例字符串與數(shù)字類型相互轉(zhuǎn)換時(shí)需注意以下幾點(diǎn):(1)僅能將表示數(shù)字的字符串轉(zhuǎn)換為數(shù)字類型。例如,字符串'12'可以轉(zhuǎn)換為數(shù)字,而'abcd'則不可。(2)字符串轉(zhuǎn)換為布爾型時(shí),空字符串返回False,非空字符串返回True。2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧字符串str與日期類型的相互轉(zhuǎn)換datetime_to_str=datetime.now().strftime('%Y-%m-%d%H:%M:%S')#將當(dāng)前日期時(shí)間格式化為字符串字符串與日期之間的轉(zhuǎn)換涉及兩個(gè)關(guān)鍵方法:strftime和strptime。strftime用于將日期格式化為字符串,而strptime則將字符串解析為日期對(duì)象。日期轉(zhuǎn)字符串:使用datetime對(duì)象的strftime方法。這個(gè)方法根據(jù)給定的格式化字符串將日期對(duì)象轉(zhuǎn)換為文本表示。例如:2.2數(shù)據(jù)類型數(shù)據(jù)類型的多樣性:判斷與轉(zhuǎn)換技巧字符串str與日期類型的相互轉(zhuǎn)換str_to_datetime=datetime.strptime(datetime_to_str,'%Y-%m-%d%H:%M:%S')#將字符串解析為日期對(duì)象字符串與日期之間的轉(zhuǎn)換涉及兩個(gè)關(guān)鍵方法:strftime和strptime。strftime用于將日期格式化為字符串,而strptime則將字符串解析為日期對(duì)象。字符串轉(zhuǎn)日期:使用datetime模塊的strptime方法。該方法根據(jù)指定的格式字符串將文本解析為日期對(duì)象。例如:2.3數(shù)據(jù)結(jié)構(gòu)列表:有序數(shù)據(jù)的集合與推導(dǎo)式元組:不可變的數(shù)據(jù)集合與推導(dǎo)式字典:鍵值對(duì)的映射與推導(dǎo)式集合:獨(dú)特元素的集合與推導(dǎo)式數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換與判斷2.3數(shù)據(jù)結(jié)構(gòu)列表:有序數(shù)據(jù)的集合與推導(dǎo)式列表是一個(gè)有序且可變的集合,允許包含多種數(shù)據(jù)類型。可變性指列表內(nèi)元素可以更改,有序性意味著元素有固定的排列順序。list_example1=[]list_example2=list()list_example3=[1,True,b'bytes',['a','b']]創(chuàng)建列表:使用中括號(hào)[]或list()方法2.3數(shù)據(jù)結(jié)構(gòu)列表:有序數(shù)據(jù)的集合與推導(dǎo)式列表是一個(gè)有序且可變的集合,允許包含多種數(shù)據(jù)類型??勺冃灾噶斜韮?nèi)元素可以更改,有序性意味著元素有固定的排列順序。values=[1,True,b'bytes',['a','b']]#列表包括4個(gè)元素,其中第4個(gè)元素為列表。values[3]#獲取列表的第四個(gè)元素,結(jié)果為['a','b']values[-1]#獲取列表的最后一個(gè)元素,結(jié)果為['a','b']values[:2]#獲取列表前2個(gè)元素,結(jié)果為[1,True]values[-3:-1]#獲取列表倒數(shù)第一個(gè)到倒數(shù)第3個(gè)元素,結(jié)果為[True,b'bytes']values[::2]#獲取列表中從頭開始的間隔1個(gè)取一個(gè)的元素,結(jié)果為[1,b'bytes']values[3][1]#獲取列表中低4個(gè)元素的第二個(gè)值,結(jié)果為'b'獲取元素:基于索引的元素訪問2.3數(shù)據(jù)結(jié)構(gòu)列表:有序數(shù)據(jù)的集合與推導(dǎo)式用途方法說明示例追加append(object)追加元素到列表,默認(rèn)追加在最后,用于追加單個(gè)元素In:a=[1,2,3]In:a.append(4)In:aOut:[1,2,3,4]清空clear()清空整個(gè)列表In:a=[1,2,3]In:a.clear()In:aOut:[]復(fù)制copy()復(fù)制(拷貝)列表為新列表In:a=[1,2,3]In:b=a.copy()In:bOut:[1,2,3]列表操作2.3數(shù)據(jù)結(jié)構(gòu)列表操作用途方法說明示例批量追加extend(iterable)將另外一份列表對(duì)象批量追加到列表中,用于列表的擴(kuò)展In:a=[1,2,3]In:b=[4,5]In:a.extend(b)In:aOut:[1,2,3,4,5]查詢值的索引index(value)查詢從列表中某個(gè)值第一個(gè)匹配項(xiàng)的索引值In:a=[1,2,3]In:a.index(2)Out:1插入insert(index,object)將對(duì)象插入列表,與append不同的是可指定插入位置In:a=[1,2,3]In:a.insert(1,4)In:aOut:[1,4,2,3]列表操作2.3數(shù)據(jù)結(jié)構(gòu)列表操作用途方法說明示例按索引刪除元素pop(index=-1)移除列表中的一個(gè)(默認(rèn)最后一個(gè))元素,并且返回該元素的值。使用index值指定刪除的位置In:a=[1,2,3]In:a.pop()Out:3In:aOut:[1,2]按值刪除元素remove(value)移除列表中某個(gè)值的第一個(gè)匹配項(xiàng)In:a=[1,2,3]In:a.remove(1)In:aOut:[2,3]反轉(zhuǎn)列表reverse()反轉(zhuǎn)列表In:a=[1,2,3]In:a.reverse()In:aOut:[3,2,1]列表操作2.3數(shù)據(jù)結(jié)構(gòu)列表操作用途方法說明示例排序列表sort(*,key=None,reverse=False)按列表元素大小排序,通過reverse參數(shù)可指定倒序排序In:a=[1,3,2]In:a.sort()In:aOut:[1,2,3]查看列表長(zhǎng)度len(object)查看列表中有多少個(gè)對(duì)象In:a=[1,3,2]In:len(a)Out:3列表操作2.3數(shù)據(jù)結(jié)構(gòu)列表:有序數(shù)據(jù)的集合與推導(dǎo)式列表推導(dǎo)式:列表推導(dǎo)式是Python中一種高效的數(shù)據(jù)處理方式,允許元素在列表內(nèi)部直接進(jìn)行計(jì)算。[i*2foriinrange(5)]#結(jié)果為[0,2,4,6,8]示例1:進(jìn)行簡(jiǎn)單計(jì)算。以下示例從range(5)中取出每個(gè)i并乘以2并返回結(jié)果:defsum(n):returnn+n/2[sum(i)foriinrange(5)]#輸出[0.0,1.5,3.0,4.5,6.0]示例2:結(jié)合函數(shù)計(jì)算。在列表推導(dǎo)式中應(yīng)用該函數(shù),對(duì)每個(gè)元素進(jìn)行計(jì)算并返回結(jié)果2.3數(shù)據(jù)結(jié)構(gòu)元組:不可變的數(shù)據(jù)集合與推導(dǎo)式元組是一種不可變的有序集合,可以包含任意類型的數(shù)據(jù)。與列表相比,元組的主要區(qū)別在于其不可變性。tuple_example1=()tuple_example2=tuple()#元組也支持嵌套tuple_example3=(1,True,b'bytes',('a','b'))創(chuàng)建元組:使用小括號(hào)()或tuple()函數(shù)2.3數(shù)據(jù)結(jié)構(gòu)元組:不可變的數(shù)據(jù)集合與推導(dǎo)式用途方法說明示例計(jì)數(shù)count(value)查看元素的出現(xiàn)次數(shù)In:a=(1,2,2,2,3)In:a.count(2)Out:3查看索引index(value)查看特定值的第一次出現(xiàn)的索引位置In:a=(1,2,2,2,3)In:a.index(2)Out:1查看元組長(zhǎng)度len(object)查看元組中有多少個(gè)對(duì)象In:a=(1,2,2,2,3)In:len(a)Out:5元組操作:由于元組的不可變性,它不支持像列表那樣的編輯操作(如添加、刪除、清空),僅支持查看操作。2.3數(shù)據(jù)結(jié)構(gòu)元組:不可變的數(shù)據(jù)集合與推導(dǎo)式用途方法說明示例計(jì)數(shù)count(value)查看元素的出現(xiàn)次數(shù)In:a=(1,2,2,2,3)In:a.count(2)Out:3查看索引index(value)查看特定值的第一次出現(xiàn)的索引位置In:a=(1,2,2,2,3)In:a.index(2)Out:1元組操作:由于元組的不可變性,它不支持像列表那樣的編輯操作(如添加、刪除、清空),僅支持查看操作。2.3數(shù)據(jù)結(jié)構(gòu)元組:不可變的數(shù)據(jù)集合與推導(dǎo)式事實(shí)上,元組沒有直接的推導(dǎo)式。如果嘗試使用與列表類似的推導(dǎo)式,得到的將是一個(gè)生成器對(duì)象,而非元組本身。例如,執(zhí)行以下代碼:a=(i*2foriinrange(5))#這是一個(gè)推導(dǎo)式tuple_result=tuple(a)#將生成器轉(zhuǎn)換為元組查看a的類型(type(a)),會(huì)發(fā)現(xiàn)其類型是<generatorobject<genexpr>at0x0000000004766390>,這表明a是一個(gè)生成器對(duì)象,而不是元組。要將這個(gè)生成器對(duì)象轉(zhuǎn)換為元組或列表,可以使用tuple或list函數(shù)。例如:2.3數(shù)據(jù)結(jié)構(gòu)字典:鍵值對(duì)的映射與推導(dǎo)式字典是一個(gè)可變集合,以鍵值對(duì)(Key:Value)形式存儲(chǔ)數(shù)據(jù)。例如,將'王守城'的語文成績(jī)表示為:{'王守城':99}。dict_example1={1:'a'}

dict_example2=dict([(1,'a')])創(chuàng)建字典:使用大括號(hào){}或dict()函數(shù)字典的鍵必須是不可變類型,如字符串或元組,而值可以是任意類型,包括字典本身,允許嵌套。例如dict_example3={'tony':98,'lucy':{'firstname':'li'}}2.3數(shù)據(jù)結(jié)構(gòu)字典:鍵值對(duì)的映射與推導(dǎo)式字典是一個(gè)可變集合,以鍵值對(duì)(Key:Value)形式存儲(chǔ)數(shù)據(jù)。例如,將'王守城'的語文成績(jī)表示為:{'王守城':99}。values={'tony':98,'lucy':{'firstname':'li'}}#包含嵌套字典的字典values['tony']#獲取字典中Key為tony的值,結(jié)果為98values['lucy']['firstname']#獲取字典中Key為lucy的值,再?gòu)闹抵姓业終ey為firstname的值,結(jié)果為'li'values.get('tony')#使用字典的get方法獲取Key為tony的值,結(jié)果為98values.keys()#使用字典的keys方法獲取所有的key值,結(jié)果為dict_keys(['tony','lucy']),該類型可使用list轉(zhuǎn)換為列表values.values()#使用字典的values方法獲取values的值,結(jié)果為dict_values([98,{'firstname':'li'}]),該類型可使用list轉(zhuǎn)換為列表values.items()#使用字典的items方法獲取所有的鍵值對(duì)組合,結(jié)果為dict_items([('tony',98),('lucy',{'firstname':'li'})])獲取元素:基于鍵,不同于列表或元組的索引訪問2.3數(shù)據(jù)結(jié)構(gòu)字典:鍵值對(duì)的映射與推導(dǎo)式用途方法說明示例刪除所有元素clear()刪除字典內(nèi)所有元素In:a={'a':1,'b':2}In:a.clear()復(fù)制copy()復(fù)制字典對(duì)象In:a={'a':1,'b':2}In:b=a.copy()In:bOut:{'a':1,'b':2}查看索引setdefault(key,default=None)如果Key不存在與字典中,則設(shè)置默認(rèn)值,與get方法類似In:a={'a':1,'b':2}In:a.setdefault('c',0)In:aOut:{'a':1,'b':2,'c':0}字典操作2.3數(shù)據(jù)結(jié)構(gòu)字典:鍵值對(duì)的映射與推導(dǎo)式用途方法說明示例更新字典update(dict)將另一個(gè)字典中的信息按key更新到現(xiàn)有字典中In:a={'a':1,'b':2}In:b={'a':'fromb'}In:a.update(b)In:aOut:{'a':'fromb','b':2}刪除對(duì)應(yīng)的key的值pop(key,[default])刪除字典給定鍵key所對(duì)應(yīng)的值,返回值為被刪除的值。如果key不存在,則返回default值。In:a={'a':1,'b':2}In:a.pop('a')Out:1In:aOut:{'b':2}字典操作2.3數(shù)據(jù)結(jié)構(gòu)字典:鍵值對(duì)的映射與推導(dǎo)式字典推導(dǎo)式是一種高效快速創(chuàng)建和填充字典的方法。以下是一個(gè)字典推導(dǎo)式的示例:keys=(str(i*i)foriinrange(3))#通過元組推導(dǎo)式生成包含Value值的生成器values=[i+1foriinrange(3)]#列表推導(dǎo)式生成包含Key值的列表dict_final={k:vfork,vinzip(keys,values)}#通過字典推導(dǎo)式調(diào)用上述兩個(gè)對(duì)象生成字典,其結(jié)果為:{'0':1,'1':2,'4':3}2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式集合是Python中的一個(gè)基本數(shù)據(jù)結(jié)構(gòu),特點(diǎn)是包含無序且唯一的元素。與其他數(shù)據(jù)結(jié)構(gòu)相比,集合的主要特性是元素的不重復(fù)性。set_example1={1,2,3}set_example2=set([1,2,3])創(chuàng)建集合:使用大括號(hào){}或set()函數(shù)2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例增加元素add(object)向集合內(nèi)增加一個(gè)元素In:a={1,2,3}In:a.add(4)In:aOut:{1,2,3,4}移除所有元素clear()移除集合內(nèi)的所有元素In:a={1,2,3}In:a.clear()In:aOut:set()復(fù)制集合copy()復(fù)制一個(gè)集合In:a={1,2,3}In:b=a.copy()In:bOut:{1,2,3}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例增加元素add(object)向集合內(nèi)增加一個(gè)元素In:a={1,2,3}In:a.add(4)In:aOut:{1,2,3,4}移除所有元素clear()移除集合內(nèi)的所有元素In:a={1,2,3}In:a.clear()In:aOut:set()復(fù)制集合copy()復(fù)制一個(gè)集合In:a={1,2,3}In:b=a.copy()In:bOut:{1,2,3}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例查找集合差異元素difference(set)查找兩個(gè)集合的差異元素In:a={1,2,3}In:b={1,2}In:a.difference(b)Out:3刪除相同元素difference_update(set)從一個(gè)集合上刪除兩個(gè)集合中的相同的元素In:a={1,2,3}In:b={2,4}In:a.difference_update(b)In:aOut:{1,3}刪除元素discard(object)刪除集合中的元素In:a={1,2,3}In:a.discard(2)In:aOut:{1,3}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例取交集intersection(set)取兩個(gè)集合交集In:a={1,2,3}In:b={2,4}In:ersection(b)Out:{2}刪除不同元素intersection_update(set)從一個(gè)集合上刪除兩個(gè)集合中的不相同的元素In:a={1,2,3}In:b={2,4}In:ersection_update(b)Out:{2}刪除元素remove(object)元素必須在集合中In:a={1,2,3}In:a.remove(1)In:aOut:{2,3}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例取不重復(fù)集合symmetric_difference()返回兩個(gè)集合中不重復(fù)的元素的集合In:a={1,2,3}In:b={2,4}In:a.symmetric_difference(b)Out:{1,3,4}刪除重復(fù)元素并添加不重復(fù)元素symmetric_difference_update()刪除兩個(gè)集合中重復(fù)元素并將不重復(fù)元素添加到集合In:a={1,2,3}In:b={2,4}In:a.symmetric_difference_update(b)In:aOut:{1,3,4}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式用途方法說明示例取并集union(set)取兩個(gè)集合的并集In:a={1,2,3}In:b={2,4}In:a.union(b)Out:{1,2,3,4}添加集合update(set)向一個(gè)集合中添加另一個(gè)集合In:a={1,2,3}In:b={2,4}In:a.update(b)In:aOut:{1,2,3,4}集合操作:集合不支持通過索引或鍵訪問單個(gè)元素,但適用于執(zhí)行集合間的比較和組合操作。2.3數(shù)據(jù)結(jié)構(gòu)集合:獨(dú)特元素的集合與推導(dǎo)式集合推導(dǎo)式的語法類似于列表推導(dǎo)式。例如:a={iforiinrange(5)}#a的值為{0,1,2,3,4}2.3數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換與判斷判斷數(shù)據(jù)結(jié)構(gòu)可使用type或isinstance方法。(1)type(object)直接返回對(duì)象的類型。(2)isinstance(object,class_or_tuple)判斷對(duì)象是否為指定類型或元組中的類型,返回布爾值。數(shù)據(jù)結(jié)構(gòu)的判斷方法2.3數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換與判斷列表和元組之間的轉(zhuǎn)換直接使用list或tuple函數(shù)。例如,定義列表a=['1','2','3'],使用tuple(a)可轉(zhuǎn)換為元組('1','2','3')。列表和數(shù)組轉(zhuǎn)換列表和元組可直接使用set函數(shù)轉(zhuǎn)換為集合。例如,定義元組a=('1','2','1'),使用set(a)轉(zhuǎn)換為集合得到{'1','2'}。注意:在轉(zhuǎn)換過程中,集合會(huì)去除重復(fù)的元素。列表、元組和集合的轉(zhuǎn)換2.4條件與判斷單層條件判斷:if語句的應(yīng)用嵌套條件判斷:多層if語句的構(gòu)建邏輯操作:and、or的靈活運(yùn)用多條件比較:鏈?zhǔn)奖容^、all和any的技巧條件的賦值:基于條件表達(dá)式的變量更新2.4條件與判斷單層條件判斷:if語句的應(yīng)用單層條件判斷使用if語句實(shí)現(xiàn)。初始條件使用if定義,中間的條件用elif(如果存在),最后的默認(rèn)情形使用else。這種結(jié)構(gòu)適用于簡(jiǎn)單的邏輯分支。a=1#定義一個(gè)變量對(duì)象ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)

print('a=0')#打印a=0else:#如果a不為0print('a!=0')#打印a!=02.4條件與判斷嵌套條件判斷:多層if語句的構(gòu)建復(fù)雜邏輯可能需要嵌套條件判斷。在任何if、elif或else塊內(nèi),都可以包含另一個(gè)if條件判斷。這樣可以處理更復(fù)雜的情況。示例如下:a=1#定義了一個(gè)變量對(duì)象a=1ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)

print('a=0')#打印a=0elifa>0:#判斷a是否大于0,如果條件為真

ifa<=5:#判斷a是否小于等于5,如果條件為真

print('a>0且a<=5')#打印a>0且a<=5else:#判斷a大于5,如果條件為真

print('a>5')#打印a>5else:#其他情況下

print('a<0')#打印a<02.4條件與判斷邏輯操作:and、or的靈活運(yùn)用在條件判斷中,可以使用and和or來組合多個(gè)條件。and要求所有條件同時(shí)滿足,or只需任一條件滿足。例如,將條件“a>0”和“a<=5”結(jié)合,可以寫成:a=1#定義了一個(gè)變量對(duì)象a=1ifa==0:#判斷a是否為0,如果條件為真(為真的情況下返回結(jié)果True)

print('a=0')#打印a=0elifa>0anda<=5:#判斷a大于0且a小于等于5,如果條件為真

print('a>0且a<=5')#打印a>0且a<=5elifa>5:#判斷a大于5,如果條件為真

print('a>5')#打印a>5else:#其他情況下

print('a<0')#打印a<02.4條件與判斷多條件比較:鏈?zhǔn)奖容^、all和any的技巧鏈?zhǔn)奖容^鏈?zhǔn)奖容^允許進(jìn)行一系列的比較操作。例如:表達(dá)式a>0anda<=5可以被簡(jiǎn)化為0<a<=52.4條件與判斷多條件比較:鏈?zhǔn)奖容^、all和any的技巧all和any的應(yīng)用當(dāng)涉及多個(gè)條件判斷時(shí),使用多個(gè)and或or可能顯得冗長(zhǎng)。此時(shí),all和any函數(shù)提供了更簡(jiǎn)潔的解決方案:(1)all:當(dāng)所有條件都為真時(shí)返回True,否則返回False。例如,all((a>0,b<2,c==8))檢查所有條件是否同時(shí)滿足。(2)any:只要有一個(gè)條件為真即返回True,全部為假時(shí)返回False。例如,any((a>0,b<2,c==8))檢查是否至少有一個(gè)條件滿足。2.4條件與判斷條件的賦值:基于條件表達(dá)式的變量更新條件賦值是一種在賦值過程中同時(shí)進(jìn)行條件判斷的方法,適用于賦值邏輯較為復(fù)雜的情況。它使用條件表達(dá)式(三元運(yùn)算符)來決定賦值內(nèi)容。例如:a=1#創(chuàng)建變量a=1b=aifa>1else0#根據(jù)a的值做判斷,當(dāng)a>1時(shí)為b賦值1;否則b賦值02.5循環(huán)與控制流程for循環(huán)與條件表達(dá)式的搭配while循環(huán)與條件的判斷循環(huán)嵌套:處理復(fù)雜問題無限循環(huán):正確使用與避免死循環(huán)控制循環(huán):break和continue的使用2.5循環(huán)與控制流程for循環(huán)與條件表達(dá)式的搭配for循環(huán)用于遍歷序列對(duì)象,如列表、元組、字典等。例如:foriin[1,2,3]:#從列表[1,2,3]中循環(huán)取出每個(gè)值print(i)#打印輸出對(duì)應(yīng)值for循環(huán)經(jīng)常與條件表達(dá)式結(jié)合使用以實(shí)現(xiàn)復(fù)雜功能。例如:foriin[1,2,3]:#從列表[1,2,3]中循環(huán)取出每個(gè)值

ifi<=2:#新增了對(duì)i的判斷,當(dāng)i<=2時(shí)執(zhí)行下面的代碼

print(i)#打印輸出對(duì)應(yīng)值2.5循環(huán)與控制流程while循環(huán)與條件的判斷while循環(huán)基于條件來控制循環(huán)的執(zhí)行。與for循環(huán)不同,它不直接迭代序列對(duì)象。例如:i=1#定義變量對(duì)象1whilei<=2:#使用while循環(huán)對(duì)i做判斷,只有當(dāng)i<=2時(shí)才執(zhí)行下面的程序print("Good")#打印輸出Goodi+=1#對(duì)i增加1,表達(dá)式也可以寫為i=i+12.5循環(huán)與控制流程循環(huán)嵌套:處理復(fù)雜問題循環(huán)可嵌套使用,適合處理多層迭代對(duì)象。例如:nums=[[11],[21,22]]#定義了一個(gè)嵌套列表foriinnums:#外層循環(huán),每次讀取nums的一個(gè)元素(列表)為iforjini:#內(nèi)層循環(huán),讀取i中的每個(gè)元素

print(j)#打印i中的每個(gè)元素2.5循環(huán)與控制流程無限循環(huán):正確使用與避免死循環(huán)while循環(huán)可用于創(chuàng)建無限循環(huán),適用于需要持續(xù)運(yùn)行的任務(wù)。例如:whileTrue:#while后面的條件為True,意味著每次循環(huán)都會(huì)調(diào)用后面的代碼

do_something_here#do_something_here為具體實(shí)現(xiàn)邏輯注意無限循環(huán)應(yīng)謹(jǐn)慎使用,以防陷入沒有退出條件的死循環(huán)。通常,應(yīng)在while循環(huán)中設(shè)置明確的退出條件,以保證循環(huán)在滿足特定情況時(shí)能夠終止。這些條件可能包括達(dá)到某個(gè)數(shù)值閾值、找到特定字符串,或者滿足特定狀態(tài)等。2.5循環(huán)與控制流程控制循環(huán):break和continue的使用根據(jù)特定條件來控制循環(huán)的繼續(xù)或終止的兩種方式:break和continueforiin[1,2,3,4]:#從列表[1,2,3,4]循環(huán)讀取iifi<2:#判斷當(dāng)i<3結(jié)果為真時(shí),執(zhí)行下面代碼print(i)#打印輸出ielifi==2:#判斷當(dāng)i為3結(jié)果為真時(shí),執(zhí)行下面代碼continue#略過此次循環(huán),繼續(xù)下一個(gè)循環(huán)操作else:#在其他情況下break#意味著終止整個(gè)循環(huán)不再繼續(xù)執(zhí)行break用于徹底結(jié)束整個(gè)循環(huán)過程并退出循環(huán)體continue則用于僅結(jié)束當(dāng)前的循環(huán)迭代,隨后繼續(xù)執(zhí)行循環(huán)的剩余部分2.6運(yùn)算符算術(shù)運(yùn)算符:數(shù)字計(jì)算的基礎(chǔ)賦值運(yùn)算符:簡(jiǎn)化變量賦值比較運(yùn)算符:衡量數(shù)據(jù)大小邏輯運(yùn)算符:處理復(fù)雜判斷成員與身份:檢驗(yàn)元素存在性和對(duì)象身份運(yùn)算優(yōu)先級(jí):理解運(yùn)算次序2.6運(yùn)算符算術(shù)運(yùn)算符:數(shù)字計(jì)算的基礎(chǔ)運(yùn)算符名稱用途示例+加兩個(gè)數(shù)字對(duì)象為相加;兩個(gè)字符串對(duì)象為組合。In:'a'+'b'Out:'ab'-減用于單數(shù)字前面代表負(fù)數(shù);兩個(gè)數(shù)字對(duì)象表示相減。In:1–2Out:-1*乘兩個(gè)數(shù)字對(duì)象相乘;單個(gè)對(duì)象重復(fù)多次。In:'a'*3Out:'aaa'/除兩個(gè)數(shù)字對(duì)象相除In:1/2Out:0.5%取余返回除法的余數(shù),也叫模運(yùn)算In:1/2Out:1**冪運(yùn)算返回x的y次冪In:2**4Out:16//取整返回除數(shù)向下取整的整數(shù)In:1//2Out:02.6運(yùn)算符賦值運(yùn)算符:簡(jiǎn)化變量賦值運(yùn)算符名稱用途示例=簡(jiǎn)單賦值最簡(jiǎn)單的賦值方法In:c=a+bIn:cOut:3+=加法賦值將一個(gè)對(duì)象加一個(gè)數(shù)字后再賦值In:a+=2#等價(jià)于a=a+2In:aOut:4-=減法賦值將一個(gè)對(duì)象減去一個(gè)數(shù)字后再賦值In:a-=2#等價(jià)于a=a-2In:aOut:0*=乘法賦值將一個(gè)對(duì)象乘一個(gè)數(shù)字后再賦值In:a*=2#等價(jià)于a=a*2In:aOut:42.6運(yùn)算符賦值運(yùn)算符:簡(jiǎn)化變量賦值運(yùn)算符名稱用途示例/=除法賦值將一個(gè)對(duì)象除一個(gè)數(shù)字后再賦值In:a/=2#等價(jià)于a=a/2In:aOut:1.0**=冪賦值將一個(gè)對(duì)象冪運(yùn)算一個(gè)數(shù)字后再賦值In:a**=2#等價(jià)于a=a**2In:aOut:4//=取整賦值將一個(gè)對(duì)象取整賦值一個(gè)數(shù)字后再賦值In:a//=2#等價(jià)于a=a//2In:aOut:12.6運(yùn)算符比較運(yùn)算符:衡量數(shù)據(jù)大小運(yùn)算符名稱用途示例==等于比較兩個(gè)對(duì)象是否相等In:a==bOut:False!=不等于比較兩個(gè)對(duì)象是否不相等In:a!=bOut:True>和>=大于或大于等于比較a是否大于或大于等于In:a>=bOut:True<和<=小于或小于等于比較a是否小于或小于等于bIn:a<=bOut:False2.6運(yùn)算符邏輯運(yùn)算符:處理復(fù)雜判斷運(yùn)算符名稱用途示例not非返回相反的邏輯值In:not(a==b)Out:Trueand且a和b同時(shí)為真的情況下返回True,否則為FalseIn:a==2andb==1Out:Trueor或a和b有一個(gè)為真的情況下返回True,否則為FalseIn:a==2orb==2Out:True2.6運(yùn)算符成員與身份:檢驗(yàn)元素存在性和對(duì)象身份運(yùn)算符名稱用途示例in在..中是否在指定序列對(duì)象中找到對(duì)象In:ainbOut:Truenotin不在…中是否在指定序列對(duì)象中找不到對(duì)象In:anotinbOut:False運(yùn)算符名稱用途示例is是比較兩個(gè)對(duì)象是否指向同一個(gè)存儲(chǔ)對(duì)象In:aisbOut:Falseisnot不是比較兩個(gè)對(duì)象是否指向不同的存儲(chǔ)對(duì)象In:aisnotbOut:True2.6運(yùn)算符運(yùn)算優(yōu)先級(jí):理解運(yùn)算次序(1)算術(shù)運(yùn)算符:冪運(yùn)算符**(2)算術(shù)運(yùn)算符:乘*、除/、取余%、取整//(3)算術(shù)運(yùn)算符:加法+、減法-(4)比較運(yùn)算符:小于等于<=、小于<、大于>、大于等于>=(5)比較運(yùn)算符:等于==、不等于!=(6)賦值運(yùn)算符:等于=、加等于+=、減等于-=、乘等于*=、除等于/=、冪等于**=、取整等于//=(7)身份運(yùn)算符:是is、不是isnot(8)成員運(yùn)算符:在in、不在notin(9)邏輯運(yùn)算符:非not、且and、或or。除位運(yùn)算符外,按優(yōu)先級(jí)由高至低排列的運(yùn)算符:2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出字符串執(zhí)行:動(dòng)態(tài)生成與執(zhí)行代碼內(nèi)置方法:處理字符串的常見操作正則表達(dá)式:強(qiáng)大的模式匹配工具2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出字符串格式化的三種格式化方法:使用%格式化字符串使用str.format()格式化字符串使用f-strings格式化字符串2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出使用%格式化字符串通過“format%values”的格式傳值?!癴ormat”是包含%規(guī)則的字符串“values”是待插入的值。2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出使用%格式化字符串print(‘mynameis%s,age%d,height%.2f,money%5.2e,satisfied%.2f%%’%(‘lucy’,33,183.5,1000000000.0,90.365))#打印輸出mynameislucy,age33,height183.50,money1.00e+09,satisfied90.36%符號(hào)用途%s格式化為字符串%d格式化為整數(shù)%f格式化為浮點(diǎn)數(shù)%e格式化為科學(xué)計(jì)數(shù)法來表示浮點(diǎn)數(shù)%%格式化為百分號(hào)2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出使用str.format()格式化字符串str.format方法通過在字符串中插入{}作為占位符,并結(jié)合str.format(values)中的值進(jìn)行格式化。三種傳參方式:位置索引傳參默認(rèn)位置傳參關(guān)鍵字傳參2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出使用str.format()格式化字符串print('mynameis{name},age{age},height{height:.2f},money{money:5.2e},satisfied{percent:.2%}'.format(name='lucy',age=33,height=183.5,money=10000000.0,percent=0.90365))#輸出結(jié)果:mynameislucy,age33,height183.50,money1.00e+07,satisfied90.36%示例:2.7文本處理與正則表達(dá)式字符串格式化:控制信息輸出使用f-strings格式化字符串F-string方法允許在字符串前添加f字符以便在{}內(nèi)直接插入變量。示例:name='lucy'#定義name變量age=33#定義age變量height=183.5#定義height變量money=10000000.0#定義money變量percent=0.90365#定義percent變量print(f'mynameis{name},age{age},height{height:.2f},money{money:5.2e},satisfied{percent:.2%}')#在字符串前

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論