Python程序開發(fā)案例教程(第2版)課件全套 黑馬 第1-17章 開啟Python學(xué)習(xí)之旅 - 項目實戰(zhàn)-天天生鮮_第1頁
Python程序開發(fā)案例教程(第2版)課件全套 黑馬 第1-17章 開啟Python學(xué)習(xí)之旅 - 項目實戰(zhàn)-天天生鮮_第2頁
Python程序開發(fā)案例教程(第2版)課件全套 黑馬 第1-17章 開啟Python學(xué)習(xí)之旅 - 項目實戰(zhàn)-天天生鮮_第3頁
Python程序開發(fā)案例教程(第2版)課件全套 黑馬 第1-17章 開啟Python學(xué)習(xí)之旅 - 項目實戰(zhàn)-天天生鮮_第4頁
Python程序開發(fā)案例教程(第2版)課件全套 黑馬 第1-17章 開啟Python學(xué)習(xí)之旅 - 項目實戰(zhàn)-天天生鮮_第5頁
已閱讀5頁,還剩1478頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章開啟Python學(xué)習(xí)之旅《Python程序開發(fā)案例教程(第2版))》學(xué)習(xí)目標(biāo)/Target

了解Python語言的特點,能夠列舉至少3個特點了解Python語言的應(yīng)用領(lǐng)域,能夠列舉至少3個應(yīng)用領(lǐng)域掌握Python解釋器的安裝方式,能夠獨立在計算機(jī)中安裝Python解釋器掌握PyCharm的安裝和使用,能夠獨立安裝PyCharm工具并使用該工具編寫與運(yùn)行代碼學(xué)習(xí)目標(biāo)/Target

熟悉Python的編程約定,能夠歸納縮進(jìn)、注釋和命令規(guī)范的規(guī)范掌握變量的定義方式,能夠在程序中定義合法的變量掌握輸入與輸出的方式,能夠通過input()和print()函數(shù)實現(xiàn)輸入與輸出功能章節(jié)概述/Summary在當(dāng)今數(shù)字化和技術(shù)驅(qū)動的世界中,編程成為了一項越來越重要的技能。而在眾多的編程語言中,Python憑借其卓越的特性和廣泛的應(yīng)用領(lǐng)域贏得了很多業(yè)內(nèi)人士的青睞。Python語言以其簡潔直觀的語法、易于學(xué)習(xí)和使用的特點,成為眾多初學(xué)者的首選。不僅如此,Python在數(shù)據(jù)科學(xué)、人工智能、Web開發(fā)等領(lǐng)域都有著廣泛的應(yīng)用,無論是企業(yè)還是個人都離不開這門多才多藝的編程語言。下面讓我們一起踏上Python編程的旅程,開啟探索編程世界的大門吧!目錄/Contents010203Python概述搭建Python開發(fā)環(huán)境快速開發(fā)Python程序04實例1:打印購物小票05實例2:打印功能菜單Python概述1.1

先定一個小目標(biāo)!了解Python語言的特點,能夠列舉至少3個特點1.1.1Python的特點1.1.1Python的特點簡單易學(xué)良好的中文支持無縫銜接單元測試Python語言之所以能夠迅速發(fā)展,受到開發(fā)人員的青睞,這與它自身具有的特點密不可分。Python的語法規(guī)則十分簡潔,使用它編寫的代碼非常接近自然語言,用戶只需要具備英語基礎(chǔ),就能夠大致讀懂代碼。與其它編程語言相比,Python可以使用更少的代碼實現(xiàn)相同的功能。此外,Python社區(qū)非?;钴S,擁有大量的教程、文檔和示例代碼,這些資源可以幫助初學(xué)者快速入門并解決問題??梢浦残载S富的庫免費(fèi)開源1.1.1Python的特點簡單易學(xué)良好的中文支持無縫銜接單元測試Python語言之所以能夠迅速發(fā)展,受到開發(fā)人員的青睞,這與它自身具有的特點密不可分。Python是開源的,這意味著你不需要花一分錢便能獲取Python源碼,并能自由復(fù)制、閱讀、改動它,提高其靈活性和可擴(kuò)展性,使其能夠適應(yīng)不斷變化的技術(shù)需求和不同領(lǐng)域的應(yīng)用場景。此外,用戶可以自由地在共享和協(xié)作的環(huán)境中交流和貢獻(xiàn)代碼,加速Python生態(tài)系統(tǒng)的發(fā)展,使得大量的第三方庫和框架得以產(chǎn)生,為各種任務(wù)提供了豐富的解決方案??梢浦残载S富的庫免費(fèi)開源1.1.1Python的特點簡單易學(xué)良好的中文支持無縫銜接單元測試Python語言之所以能夠迅速發(fā)展,受到開發(fā)人員的青睞,這與它自身具有的特點密不可分。Python作為一種解釋型語言,可以在任何安裝Python解釋器的環(huán)境中執(zhí)行,因此使Python程序具有良好的可移植性,在某個平臺編寫的程序無需或僅需少量修改便可在其它平臺運(yùn)行??梢浦残载S富的庫免費(fèi)開源1.1.1Python的特點簡單易學(xué)良好的中文支持無縫銜接單元測試Python語言之所以能夠迅速發(fā)展,受到開發(fā)人員的青睞,這與它自身具有的特點密不可分。Python不僅內(nèi)置了許多標(biāo)準(zhǔn)庫,還擁有開發(fā)人員貢獻(xiàn)的豐富的第三方庫或框架,覆蓋了幾乎所有領(lǐng)域的開發(fā)需求。這些庫或框架提供了豐富的功能和工具,可以幫助開發(fā)人員輕松實現(xiàn)復(fù)雜的任務(wù)。例如,數(shù)據(jù)科學(xué)領(lǐng)域的Pandas、Matplotlib等庫,可以幫助用戶快速實現(xiàn)數(shù)據(jù)分析和可視化的功能;Web開發(fā)領(lǐng)域的Flask和Django等框架,可以幫助用戶簡化開發(fā)程序的流程??梢浦残载S富的庫免費(fèi)開源1.1.1Python的特點簡單易學(xué)良好的中文支持無縫銜接單元測試Python語言之所以能夠迅速發(fā)展,受到開發(fā)人員的青睞,這與它自身具有的特點密不可分。Python在處理和操作中文字符、中文文本等方面有著非常出色的表現(xiàn),這主要得益于其支持Unicode編碼,可以輕松地編寫、讀取、處理中文字符,并與其他語言的字符進(jìn)行無縫交互。此外,Python社區(qū)還為用戶提供了多種針對中文文本處理的庫,如jieba庫、中文自然語言處理庫等,大大降低了用戶在處理中文相關(guān)任務(wù)時的難度??梢浦残载S富的庫免費(fèi)開源

先定一個小目標(biāo)!了解Python語言的應(yīng)用領(lǐng)域,能夠列舉至少3個應(yīng)用領(lǐng)域1.1.2Python的應(yīng)用領(lǐng)域1.1.2Python的應(yīng)用領(lǐng)域(4)網(wǎng)絡(luò)爬蟲Python自帶的urllib庫、第三方庫requests、Scrapy框架、pysider框架等讓網(wǎng)絡(luò)爬蟲變得非常簡單。(6)人工智能Python是人工智能領(lǐng)域的主流編程語言,人工智能領(lǐng)域神經(jīng)網(wǎng)絡(luò)方向流行的神經(jīng)網(wǎng)絡(luò)框架PyTorch就采用了Python語言。(5)游戲開發(fā)Python標(biāo)準(zhǔn)庫提供了pygame模塊,用戶使用該模塊可以制作2D游戲。(1)Web開發(fā)Python是Web開發(fā)的主流語言之一,類庫豐富、使用方便,具有強(qiáng)大的數(shù)據(jù)處理能力。(3)自動化運(yùn)維Python編寫的系統(tǒng)管理腳本在可讀性、性能、代碼重用度、擴(kuò)展性這幾方面都優(yōu)于Shell腳本。搭建Python開發(fā)環(huán)境1.2

先定一個小目標(biāo)!掌握AndroidStudio開發(fā)環(huán)境的搭建步驟,能夠獨立搭建AndroidStudio開發(fā)環(huán)境1.2.1Python解釋器的安裝1.2.1Python解釋器的安裝Python程序的執(zhí)行依賴于解釋器。解釋器是一種計算機(jī)中的翻譯程序,能夠把高級編程語言編寫的代碼逐行轉(zhuǎn)譯成計算機(jī)可以識別的機(jī)器語言。解釋器好比人與計算機(jī)的翻譯,它不會一次把所有的代碼全部轉(zhuǎn)譯,而是每次只轉(zhuǎn)譯一行代碼并運(yùn)行,根據(jù)代碼完成特定的操作,繼續(xù)轉(zhuǎn)譯下一行代碼并運(yùn)行,如此往復(fù),直至所有的代碼全部轉(zhuǎn)譯與運(yùn)行。1.2.1Python解釋器的安裝STEP01下載Python解釋器在瀏覽器中訪問Python解釋器的下載頁面,具體如下圖所示。STEP02下載Python解釋器Python解釋器安裝包的下載頁面,該頁面展示了很多版本的安裝包。1.2.1Python解釋器的安裝STEP03安裝Python解釋器下載相應(yīng)版本的安裝包。下載完成后,找到并雙擊安裝包,彈出Python3.11.3(64-bit)Setup窗口。1.2.1Python解釋器的安裝STEP04安裝Python解釋器勾選“Addpython.exetoPATH”選項后,單擊InstallNow后進(jìn)入SetupProgress界面。1.2.1Python解釋器的安裝STEP05安裝Python解釋器安裝完成后會自動進(jìn)入Setupwassuccessful界面。1.2.1Python解釋器的安裝STEP05安裝Python解釋器在計算機(jī)的開始菜單中搜索Python,找到并單擊Python3.11(64-bit)打開Python解釋器窗口。1.2.1Python解釋器的安裝

先定一個小目標(biāo)!掌握PyCharm的安裝和使用,能夠獨立安裝PyCharm工具并使用該工具編寫與運(yùn)行代碼1.2.2PyCharm的安裝與使用PyCharm是Jetbrain公司開發(fā)的一款Python集成開發(fā)環(huán)境(IntegratedDevelopmentEnvironment,簡稱為IDE),由于其具有智能代碼編輯器、智能提示、自動導(dǎo)入等功能,目前已經(jīng)成為Python專業(yè)開發(fā)人員和初學(xué)者廣泛使用的Python開發(fā)工具。1.2.2PyCharm的安裝與使用STEP01PyCharm的安裝在瀏覽器中訪問PyCharm官網(wǎng)的下載頁面,具體如下圖所示。1.2.2PyCharm的安裝與使用STEP01PyCharm的安裝Professional和Community是PyCharm的兩個版本,這兩個版本的特點如下。1.2.2PyCharm的安裝與使用1.提供PythonIDE的所有功能,支持Web開發(fā);2.支持Django、Flask、GoogleApp引擎、Pyramid和web2py;3.支持JavaScript、CoffeeScript、TypeScript、CSS和Cython等;4.支持遠(yuǎn)程開發(fā)、Python分析器、數(shù)據(jù)庫和SQL語句。Professional版本的特點Community版本的特點1.輕量級的PythonIDE,只支持Python開發(fā);2.免費(fèi)、開源、集成Apache2的許可證;3.智能編輯器、調(diào)試器,支持重構(gòu)和錯誤檢查,集成VCS版本控制。1.2.2PyCharm的安裝與使用STEP02PyCharm的安裝雙擊安裝包打開WelcometoPyCharmCommunityEditionSetup界面。1.2.2PyCharm的安裝與使用STEP02PyCharm的安裝單擊“Next”按鈕進(jìn)入ChooseInstallLocation界面。1.2.2PyCharm的安裝與使用STEP03PyCharm的安裝保持默認(rèn)配置,單擊“Next”按鈕,進(jìn)入InstallationOptions界面,在該界面用戶可根據(jù)需求勾選相應(yīng)功能。1.2.2PyCharm的安裝與使用STEP04PyCharm的安裝勾選所有選項,單擊“Next”按鈕進(jìn)入ChooseStartMenuFolder界面。1.2.2PyCharm的安裝與使用STEP05PyCharm的安裝單擊的“Install”按鈕開始安裝PyCharm工具,安裝完成后進(jìn)入CompletingPyCharmCommunityEditionSetup界面。1.2.2PyCharm的安裝與使用STEP01PyCharm的使用雙擊桌面上的PyCharm快捷方式圖標(biāo),打開WelcometoPyCharm窗口。1.2.2PyCharm的安裝與使用STEP02PyCharm的使用單擊窗口左側(cè)的Customize菜單項打開自定義配置面板,在該面板中選擇顏色主題為Light。1.2.2PyCharm的安裝與使用STEP03PyCharm的使用單擊窗口左側(cè)的Projects菜單項,切換回項目面板,單擊該面板中的“NewProject”按鈕進(jìn)入NewProject窗口。1.2.2PyCharm的安裝與使用STEP04PyCharm的使用單擊“Create”按鈕會在D:\PythonProject目錄下創(chuàng)建一個名稱為first_proj的項目,并進(jìn)入項目管理窗口。1.2.2PyCharm的安裝與使用STEP05PyCharm的使用單擊“Create”按鈕會在D:\PythonProject目錄下創(chuàng)建一個名稱為first_proj的項目,并進(jìn)入項目管理窗口。1.2.2PyCharm的安裝與使用STEP06PyCharm的使用單擊左上方標(biāo)注的文件夾圖標(biāo),彈出項目的目錄結(jié)構(gòu)。1.2.2PyCharm的安裝與使用STEP07PyCharm的使用選中first_proj項目的根目錄右擊,在彈出的下拉菜單中選擇“New”→“PythonFile”,彈出NewPythonfile窗口,用于給項目添加保存代碼的Python文件。1.2.2PyCharm的安裝與使用STEP08PyCharm的使用選中first_proj項目的根目錄右擊,在彈出的下拉菜單中選擇“New”→“PythonFile”,彈出NewPythonfile窗口,用于給項目添加保存代碼的Python文件。1.2.2PyCharm的安裝與使用STEP09PyCharm的使用在Name文本框中,填寫Python文件的名稱為first,按下回車鍵后會在first_proj項目的根目錄下添加first.py文件。print("書山有路勤為徑,學(xué)海無涯苦作舟")1.2.2PyCharm的安裝與使用STEP10PyCharm的使用編寫完畢后,單擊窗口上方的

按鈕,或者按組合鍵“Shift+F10”會立即運(yùn)行該文件的代碼,代碼的運(yùn)行結(jié)果會顯示到窗口下方的控制臺面板中??焖匍_發(fā)Python程序1.31.3.1

開發(fā)第一個Python程序

先定一個小目標(biāo)!掌握編寫簡單Python程序的步驟,能夠編寫一個模擬手機(jī)充值的程序1.3.1

開發(fā)第一個Python程序生活中常常出現(xiàn)這樣的場景:當(dāng)手機(jī)卡余額不足時,會收到運(yùn)營商發(fā)來的提示短信,此時用戶可根據(jù)需要在充值平臺上輸入要充值的手機(jī)號碼和金額進(jìn)行充值。充值成功后,會再次收到短信提示。如何使用Python模擬手機(jī)充值的場景呢?1.3.1

開發(fā)第一個Python程序(1)如何接收用戶輸入的手機(jī)號碼與充值金額。(2)如何保存用戶輸入的手機(jī)號碼與充值金額。(3)如何提示用戶充值成功。實現(xiàn)步驟1.3.1

開發(fā)第一個Python程序phone_num=input('請輸入要充值的手機(jī)號碼:')recharge_amount=input('請輸入要充值的金額:')print('手機(jī)號碼',phone_num,'成功充值',recharge_amount,'元')請輸入要充值的手機(jī)號碼輸入要充值的金額:100手機(jī)號功充值100元編寫代碼運(yùn)行程序1.3.2良好的編程約定

先定一個小目標(biāo)!熟悉Python的編程約定,能夠歸納縮進(jìn)、注釋和命令規(guī)范的規(guī)范1.3.2良好的編程約定1.縮進(jìn)。標(biāo)準(zhǔn)Python風(fēng)格中每個縮進(jìn)級別使用4個空格,不推薦使用Tab,禁止混用空格與Tab。2.行的最大長度。每行最大長度不要超過79個字符。3.空白行。頂層函數(shù)和類之間空兩行,類中的每個方法之間空一行;函數(shù)內(nèi)邏輯無關(guān)的代碼段之間空一行,其它地方盡量不要空行。4.不要將多個語句寫在同一行。代碼布局1.逗號、冒號、分號前不要加空格。2.函數(shù)的左括號前不要加空格。如,fun(1)。3.序列的左括號前不要加空格,如list[2]。4.運(yùn)算符左右各加一個空格,如a+b=c??崭褚罅己玫木幊碳s定1.3.2良好的編程約定1.塊注釋。塊注釋用于對代碼段進(jìn)行解釋和概述,每行以一個#號和一個空格開頭。2.行內(nèi)注釋。行內(nèi)注釋是與代碼同處于一行的注釋,用于對這行代碼進(jìn)行解釋、補(bǔ)充或提醒關(guān)鍵細(xì)節(jié)。3.文檔字符串。文檔字符串指的是為所有公共模塊、函數(shù)、類以及方法編寫的文檔說明,一般由三對單引號或三對雙引號包裹。代碼注釋1.模塊名、包名應(yīng)簡短,一般全為小寫字母,多個單詞用下畫線分隔。2.函數(shù)名一般全為小寫字母,多個單詞用下畫線分隔。3.類名一般使用大寫字母開頭的單個或多個單詞。4.常量名一般全為大寫字母,多個單詞用下畫線分隔。命名規(guī)范良好的編程約定

先定一個小目標(biāo)!掌握變量的定義方式,能夠在程序中定義合法的變量1.3.3數(shù)據(jù)的表示——變量1.3.3數(shù)據(jù)的表示——變量Python程序運(yùn)行的過程中隨時可能產(chǎn)生一些臨時數(shù)據(jù),應(yīng)用程序會將這些數(shù)據(jù)保存在內(nèi)存單元中,并使用不同的標(biāo)識符來標(biāo)識各個內(nèi)存單元。這些具有不同標(biāo)識、存儲臨時數(shù)據(jù)的內(nèi)存單元稱為變量,標(biāo)識內(nèi)存單元的符號則為變量名,內(nèi)存單元中存儲的數(shù)據(jù)就是變量的值。1.3.3數(shù)據(jù)的表示——變量Python中定義變量的方式非常簡單,只需要指定數(shù)據(jù)和變量名即可。變量名=數(shù)據(jù)1.3.3數(shù)據(jù)的表示——變量變量名不能隨意命名,需要應(yīng)遵循一定的命名規(guī)則。(1)變量名由字母、數(shù)字和下畫線組成,且不以數(shù)字開頭,例如name、age。(2)變量名區(qū)分大小寫。例如,andy和Andy是不同的變量名。(3)變量名不允許使用關(guān)鍵字。例如if、import、while、global等。多學(xué)一招關(guān)鍵字關(guān)鍵字又稱保留字,它是Python語言預(yù)先定義好、具有特定含義的標(biāo)識符,用于記錄特殊值或標(biāo)識程序結(jié)構(gòu)。FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryield

先定一個小目標(biāo)!掌握輸入與輸出的方式,能夠通過input()和print()函數(shù)實現(xiàn)輸入與輸出功能1.3.4基本輸入輸出1.3.4基本輸入輸出input(prompt)input()函數(shù)input()函數(shù)用于接收用戶從鍵盤輸入的數(shù)據(jù),該函數(shù)返回一個字符串類型數(shù)據(jù)。prompt是函數(shù)的參數(shù),用于設(shè)置接收用戶輸入時的提示信息,可以省略。user_name=input('請輸入賬號:')#接收用戶輸入的賬號password=input('請輸入密碼:')#接收用戶輸入的密碼print('登錄成功!')請輸入賬號:itcast請輸入密碼:12345登錄成功!編寫代碼運(yùn)行程序1.3.4基本輸入輸出1.3.4基本輸入輸出print(*objects,

sep='

',

end='\n',

file=None,

flush=False)print()函數(shù)print()函數(shù)用于向控制臺中輸出數(shù)據(jù),它可以輸出任何類型的數(shù)據(jù)。objects:表示輸出的數(shù)據(jù)。輸出多個數(shù)據(jù)時,需要用逗號分隔。sep:可選參數(shù),用于設(shè)定數(shù)據(jù)之間使用的分隔符,默認(rèn)值為空格。end:可選參數(shù),用于設(shè)定輸出結(jié)果以什么結(jié)尾,默認(rèn)值為換行符\n。file:可選參數(shù),表示數(shù)據(jù)要寫入的文件對象,默認(rèn)值為sys.stdout,表示標(biāo)準(zhǔn)輸出流,默認(rèn)情況下程序會將結(jié)果輸出到控制臺。name='小明'#輸出多個數(shù)據(jù),第一個是字符串,第二個是變量保存的數(shù)據(jù)print('姓名:',name)#輸出一個數(shù)據(jù)print('年齡:22')address='北京'#輸出多個數(shù)據(jù),第一個是字符串,第二個是變量保存的數(shù)據(jù)print('地址:',address)姓名:小明年齡:22地址:北京編寫代碼運(yùn)行程序1.3.4基本輸入輸出實例1:打印購物小票1.41.4

實例1:打印購物小票

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例1:打印購物小票當(dāng)我們在商場購物時,購物小票是一個不可或缺的角色,它不僅是用戶購物經(jīng)歷的消費(fèi)憑證,還可以用于核對商品準(zhǔn)確性和退換貨的依據(jù)。購物小票上面一般會包含用戶購買的商品名稱、數(shù)量、單價及總金額等信息。已知用戶小明在某商場購物,依次在自動結(jié)賬機(jī)掃描了商品,結(jié)賬后拿到的購物小票如圖所示。1.4

實例1:打印購物小票任務(wù)描述1.4

實例1:打印購物小票本實例要求編寫代碼,依次接收用戶從鍵盤輸入的商品價格,并根據(jù)價格輸出購物小票的信息。實例2:打印功能菜單1.5

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例2:打印功能菜單1.5

實例2:打印功能菜單功能菜單在程序中比較常見,它為用戶提供了功能菜單列表,方便用戶瀏覽程序中包含的所有功能,并根據(jù)需要選擇相應(yīng)的菜單來執(zhí)行相應(yīng)的功能。任務(wù)描述1.5

實例2:打印功能菜單本實例要求編寫代碼,實現(xiàn)打印名片管理器功能菜單的功能。1.5

實例2:打印功能菜單本章小結(jié)本章主要介紹了一些Python的入門知識,包括Python的特點、應(yīng)用領(lǐng)域、開發(fā)環(huán)境的搭建、編程約定、變量、基本輸入輸出等。通過學(xué)習(xí)本章的內(nèi)容,讀者能夠獨立搭建Python開發(fā)環(huán)境,并對Python開發(fā)有個初步的認(rèn)識,為后續(xù)學(xué)習(xí)做好準(zhǔn)備。本章小結(jié)第2章數(shù)字類型與字符串《Python程序開發(fā)案例教程(第2版))》學(xué)習(xí)目標(biāo)/Target

掌握數(shù)字類型,能夠在程序中正確表示不同數(shù)字類型的數(shù)據(jù)掌握運(yùn)算符的用法,能夠使用運(yùn)算符進(jìn)行數(shù)值運(yùn)算掌握運(yùn)算符優(yōu)先級,能夠在數(shù)值運(yùn)算中正確使用運(yùn)算符掌握字符串的創(chuàng)建方式,能夠準(zhǔn)確創(chuàng)建字符串類型的變量學(xué)習(xí)目標(biāo)/Target

掌握格式化字符串的方式,能夠使用%、format()和f-string這3種方式格式化字符串掌握字符串的常見操作,能夠使用方法實現(xiàn)字符串的常見操作掌握字符串的索引和切片,能夠使用索引和切片訪問字符串的字符或子串掌握類型轉(zhuǎn)換函數(shù)的使用,能夠使用類型轉(zhuǎn)換函數(shù)對不同類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換章節(jié)概述/Summary在計算機(jī)編程中,數(shù)據(jù)是程序處理的核心。Python中提供了豐富多樣的數(shù)據(jù)類型,簡單的數(shù)據(jù)類型有數(shù)字類型和字符串,其中數(shù)字類型用于表示數(shù)值形式的數(shù)據(jù),它可以聯(lián)合運(yùn)算符進(jìn)行算術(shù)或邏輯等操作;字符串用于表示文本形式的數(shù)據(jù),它能夠?qū)ξ谋具M(jìn)行一些諸如分割、拼接、查找和替換操作,在程序中應(yīng)用十分廣泛。本章將對數(shù)字類型、字符串和運(yùn)算符的相關(guān)內(nèi)容進(jìn)行講解,并通過實例幫助大家熟練運(yùn)用它們。目錄/Contents01數(shù)字類型02運(yùn)算符03經(jīng)典實例04字符串05類型轉(zhuǎn)換數(shù)字類型2.1

先定一個小目標(biāo)!掌握數(shù)字類型,能夠在程序中正確表示不同數(shù)字類型的數(shù)據(jù)2.1數(shù)字類型整型無縫銜接單元測試表示數(shù)值的數(shù)據(jù)類型稱為數(shù)字類型。Python內(nèi)置的數(shù)字類型有整型(int)、浮點型(float)、復(fù)數(shù)類型(complex),它們分別對應(yīng)數(shù)學(xué)中的整數(shù)、小數(shù)和復(fù)數(shù),此外,還有一種比較特殊的類型——布爾類型(bool)。類似-2、-1、0、1、2這樣的數(shù)據(jù)被稱為整型數(shù)據(jù)。在Python中可以使用四種進(jìn)制方式表示整型數(shù)據(jù),分別為二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制,其中二進(jìn)制整型數(shù)據(jù)以“0b”或“0B”開頭、八進(jìn)制整型數(shù)據(jù)以“0o”或“0O”開頭、十六進(jìn)制整型數(shù)據(jù)以“0x”或“0X”開頭,默認(rèn)采用十進(jìn)制方式表示。復(fù)數(shù)類型布爾類型浮點型2.1數(shù)字類型整型無縫銜接單元測試類似1.1、0.5、-1.4、3.12e2這樣的數(shù)據(jù)被稱為浮點型數(shù)據(jù),浮點型數(shù)據(jù)是帶有小數(shù)點的數(shù)值。Python的浮點數(shù)可以采用兩種方式表示,分別是十進(jìn)制和科學(xué)計數(shù)法。復(fù)數(shù)類型布爾類型浮點型2.1數(shù)字類型表示數(shù)值的數(shù)據(jù)類型稱為數(shù)字類型。Python內(nèi)置的數(shù)字類型有整型(int)、浮點型(float)、復(fù)數(shù)類型(complex),它們分別對應(yīng)數(shù)學(xué)中的整數(shù)、小數(shù)和復(fù)數(shù),此外,還有一種比較特殊的類型——布爾類型(bool)。整型無縫銜接單元測試類似3+2j、3.1+4.9j、-2.3-1.9j這樣的數(shù)據(jù)被稱為復(fù)數(shù),Python中的復(fù)數(shù)有以下3個特點:(1)復(fù)數(shù)由實部real和虛部imag構(gòu)成,其一般形式為real+imagj。(2)實部real和虛部的imag都是實數(shù)。(3)虛部imag必須有后綴j或J。復(fù)數(shù)類型布爾類型浮點型2.1數(shù)字類型表示數(shù)值的數(shù)據(jù)類型稱為數(shù)字類型。Python內(nèi)置的數(shù)字類型有整型(int)、浮點型(float)、復(fù)數(shù)類型(complex),它們分別對應(yīng)數(shù)學(xué)中的整數(shù)、小數(shù)和復(fù)數(shù),此外,還有一種比較特殊的類型——布爾類型(bool)。整型無縫銜接單元測試布爾類型用于表示邏輯值,它只有兩個可能的取值:True和False,分別對應(yīng)數(shù)學(xué)命題的真與假。Python中任何類型的數(shù)據(jù)都具有布爾屬性,它們可以根據(jù)一定的規(guī)則轉(zhuǎn)換為布爾類型的值,在進(jìn)行轉(zhuǎn)換時,符合以下條件的數(shù)據(jù)都會被轉(zhuǎn)換為False。(1)None;(2)任何為0的數(shù)字類型,如0、0.0、0j;(3)空字符串,如''、'''';(4)任何為空的復(fù)雜類型,如空元組()、空列表[]、空字典{};復(fù)數(shù)類型布爾類型浮點型2.1數(shù)字類型表示數(shù)值的數(shù)據(jù)類型稱為數(shù)字類型。Python內(nèi)置的數(shù)字類型有整型(int)、浮點型(float)、復(fù)數(shù)類型(complex),它們分別對應(yīng)數(shù)學(xué)中的整數(shù)、小數(shù)和復(fù)數(shù),此外,還有一種比較特殊的類型——布爾類型(bool)。運(yùn)算符2.2

先定一個小目標(biāo)!掌握算術(shù)運(yùn)算符的用法,能夠使用運(yùn)算符進(jìn)行數(shù)值運(yùn)算2.2.1

算術(shù)運(yùn)算符Python中的算術(shù)運(yùn)算符包括+、-、*、/、//、%和**,這些運(yùn)算符都是雙目運(yùn)算符,一個運(yùn)算符可以和兩個操作數(shù)組成一個表達(dá)式。當(dāng)解釋器執(zhí)行包含算術(shù)運(yùn)算符的表達(dá)式時,會根據(jù)運(yùn)算符的功能對兩個操作數(shù)進(jìn)行特定操作,并將操作后的結(jié)果進(jìn)行返回。2.2.1

算術(shù)運(yùn)算符2.2.1

算術(shù)運(yùn)算符以操作數(shù)a=3,b=5為例,Python中各個算術(shù)運(yùn)算符的功能及示例如表所示。運(yùn)算符說明示例+加:使兩個操作數(shù)相加,獲取操作數(shù)的和a+b,結(jié)果為8-減:使兩個操作數(shù)相減,獲取操作數(shù)的差a–b,結(jié)果為-2*乘:使兩個操作數(shù)相乘,獲取操作數(shù)的積a*b,結(jié)果為15/除:使兩個操作數(shù)相除,獲取操作數(shù)的商a/b,結(jié)果為0.6//整除:使兩個操作數(shù)相除,獲取商的整數(shù)部分a//b,結(jié)果為0%取余:使兩個操作數(shù)相除,獲取余數(shù)a%b,結(jié)果為3**冪:使兩個操作數(shù)進(jìn)行冪運(yùn)算,獲取a的b次冪a**b,結(jié)果為2432.2.1

算術(shù)運(yùn)算符無論參加運(yùn)算的操作數(shù)是什么類型,解釋器都能給出運(yùn)算后的正確結(jié)果,這是因為Python在對不同類型的對象進(jìn)行運(yùn)算時,會強(qiáng)制將數(shù)據(jù)的類型進(jìn)行臨時類型轉(zhuǎn)換,這些轉(zhuǎn)換遵循如下規(guī)律:布爾類型在進(jìn)行算術(shù)運(yùn)算時,將False和True被視為數(shù)值0或1;整型與浮點型進(jìn)行運(yùn)算時,將整型轉(zhuǎn)化為浮點型;其它類型與復(fù)數(shù)類型進(jìn)行運(yùn)算時,將其他類型轉(zhuǎn)換為復(fù)數(shù)類型。簡單來說,類型相對簡單與類型復(fù)雜的操作數(shù)進(jìn)行混合運(yùn)算時,會被轉(zhuǎn)換為與復(fù)雜操作數(shù)相同的類型。

先定一個小目標(biāo)!掌握比較運(yùn)算符的用法,能夠使用比較符進(jìn)行數(shù)值比較2.2.2

比較運(yùn)算符2.2.1

算術(shù)運(yùn)算符比較運(yùn)算符用于比較兩個操作數(shù)的大小,Python中的比較運(yùn)算符有==、!=、>、<、>=、<=,比較運(yùn)算符同樣是雙目運(yùn)算符,它與兩個操作數(shù)構(gòu)成一個表達(dá)式。當(dāng)解釋器執(zhí)行包含比較運(yùn)算符的表達(dá)式時,會根據(jù)運(yùn)算符的功能對兩個操作數(shù)進(jìn)行比較操作,并返回布爾類型的值。2.2.2

比較運(yùn)算符以a=3,b=5為例,Python中各比較運(yùn)算符的功能及示例如表所示。運(yùn)算符說明示例==比較左操作數(shù)和右操作數(shù),若相等則結(jié)果為True,否則結(jié)果為Falsea==b不成立,結(jié)果為False!=比較左操作數(shù)和右操作數(shù),若不相等則結(jié)果為True,否則為Falsea!=b成立,結(jié)果為True>比較左操作數(shù)和右操作數(shù),若左操作數(shù)大于右操作數(shù)則結(jié)果為True,否則為Falsea>b不成立,結(jié)果為False<比較左操作數(shù)和右操作數(shù),若左操作數(shù)小于右操作數(shù)則結(jié)果為True,否則為Falsea<b成立,結(jié)果為True>=比較左操作數(shù)和右操作數(shù),若左操作數(shù)大于或等于右操作數(shù)則結(jié)果為True,否則為Falsea>=b不成立,結(jié)果為False<=比較左操作數(shù)和右操作數(shù),若左操作數(shù)小于或等于右操作數(shù)則結(jié)果為True,否則為Falsea<=b成立,結(jié)果為True需要注意的是,比較運(yùn)算符只對操作數(shù)進(jìn)行比較操作,不會對操作數(shù)自身造成影響,即經(jīng)過比較運(yùn)算符運(yùn)算后的操作數(shù)不會被修改。比較運(yùn)算符與操作數(shù)構(gòu)成的表達(dá)式的結(jié)果只能是True或False,這種表達(dá)式通常用于布爾測試。2.2.2

比較運(yùn)算符

先定一個小目標(biāo)!掌握賦值運(yùn)算符的用法,能夠使用賦值運(yùn)算符為操作數(shù)賦值2.2.3

賦值運(yùn)算符賦值運(yùn)算符是雙目運(yùn)算符,它的功能是將運(yùn)算符右側(cè)的表達(dá)式或值賦給左側(cè)的操作數(shù),其中左操作數(shù)必須是一個值可修改的變量?!?”是基本的賦值運(yùn)算符,此外“=”可與算術(shù)運(yùn)算符組合成復(fù)合賦值運(yùn)算符,從而實現(xiàn)同時進(jìn)行算術(shù)運(yùn)算和賦值操作的便利。Python中的復(fù)合賦值運(yùn)算符有+=、-=、*=、/=、//=、%=、**=,它們的功能與相應(yīng)的算術(shù)運(yùn)算符相似,例如“a+=b”等價于“a=a+b”,“a-=b”等價于“a=a-b”,諸如此類。2.2.3

賦值運(yùn)算符

先定一個小目標(biāo)!掌握邏輯運(yùn)算符的用法,能夠使用邏輯運(yùn)算符為操作數(shù)進(jìn)行邏輯運(yùn)算2.2.4

邏輯運(yùn)算符2.2.4

邏輯運(yùn)算符Python支持邏輯運(yùn)算,但Python邏輯運(yùn)算符的功能與其它語言有所不同。Python中分別使用“or”、“and”、“not”這三個關(guān)鍵字作為邏輯運(yùn)算“或”、“與”、“非”的運(yùn)算符,其中or與and為雙目運(yùn)算符,not為單目運(yùn)算符。2.2.4

邏輯運(yùn)算符當(dāng)使用運(yùn)算符or連接兩個操作數(shù)進(jìn)行邏輯或運(yùn)算時,若左操作數(shù)的布爾值為True,則返回左操作數(shù),否則返回右操作數(shù)。注意,如果操作數(shù)一個表達(dá)式,則不會直接返回操作數(shù)本身,而是會返回表達(dá)式的計算結(jié)果。邏輯運(yùn)算符——orresult_one=0or3+5#左操作數(shù)布爾值為Falseprint(result_one)result_two=3or0#左操作數(shù)布爾值為Trueprint(result_two)2.2.4

邏輯運(yùn)算符當(dāng)使用運(yùn)算符and連接兩個操作數(shù)進(jìn)行邏輯與運(yùn)算時,若左操作數(shù)的布爾值為False,則返回左操作數(shù),否則返回右操作數(shù)。注意,如果操作數(shù)一個表達(dá)式,則不會直接返回操作數(shù)本身,而是會返回表達(dá)式的計算結(jié)果。邏輯運(yùn)算符——andresult_one=3-3and5#左操作數(shù)布爾值為Falseprint(result_one)result_two=3-4and5#左操作數(shù)布爾值為Trueprint(result_two)2.2.4

邏輯運(yùn)算符當(dāng)使用運(yùn)算符not進(jìn)行邏輯非運(yùn)算時,若操作數(shù)的布爾值為False,則返回True,否則返回False。邏輯運(yùn)算符——notresult_one=not3-5#操作數(shù)布爾值為Trueprint(result_one)result_two=notFalse#操作數(shù)的值為Falseprint(result_two)

先定一個小目標(biāo)!掌握成員運(yùn)算符的用法,能夠使用成員運(yùn)算符為檢測給定值是否存在2.2.5

成員運(yùn)算符成員運(yùn)算符用于檢測給定值是否存在字符串、列表、元組、集合、字典中,并返回檢測后的結(jié)果。Python中提供了兩個成員運(yùn)算符,分別是in和notin。in:如果給定值在字符串、列表、元組、集合、字典中,返回True,否則返回False。notin:如果給定值不在字符串、列表、元組、集合、字典中,返回True,否則返回False。2.2.5

成員運(yùn)算符注意,列表、元組、集合、字典是比較復(fù)雜的數(shù)據(jù)類型。接下來以字符串為例,演示如何使用成員運(yùn)算符檢測一個字符串是否在另一個字符串中。2.2.5

成員運(yùn)算符words='abcdefg'#定義一個變量,保存字符串類型的數(shù)據(jù)print('f'inwords)#檢測'f'是否在字符串中print('c'notinwords)#檢測'c'是否在字符串中

先定一個小目標(biāo)!掌握位運(yùn)算符的用法,能夠使用位運(yùn)算符對數(shù)據(jù)進(jìn)行計算2.2.6

位運(yùn)算符位運(yùn)算符是一組特殊的運(yùn)算符,用于對整數(shù)在二進(jìn)制位上進(jìn)行操作。Python的位運(yùn)算符有<<、>>、&、|、^、~,其中運(yùn)算符~是單目運(yùn)算符,其余全部是雙目運(yùn)算符,操作數(shù)必須是整數(shù)。2.2.6

位運(yùn)算符2.2.6

位運(yùn)算符以a=3,b=5為例,Python中各個位運(yùn)算符的功能及示例如表所示。運(yùn)算符說明示例<<按位左移,作用是將二進(jìn)制形式操作數(shù)的所有位全部左移指定位數(shù),高位丟棄,低位補(bǔ)0a<<b,結(jié)果為96>>按位右移,作用是將二進(jìn)制形式操作數(shù)的所有位全部右移指定位數(shù),低位丟棄,高位補(bǔ)0a>>b,結(jié)果為0&按位與,作用是將兩個二進(jìn)制形式操作數(shù)進(jìn)行逐位的與運(yùn)算,當(dāng)兩個對應(yīng)位均為1時,結(jié)果位為1,否則為0a&b,結(jié)果為1|按位或,作用是將兩個二進(jìn)制形式操作數(shù)進(jìn)行逐位的或運(yùn)算,當(dāng)兩個對應(yīng)位有一個為1時,結(jié)果位為1,否則為0a|b,結(jié)果為7^按位異或,作用是將兩個二進(jìn)制形式操作數(shù)進(jìn)行逐位的異或運(yùn)算,當(dāng)兩個對應(yīng)位有一個為1,另一個為0時,結(jié)果位為1,否則結(jié)果位為0a^b,結(jié)果為6num_one=10num_two=11result_one=num_one<<2

#num_one的二進(jìn)制數(shù)按位左移兩位result_two=num_one>>2

#num_one的二進(jìn)制數(shù)按位右移兩位result_thr=num_one&2

#num_one與2的二進(jìn)制數(shù)進(jìn)行按位與運(yùn)算result_fou=num_one|2

#num_one與2的二進(jìn)制數(shù)進(jìn)行按位或運(yùn)算result_fiv=num_one^num_two#num_one與num_two的二進(jìn)制數(shù)進(jìn)行按位異或運(yùn)算result_six=~num_one

#num_one的二進(jìn)制數(shù)進(jìn)行按位取反運(yùn)算2.2.6

位運(yùn)算符

先定一個小目標(biāo)!掌握運(yùn)算符優(yōu)先級,能夠在數(shù)值運(yùn)算中正確使用運(yùn)算符2.2.7

運(yùn)算符優(yōu)先級Python支持使用多個不同的運(yùn)算符連接簡單表達(dá)式,實現(xiàn)相對復(fù)雜的功能,為了避免含有多個運(yùn)算符的表達(dá)式出現(xiàn)歧義,Python為每種運(yùn)算符都設(shè)定了優(yōu)先級。2.2.7

運(yùn)算符優(yōu)先級Python各種運(yùn)算符的優(yōu)先級由低到高依次如表所示。2.2.7

運(yùn)算符優(yōu)先級運(yùn)算符說明+=,-=,*=,/=,//=,%=,**=算術(shù)并賦值or邏輯或and邏輯與not邏輯非in,notin成員測試<,<=,>,>=,!=,==比較運(yùn)算符|按位或^按位異或&按位與<<,>>按位左移,按位右移+,-加法,減法*,/,%乘法,除法,取余~按位取反**指數(shù)默認(rèn)情況下,運(yùn)算符的優(yōu)先級決定了復(fù)雜表達(dá)式中的哪個單一表達(dá)式先執(zhí)行,但用戶可使用圓括號改變表達(dá)式的執(zhí)行順序。通常圓括號中的表達(dá)式先執(zhí)行。例如,表達(dá)式“3+4*5”,若想讓加法先執(zhí)行,可寫為“(3+4)*5”。此外,若表達(dá)式嵌套了多層圓括號,則最內(nèi)層圓括號中的表達(dá)式先執(zhí)行。2.2.7

運(yùn)算符優(yōu)先級經(jīng)典實例2.32.3.1

實例1:計算BMI指數(shù)

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例1:計算BMI指數(shù)BMI指數(shù)即身體質(zhì)量指數(shù),是目前國際常用的衡量人體胖瘦程度以及是否健康的一個標(biāo)準(zhǔn)。BMI指數(shù)的計算公式如下:體質(zhì)指數(shù)(BMI)=體重(kg)÷身高(m)÷身高(m)2.3.1

實例1:計算BMI指數(shù)任務(wù)描述(1)接收用戶輸入的體重數(shù)據(jù)。(2)接收用戶輸入的身高數(shù)據(jù)。(3)按照BMI指數(shù)公式計算BMI值。實現(xiàn)步驟2.3.1

實例1:計算BMI指數(shù)2.3.2實例2:計算三角形面積

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例2:計算三角形面積已知三角形三條邊的長度分別為x、y、z,此時若要計算這個三角形的面積,還不知道三角形的高。為了能計算三角形的面積,我們根據(jù)海倫公式先計算三角形的半周長為q,再計算三角形的面積。三角形半周長和三角形面積公式分別如下所示:三角形半周長q=(x+y+z)/2三角形面積S=(q*(q-x)*(q-y)*(q-z))**0.52.3.2實例2:計算三角形面積任務(wù)描述(1)接收用戶輸入的三角形三條邊長。(2)根據(jù)三條邊長計算三角形半周長。(3)根據(jù)半周長計算三角形的面積。實現(xiàn)步驟2.3.2實例2:計算三角形面積2.3.3實例3:判斷水仙花數(shù)

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例3:判斷水仙花數(shù)水仙花數(shù)是一個3位數(shù),它的每位數(shù)字的3次冪之和等于它本身,例如,13+53+33=153,153就是一個水仙花數(shù)。2.3.3實例3:判斷水仙花數(shù)任務(wù)描述(1)接收用戶輸入的三位數(shù)字。(2)獲取三位數(shù)的每個數(shù)字。(3)根據(jù)水仙花數(shù)特點判斷輸入的三位數(shù)是否是水仙花數(shù)。實現(xiàn)步驟2.3.3實例3:判斷水仙花數(shù)字符串2.42.4.1字符串的創(chuàng)建

先定一個小目標(biāo)!掌握字符串的創(chuàng)建方式,能夠準(zhǔn)確創(chuàng)建字符串類型的變量2.4.1字符串的創(chuàng)建字符串是一種用來表示文本的數(shù)據(jù)類型,它是由字母、符號、數(shù)值等組成的一個字符序列,被引號包裹起來。Python中的字符串是不可變的數(shù)據(jù)類型,這意味著字符串一旦被創(chuàng)建便不可改變其中的字符。2.4.1字符串的創(chuàng)建創(chuàng)建方式Python支持使用單引號、雙引號和三引號創(chuàng)建字符串,其中單引號和雙引號通常用于創(chuàng)建單行字符串,三引號通常用于創(chuàng)建多行字符串,示例代碼如下。single_symbol='學(xué)海無涯'

#使用單引號創(chuàng)建字符串double_symbol="知識無底"#使用雙引號創(chuàng)建字符串three_symbol="""學(xué)知不足,業(yè)精于勤"""

#使用三引號創(chuàng)建字符串2.4.1字符串的創(chuàng)建單引號、雙引號嵌套使用創(chuàng)建字符串時單引號與雙引號可以嵌套使用,需要注意的是,使用雙引號創(chuàng)建的字符串中允許嵌套單引號,但不允許包含雙引號;使用單引號創(chuàng)建的字符串中允許嵌套雙引號,但不允許包含單引號,具體示例如下。mixture_string="Let'sgo"

#單引號、雙引號混合使用double_string="Let"sgo"#雙引號嵌套雙引號,程序運(yùn)行出現(xiàn)錯誤信息single_string='Let'sgo'

#單引號嵌套單引號,程序運(yùn)行出現(xiàn)錯誤信息2.4.1字符串的創(chuàng)建字符串中使用換行符如果單引號或者雙引號包裹的字符中包含換行符,那么字符串會被自動換行,示例代碼如下。double_symbol="學(xué)知不足,\n業(yè)精于勤"2.4.2字符串的格式化

先定一個小目標(biāo)!掌握格式化字符串的方式,能夠使用%、format()和f-string這3種方式格式化字符串字符串格式化是一種動態(tài)插值的技術(shù),通過占位符將變量或表達(dá)式插入到字符串的指定位置,從而提高了字符串的靈活性,使得開發(fā)人員可以根據(jù)需求動態(tài)地構(gòu)建和輸出各種復(fù)雜的字符串內(nèi)容。2.4.2字符串的格式化字符串格式化目的字符串格式化是一種動態(tài)插值的技術(shù),通過占位符將變量或表達(dá)式插入到字符串的指定位置,從而提高了字符串的靈活性,使得開發(fā)人員可以根據(jù)需求動態(tài)地構(gòu)建和輸出各種復(fù)雜的字符串內(nèi)容。name="小明"result="你好,我叫%s。"%nameprint(result)使用符號%格式化2.4.2字符串的格式化一個字符串中同時可以含有多個格式符,此時需要在%后面指定多個真實值,多個真實值以元組的形式存儲,且真實值與格式符的數(shù)量相等,示例代碼如下。name="小明"age=12result="你好,我叫%s,今年我%d歲了。"%(name,age)print(result)使用符號%格式化2.4.2字符串的格式化不同的格式符為不同類型的變量預(yù)留位置,常見的占位符如表所示。常見占位符2.4.2字符串的格式化格式符說明%s將字符串類型的數(shù)據(jù)格式化為字符串%d將十進(jìn)制形式的整型數(shù)據(jù)格式化為字符串%o將八進(jìn)制形式的整型數(shù)據(jù)格式化為字符串%x將十六進(jìn)制形式的整型數(shù)據(jù)格式化為字符串,十六進(jìn)制整型數(shù)據(jù)的前導(dǎo)符a~f為小寫字母%X將十六進(jìn)制形式的整型數(shù)據(jù)格式化為字符串,十六進(jìn)制整型數(shù)據(jù)的前導(dǎo)符A~F為大寫字母%e指數(shù)(底寫為e)%f將浮點型的數(shù)據(jù)格式化為字符串,可指定小數(shù)點后的精度,默認(rèn)保留6位小數(shù)。若設(shè)為%.2f,則會將浮點型的數(shù)據(jù)保留兩位小數(shù)使用格式符占位時需要注意變量的類型,若變量的類型與格式符不匹配時程序會產(chǎn)生異常。2.4.2字符串的格式化格式不匹配name="李強(qiáng)"#變量name是字符串類型age="12"

#變量age是字符串類型result="你好,我叫%s,今年我%d歲了。"%(name,age)print(result)TypeError:%dformat:arealnumberisrequired,notstrformat()方法同樣可以對字符串進(jìn)行格式化,與符號%不同的是,使用format()方法不需要關(guān)注變量的類型。使用format()方法格式化的語法格式如下。使用format()方法格式化2.4.2字符串的格式化str.format(values)語法格式str:表示需要被格式化的字符串,字符串中應(yīng)該包含一個或多個為真實數(shù)據(jù)占位的符號{}。values:表示一個或多個待插入的真實數(shù)據(jù),多個數(shù)據(jù)之間以逗號分隔。使用format()方法對字符串進(jìn)行格式化,并在字符串中使用{}為變量預(yù)留位置,示例代碼如下。name="小明"result="你好!我的名字是{}。".format(name)print(result)使用format()方法格式化2.4.2字符串的格式化如果待被格式化的字符串中包含多個{},并且{}內(nèi)沒有指定任何序號,那么默認(rèn)按照{(diào)}出現(xiàn)的順序分別用format()方法中的真實數(shù)據(jù)進(jìn)行替換;如果字符串的{}中明確指定了序號,序號是從0開始的,那么按照序號對應(yīng)的format()方法的真實數(shù)據(jù)進(jìn)行替換。name="小明"age=21result_one="你好!我的名字是{},今年我{}歲了。".format(name,age)print(result_one)result_two="你好!我的名字是{1},今年我{0}歲了。".format(age,name)print(result_two)字符串中包含多個{}2.4.2字符串的格式化使用format()方法可以保留浮點型數(shù)據(jù)的n位小數(shù),其格式為“{:.nf}”,其中n表示保留的小數(shù)位數(shù)。例如,變量pi的值為3.1415,使用format()方法格式化時將該變量的值保留2位小數(shù)。。pi=3.1415result="{:.2f}".format(pi)print(result)保留n位小數(shù)2.4.2字符串的格式化使用format()方法可以對數(shù)字進(jìn)行補(bǔ)齊,其格式為“{:m>nd}”,其中m表示補(bǔ)齊的數(shù)字,n表示補(bǔ)齊后數(shù)字的長度。例如,某個序列編號從001開始,此種編號可以在1之前使用兩個“0”進(jìn)行補(bǔ)齊。num=1result="{:0>3d}".format(num)print(result)數(shù)字對齊2.4.2字符串的格式化使用format()方法可以將數(shù)字以百位比形式顯示,其格式為“{:.n%}”,其中n表示保留的小數(shù)位。例如,變量num的值為0.1,將num值保留0位小數(shù)并以百分比格式顯示。num=0.1result="{:.0%}".format(num)print(result)顯示百分比2.4.2字符串的格式化f-strings是一種更為簡潔的格式化字符串方法,它在格式上以f或F引領(lǐng)字符串,字符串中使用{}標(biāo)明被替換的真實數(shù)據(jù)的位置。f-strings本質(zhì)上不再是字符串,而是在運(yùn)行時運(yùn)算求值的表達(dá)式,所以在效率上優(yōu)于占位符%和format()方法。2.4.2字符串的格式化使用f-strings不需要關(guān)注變量的類型,但是仍然需要關(guān)注變量插入的位置。示例代碼如下。使用f-strings格式化address='北京'result=f'歡迎來到{address}。'print(result)2.4.2字符串的格式化使用f-strings還可以用多個變量對字符串進(jìn)行格式化,示例代碼如下。使用f-strings對多個變量格式化name='小天'age=20 gender='男'result=f'我的名字是{name},今年{age}歲了,我的性別是{gender}。'print(result)2.4.3字符串的常見操作

先定一個小目標(biāo)!掌握字符串的常見操作,能夠使用方法實現(xiàn)字符串的常見操作Python中可以直接使用“+”符號實現(xiàn)字符串拼接,示例代碼如下。str_one="乘風(fēng)破浪會有時,"str_two="直掛云帆濟(jì)滄海。"result=str_one+str_twoprint(result)2.4.3字符串的常見操作字符串拼接Python中replace()方法可使用新的子串替換目標(biāo)字符串中原有的子串,如果在字符串中沒有找到匹配的子串,那么會直接返回原字符串。2.4.3字符串的常見操作字符串替換old:表示原有的子串。new:表示新的子串。count:用于設(shè)定替換次數(shù),默認(rèn)值為None,表示不限制替換次數(shù)。replace(old,new,count=None)語法格式使用replace()方法實現(xiàn)字符串替換,示例代碼如下。word="日月之行,若出其中;星漢燦爛,若出其里;"result_one=word.replace(";","。")#使用"。"替換";",不指定替換次數(shù)print(result_one)result_two=word.replace(";","。",1)#使用"。"替換";",指定替換次數(shù)為1print(result_two)2.4.3字符串的常見操作字符串替換Python中split()方法可以使用指定的分隔符把字符串分割成多個子串,并將這些子串保存到列表中返回。2.4.3字符串的常見操作字符串分割sep:表示分隔符,默認(rèn)值為空字符,包括空格、換行符(\n)制表符(\t)等。maxsplit:表示最大分割次數(shù),默認(rèn)值為-1,表示不限制分割次數(shù)。split(sep=None,maxsplit=-1)語法格式使用split()方法實現(xiàn)字符串分割,示例代碼如下。word="12345"result_one=word.split()#使用空字符分割字符串,不限制分割次數(shù)print(result_one)word="a,b,c,d,e"result_two=word.split(",")#使用逗號分割字符串,不限制分割次數(shù)print(result_two)result_thr=word.split(",",3)#使用空字符分割字符串,最多分割3次print(result_thr)2.4.3字符串的常見操作字符串分割Python中strip()方法一般用于去除字符串兩側(cè)的空格,該方法的語法格式如下:2.4.3字符串的常見操作去除字符串兩側(cè)空格sep:用于設(shè)置要去除的字符,默認(rèn)值為空格。strip(chars=None)語法格式使用split()方法實現(xiàn)字符串兩側(cè)空格,示例代碼如下。word="勤而行之"result=word.strip()#去除字符串兩側(cè)的空格print(result)2.4.3字符串的常見操作去除字符串兩側(cè)空格使用split()方法實現(xiàn)字符串去除其它字符,例如去除字符串兩側(cè)的“*”,示例代碼如下。word="**勤而行之**"result=word.strip("*")#去除字符串兩側(cè)的星號print(result)2.4.3字符串的常見操作去除字符串兩側(cè)空格2.4.4字符串的索引與切片

先定一個小目標(biāo)!掌握字符串的常見操作,能夠使用方法實現(xiàn)字符串的常見操作字符串是一個由字符組成的序列,每個字符所處的位置是固定的,并且對應(yīng)著一個位置編號,編號從0開始,依次遞增1,這個位置編號被稱為索引或者下標(biāo)。索引字符串的索引(正向)索引自0開始從左至右依次遞增,這樣的索引稱為正向索引。2.4.4字符串的索引與切片如果索引自-1開始,從右至左依次遞減,則索引為反向索引。反向索引的示意圖如圖所示。索引字符串的索引(反向)索引自-1開始,從右至左依次遞減,則索引為反向索引。2.4.4字符串的索引與切片通過索引可以獲取指定位置的字符,語法格式如下:索引使用方式字符串[索引]使用正向索引和反向索引獲取字符串中的字符,示例代碼如下。str_python="python"str_python[0] #使用正向索引獲取字符pstr_python[-6] #使用反向索引獲取字符p需要注意的是,當(dāng)使用索引訪問字符串時,索引的范圍不能越界,否則程序會出現(xiàn)索引越界的異常。2.4.4字符串的索引與切片切片是截取字符串的一部分,其語法格式如下:切片字符串[起始索引:結(jié)束索引:步長]起始索引和結(jié)束索引用于指定切片截取的范圍,此范圍屬于左閉右開的區(qū)間,即截取的子串中默認(rèn)包含起始索引對應(yīng)的字符,但不包含結(jié)束索引對應(yīng)的字符,起始索引的默認(rèn)值是0,結(jié)束索引的默認(rèn)值為字符串的長度;步長表示每隔指定數(shù)量的字符截取一次字符,默認(rèn)值為1。2.4.4字符串的索引與切片使用切片截取字符串的示例代碼如下。切片str_python="python"#從索引為0處開始,到索引為4處結(jié)束,步長為1result_one=str_python[0:4]print(result_one)#從索引為0處開始,到索引為4處結(jié)束,步長為2result_two=str_python[0:4:2]print(result_two)在使用切片時,步長的值不僅可以設(shè)置為正整數(shù),還可以設(shè)置為負(fù)整數(shù)。示例代碼如下。#從索引為3處開始,到索引為0處結(jié)束,步長為-1result_thr=str_python[3:0:-1]print(result_thr)#從索引為-1處開始,到索引為-6處結(jié)束,步長為-2result_fou=str_python[-1::-2]print(result_fou)2.4.4字符串的索引與切片2.4.5實例4:制作名片

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例4:制作名片名片在當(dāng)今社會交往活動中有著廣泛的應(yīng)用,它是謁見、拜訪或訪友時用的卡片,卡片上面印有個人的姓名、職位、單位名稱、電話、郵箱等信息,便于向新朋友快速有效地介紹自己,起到聯(lián)絡(luò)感情、架設(shè)友誼橋梁的作用。任務(wù)描述2.4.5實例4:制作名片=============================姓名:XXXXXXXXXX職位:XXXXXXXXXX電話:XXXXXXXXXX郵箱:XXXXXXXXXX=============================(1)接收用戶輸入的個人信息。(2)根據(jù)名片格式進(jìn)行格式化輸出。實現(xiàn)步驟2.4.5實例4:制作名片2.4.6實例5:替換不良詞語

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例5:替換不良詞語在很多品牌宣傳中有些用詞過度宣傳,沒有客觀依據(jù)證明,給消費(fèi)者造成消費(fèi)誘導(dǎo)。這種過度宣傳的用詞屬于不良詞語種類的一種。我們作為內(nèi)容的生產(chǎn)者和發(fā)布者,都是形成網(wǎng)絡(luò)語言生態(tài)的一份子,保持網(wǎng)絡(luò)環(huán)境的健康純潔,需要我們每個人從自身做起。本實例要求編寫程序,對一段文本進(jìn)行檢測,一旦文本中出現(xiàn)不良詞語“最優(yōu)秀”,就將不良詞語替換成“較優(yōu)秀”,從而實現(xiàn)過濾不良詞語的功能。文本內(nèi)容如下:我們擁有多年的品牌戰(zhàn)略規(guī)劃及標(biāo)志設(shè)計、商標(biāo)注冊經(jīng)驗;專業(yè)提供公司標(biāo)志設(shè)計與商標(biāo)注冊一條龍服務(wù)。我們擁有最優(yōu)秀且具有遠(yuǎn)見卓識的設(shè)計師,使我們的策略分析嚴(yán)謹(jǐn),設(shè)計充滿創(chuàng)意。我們有信心為您締造最優(yōu)秀的品牌形象設(shè)計服務(wù),將您的企業(yè)包裝得更富價值。任務(wù)描述2.4.6實例5:替換不良詞語(1)遍歷包含不良詞語的字符串。(2)對不良詞云進(jìn)行替換。實現(xiàn)步驟2.4.6實例5:替換不良詞語類型轉(zhuǎn)換2.5

先定一個小目標(biāo)!掌握類型轉(zhuǎn)換函數(shù)的使用,能夠使用類型轉(zhuǎn)換函數(shù)對不同類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換2.5.1類型轉(zhuǎn)換函數(shù)Python內(nèi)置了一系列可實現(xiàn)強(qiáng)制類型轉(zhuǎn)換的函數(shù),保證用戶在有需求的情況下,將目標(biāo)數(shù)據(jù)轉(zhuǎn)換為指定的類型。數(shù)字類型和字符串之間轉(zhuǎn)換的函數(shù)有int()、float()、complex()、str(),關(guān)于這些函數(shù)的功能說明如表所示。類型轉(zhuǎn)換函數(shù)2.5.1類型轉(zhuǎn)換函數(shù)函數(shù)說明int()將浮點型、布爾類型或符合整型數(shù)值規(guī)范的字符串轉(zhuǎn)換為整型float()將整型、布爾類型或符合浮點型數(shù)值規(guī)范的字符串轉(zhuǎn)換為浮點型complext()將整型、浮點型、布爾類型或符合復(fù)數(shù)類型數(shù)值規(guī)范的字符串轉(zhuǎn)換為復(fù)數(shù)類型str()將數(shù)值類型轉(zhuǎn)換為字符串2.5.1類型轉(zhuǎn)換函數(shù)類型轉(zhuǎn)換函數(shù)在使用類型轉(zhuǎn)換函數(shù)時有兩點需要注意:(1)int()函數(shù)、float()函數(shù)只能轉(zhuǎn)換符合數(shù)字類型格式規(guī)范的字符串;(2)使用int()函數(shù)將浮點型數(shù)據(jù)轉(zhuǎn)換為整數(shù)時,若有必要會發(fā)生截斷行為,而不是四舍五入。用戶在使用類型轉(zhuǎn)換函數(shù)時,必須考慮到以上兩點,否則可能會因字符串不符合要求而導(dǎo)致在轉(zhuǎn)換時產(chǎn)生錯誤,或因截斷而產(chǎn)生預(yù)期之外的計算結(jié)果。

先定一個小目標(biāo)!根據(jù)任務(wù)描述實現(xiàn)實例6:模擬超市收銀抹零行為2.5.2實例6:模擬超市收銀抹零行為在商店買東西時,可能會遇到這樣的情況:挑選完商品進(jìn)行結(jié)算時,商品的總價可能會帶有零頭,商店老板在收取現(xiàn)金時為了提高顧客的回購率經(jīng)常會將這些零頭抹去。任務(wù)描述2.5.2實例6:模擬超市收銀抹零行為(1)計算用戶商品總金額。(2)使用int()函數(shù)實現(xiàn)實現(xiàn)抹零行為。實現(xiàn)步驟2.5.2實例6:模擬超市收銀抹零行為本章小結(jié)本章主要介紹了數(shù)字類型、字符串類型、運(yùn)算符、數(shù)據(jù)類型轉(zhuǎn)換等知識。通過學(xué)習(xí)本章的內(nèi)容,讀者能掌握Python中數(shù)字類型和字符串類型的常見操作,為后續(xù)的深入學(xué)習(xí)打好扎實的基礎(chǔ)。本章小結(jié)第3章流程控制《Python程序開發(fā)案例教程(第2版))》學(xué)習(xí)目標(biāo)/Target掌握條件語句的使用,能夠根據(jù)需求選擇合適的語句處理判斷情況掌握條件嵌套的使用,能夠使用條件嵌套處理多重判斷情況掌握循環(huán)語句的使用,能夠使用for語句或while語句實現(xiàn)循環(huán)操作掌握循環(huán)嵌套的使用,能夠使用循環(huán)嵌套處理多層循環(huán)的操作掌握跳轉(zhuǎn)語句,能夠使用break和continue語句控制循環(huán)的執(zhí)行情況章節(jié)概述/Summary程序中的語句默認(rèn)自上而下順序執(zhí)行。流程控制意指在程序執(zhí)行時,通過一些特定的指令更改程序中語句的執(zhí)行順序,使程序產(chǎn)生跳躍、回溯等現(xiàn)象。本章將對Python中的條件語句、循環(huán)語句和跳轉(zhuǎn)語句進(jìn)行講解。目錄/Contents01條件語句02條件嵌套03循環(huán)語句04循環(huán)嵌套05跳轉(zhuǎn)語句條件語句3.1

先定一個小目標(biāo)!掌握if語句的用法,能夠使用if語句處理單一情況的邏輯3.1.1if語句無縫銜接單元測試3.1.1if語句if語句Python中if語句由關(guān)鍵字if、條件表達(dá)式、冒號和代碼段組成。執(zhí)行if語句時,若if語句的條件表達(dá)式成立,即條件表達(dá)式的布爾值為True,則執(zhí)行if語句內(nèi)的代碼段;若if語句的條件表達(dá)式不成立,即條件表達(dá)式的布爾值為False,則跳過if語句內(nèi)的代碼段,繼續(xù)向下執(zhí)行。if條件表達(dá)式:

代碼段語法格式if語句的執(zhí)行流程3.1.1if語句if語句age=5#判斷變量age的值是否大于或等于3ifage>=3:print("可以上幼兒園了")示例使用if語句判斷一個人的年齡是否達(dá)到上幼兒園的年齡。

先定一個小目標(biāo)!掌握if-else語句的用法,能夠使用if-else語句處理兩種情況的邏輯3.1.2if-else語句無縫銜接單元測試if-else語句為了能夠同時處理滿足條件表達(dá)式和不滿足條件表達(dá)式兩種情況,需使用if-else語句。if條件表達(dá)式:

代碼段1else:

代碼段2語法格式if-else語句的執(zhí)行流程3.1.2if-else語句無縫銜接單元測試3.1.2if-else語句if-else語句u_name=input("請輸入用戶名:")pwd=input("請輸入密碼:")ifu_name=="admin"andpwd=="123":print("登錄成功!即將進(jìn)入主界面。")else:print("您輸入的用戶名或密碼錯誤,請重新輸入。")示例使用if-else語句描述用戶登錄場景:假設(shè)小明要登錄軟件,他的用戶名為admin,密碼為123,若他同時輸入了正確的用戶名與密碼,則給出登錄成功的提示信息,否則給出輸入有誤的提示信息。

先定一個小目標(biāo)!掌握if-elif-else語句的用法,能夠使用if-elif-else語句處理多種情況的邏輯3.1.3if-elif-else語句3.1.3if-elif-else語句if-elif-else語句if條件表達(dá)式1:

代碼段1elif條件表達(dá)式2:

代碼段2……elif條件表達(dá)式n:

代碼段nelse:

代碼段n+1語法格式if-elif-else語句的執(zhí)行流程if-else語句示例通過一個判斷會員級別的案例演示if-elif-else語句的基本使用。假設(shè)某商場會員的積分規(guī)則如表所示。3.1.3if-elif-else語句會員積分會員級別0注冊會員0<score≤2000銅牌會員2000<score≤10000銀牌會員10000<score≤30000金牌會員score>30000鉆石會員無縫銜接單元測試if-else語句score=int(input("請輸入您的會員積分:"))ifscore==0:print("注冊會員")elif0<score<=2000:print("銅牌會員")elif2000<score<=10000:print("銀牌會員")elif10000<score<=30000:print("金牌會員")else:print('鉆石會員')示例使用if-elif-else語句判斷一個用戶所屬的會員級別。3.1.3if-elif-else語句

先定一個小目標(biāo)!根據(jù)任務(wù)分析實現(xiàn)實例1:判斷回文數(shù)3.1.4實例1:判斷回文數(shù)所謂回文數(shù),就是各位數(shù)字從高位到低位正序排列和從低位到高位逆序排列都是同一數(shù)值的數(shù)。例如,數(shù)字1221按正序和逆序排列都為1221,因此1221就是一個回文數(shù);數(shù)字1234按倒序排列是4321,4321與1234不是同一個數(shù),因此1234就不是一個回文數(shù)。本實例要求編寫程序,實現(xiàn)判斷輸入的4位整數(shù)是否是回文數(shù)的功能。3.1.4實例1:判斷回文數(shù)使用input()函數(shù)接收輸入四位數(shù)。分別獲取四位數(shù)的各位數(shù)字。根據(jù)回文數(shù)規(guī)則組合新的四位數(shù)。使用if-else語句判斷輸入的四位數(shù)和組合成的四位數(shù)是否相等。實現(xiàn)思路3.1.4實例1:判斷回文數(shù)在Chapter03項目中創(chuàng)建01_palindrome.py文件。在01_palindrome.py中編寫代碼。運(yùn)行01_pal

溫馨提示

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

最新文檔

評論

0/150

提交評論