Python數(shù)據(jù)分析及應(yīng)用 課件全套 徐娟 第1-11章Python基礎(chǔ)應(yīng)用 - Python機(jī)器學(xué)習(xí)_第1頁
Python數(shù)據(jù)分析及應(yīng)用 課件全套 徐娟 第1-11章Python基礎(chǔ)應(yīng)用 - Python機(jī)器學(xué)習(xí)_第2頁
Python數(shù)據(jù)分析及應(yīng)用 課件全套 徐娟 第1-11章Python基礎(chǔ)應(yīng)用 - Python機(jī)器學(xué)習(xí)_第3頁
Python數(shù)據(jù)分析及應(yīng)用 課件全套 徐娟 第1-11章Python基礎(chǔ)應(yīng)用 - Python機(jī)器學(xué)習(xí)_第4頁
Python數(shù)據(jù)分析及應(yīng)用 課件全套 徐娟 第1-11章Python基礎(chǔ)應(yīng)用 - Python機(jī)器學(xué)習(xí)_第5頁
已閱讀5頁,還剩487頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1Python數(shù)據(jù)分析及應(yīng)用第一章目錄

1.1數(shù)據(jù)分析基礎(chǔ)1.2Python語言概述1.3Python語言開發(fā)環(huán)境配置1.4Python基本語法規(guī)則(1)知識(shí)目標(biāo):了解什么是數(shù)據(jù)分析及數(shù)據(jù)分析的基本流程;了解Python語言的發(fā)展及特點(diǎn)、開發(fā)環(huán)境的配置;掌握Python程序的編寫方法及基本語法規(guī)則。(2)技能目標(biāo):理解數(shù)據(jù)分析的基本流程;掌握Python語言解釋器的安裝方法、Anaconda開發(fā)環(huán)境的安裝方法及Python第三方庫的安裝與使用;掌握Python程序的編寫方法。(3)素質(zhì)目標(biāo):具備一定的計(jì)算思維能力和程序設(shè)計(jì)能力。3學(xué)習(xí)目標(biāo)天氣數(shù)據(jù)分析每天我們都會(huì)關(guān)注天氣信息,增減衣物、安排出行等。商家利用天氣數(shù)據(jù)分析消費(fèi)者的購物行為和出行習(xí)慣,從而制定更具針對性的營銷策略。通過分析土壤溫度、降雨量等數(shù)據(jù),農(nóng)民可以更準(zhǔn)確地決定種植何種作物、何時(shí)播種或灌溉。政府部門通過分析天氣數(shù)據(jù)來預(yù)測自然災(zāi)害對社會(huì)經(jīng)濟(jì)的影響,從而制定更加精準(zhǔn)的防災(zāi)減災(zāi)政策。隨著科技的進(jìn)步和數(shù)據(jù)采集與分析能力的提升,天氣數(shù)據(jù)分析將在未來發(fā)揮更為重要的作用。那么如何來進(jìn)行天氣數(shù)據(jù)分析?4本章導(dǎo)讀什么是數(shù)據(jù)分析?數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對收集來的大量數(shù)據(jù)進(jìn)行分析,將它們加以匯總和理解并消化,以求最大化地開發(fā)數(shù)據(jù)的功能,發(fā)揮數(shù)據(jù)的作用。數(shù)據(jù)分析是為了提取有用信息和形成結(jié)論而對數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。51.1數(shù)據(jù)分析基礎(chǔ)在統(tǒng)計(jì)應(yīng)用中,數(shù)據(jù)分析可分為描述性統(tǒng)計(jì)、探索性數(shù)據(jù)分析(EDA)和驗(yàn)證性數(shù)據(jù)分析(CDA)。EDA側(cè)重于發(fā)現(xiàn)數(shù)據(jù)中的新特征,而CDA則側(cè)重于確認(rèn)或偽造現(xiàn)有假設(shè)。預(yù)測分析側(cè)重于應(yīng)用統(tǒng)計(jì)模型進(jìn)行預(yù)測或分類,而文本數(shù)據(jù)分析主要是從文本源中提取信息并對其進(jìn)行分類,如詞頻分析、語義分析、主題分析、情感分析、文本聚類等。61.1數(shù)據(jù)分析基礎(chǔ)數(shù)據(jù)分析基本流程(1)數(shù)據(jù)采集或獲?。?)數(shù)據(jù)預(yù)處理和存儲(chǔ)(3)數(shù)據(jù)建模和分析(4)數(shù)據(jù)可視化分析(5)數(shù)據(jù)報(bào)表和總結(jié)71.1數(shù)據(jù)分析基礎(chǔ)為什么選用Python進(jìn)行數(shù)據(jù)分析?Python入門簡單,代碼可讀性強(qiáng)Python是開源的,它擁有非常多優(yōu)秀的庫Python與開源大數(shù)據(jù)平臺(tái)Hadoop具有很好的兼容性Python不受數(shù)據(jù)規(guī)模的約束,能夠處理大規(guī)模數(shù)據(jù)Python能夠繪制各種前沿的數(shù)據(jù)圖表Python在海量數(shù)據(jù)采集方面也有獨(dú)特的優(yōu)勢81.1數(shù)據(jù)分析基礎(chǔ)GuidovanRossumPython語言創(chuàng)立者2000年,Python2.x2008年,Python3.x目前,絕大部分Python函數(shù)庫和Python程序員都采用3.0版本系列語法和解釋器91.2Python語言概述Python語言的特點(diǎn)簡單易學(xué)速度快免費(fèi)、開源可移植性解釋性面向?qū)ο罂蓴U(kuò)展性可嵌入性豐富的庫101.2Python語言概述Python語言解釋器的安裝到Python主頁下載并安裝Python基本開發(fā)和運(yùn)行環(huán)境,網(wǎng)址:/downloads/

根據(jù)操作系統(tǒng)不同選擇不同版本

下載相應(yīng)的Python3.0系列版本程序111.3

Python語言開發(fā)環(huán)境配置啟動(dòng)Windows命令行工具,輸入python調(diào)用IDLE來啟動(dòng)Python圖形化運(yùn)行環(huán)境按照語法格式編寫代碼,編寫可以用任何文本編輯器,保存為文件打開IDLE,點(diǎn)擊Ctrl+N打開一個(gè)新窗口,輸入語句并保存,使用快鍵建F5即可運(yùn)行該程序121.3

Python語言開發(fā)環(huán)境配置Anaconda開發(fā)環(huán)境的安裝Anaconda是一種更加高效、智能的Python集成開發(fā)環(huán)境。Anaconda集成了很多和數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)相關(guān)的Python第三方開源庫,更友好和方便;Anaconda提供了包管理與環(huán)境管理的功能,可以很方便的解決多版本Python并存、切換以及各種第三方包安裝問題。131.3

Python語言開發(fā)環(huán)境配置從開始菜單啟動(dòng)Spyder或者Jupyter,就可以編寫自己的Python程序了。141.3Python語言開發(fā)環(huán)境配置Python有一套很有用的標(biāo)準(zhǔn)庫(standardlibrary)。標(biāo)準(zhǔn)庫會(huì)隨著Python解釋器一起安裝在你的電腦中的。它是Python的一個(gè)組成部分。這些標(biāo)準(zhǔn)庫是Python為程序員準(zhǔn)備好的利器,可以讓編程事半功倍。同時(shí)Python社區(qū)提供了大量的第三方模塊,使用方式與標(biāo)準(zhǔn)庫類似。它們的功能無所不包,覆蓋科學(xué)計(jì)算、Web開發(fā)、數(shù)據(jù)庫接口、圖形系統(tǒng)多個(gè)領(lǐng)域,并且大多成熟而穩(wěn)定。151.3Python語言開發(fā)環(huán)境配置Pythonpip的安裝與使用pip是Python包管理工具,該工具提供了對Python包的查找、下載、安裝、卸載的功能。在命令行(控制臺(tái))中輸入以下命令來判斷是否已安裝:pip–version未安裝,則可以使用以下方法來安裝:$curlhttps://bootstrap.pypa.io/get-pip.py–oget-pip.py#下載安裝腳本$sudopython3get-pip.py#運(yùn)行安裝腳本161.3Python語言開發(fā)環(huán)境配置Pyinstaller庫的安裝與使用Pyinstaller是一個(gè)十分有用的第三方庫,它能夠在Windows、Linux、MacOSX等操作系統(tǒng)下將Python源文件打包,通過對源文件打包,Python程序可以在沒有安裝Python的環(huán)境中運(yùn)行,也可以作為一個(gè)獨(dú)立文件方便傳遞和管理。Pyinstaller需要在命令行下用pip工具安裝:pipinstallpyinstaller171.3Python語言開發(fā)環(huán)境配置編寫自己的Python程序?qū)嵗?.1編寫并運(yùn)行第一個(gè)hello程序使用Python輸出"HelloWorld!"的代碼為:print("Hello,World!")找到并運(yùn)行Python3.12的IDLE,在“>>>”提示符后輸入代碼:print("Hello,World!"),然后回車,就可以得到運(yùn)行結(jié)果。181.3Python語言開發(fā)環(huán)境配置Python程序運(yùn)行方式運(yùn)行Python程序有兩種方式,交互式和文件式。交互式即Python解釋器即時(shí)響應(yīng)用戶輸入的每條代碼,給出輸出結(jié)果。文件式則需要將Python代碼寫在一個(gè)或多個(gè)文件中,通常可以按照Python的語法格式編寫代碼,并保存成.py格式的文件,然后由Python解釋器批量執(zhí)行文件中的代碼。191.3Python語言開發(fā)環(huán)境配置實(shí)例1.2長方形面積的計(jì)算在IDLE中選擇“File”|“NewFile”,在打開的窗口中輸入以下代碼:a=4b=7s=a*bprint(“s=”,s)選擇“File”|“Save”,保存文件,選擇“Run”|“RunModule”,得到運(yùn)行結(jié)果201.3Python語言開發(fā)環(huán)境配置實(shí)例1.3繪制一個(gè)五角星importturtleimporttimeturtle.pensize(4)turtle.pencolor("yellow")#畫筆黃色turtle.fillcolor("red")#內(nèi)部填充紅色#繪制五角星#turtle.begin_fill()for_inrange(5):#重復(fù)執(zhí)行5次

turtle.forward(200)#向前移動(dòng)200步

turtle.right(144)#向右移動(dòng)144度,注意這里的參數(shù)一定不能變turtle.end_fill()#結(jié)束填充紅色time.sleep(1)211.3Python語言開發(fā)環(huán)境配置本節(jié)以GDP(國內(nèi)生產(chǎn)總值)計(jì)算為例,介紹Python程序的結(jié)構(gòu)及基本語法規(guī)則。實(shí)例1.4GDP計(jì)算:2023年,中國GDP約17.89萬億美元,增速為5.20%,美國GDP約27.36萬億美元,增速為2.5%,按此增長率多少年后中國的GDP能超過美國的GDP值。如果中國GDP增速可以達(dá)到7%呢?gdpChina=17.89e12gdpAmerica=27.36e12Growth_rate=float(input("請輸入中國GDP增速:"))#可以輸入不同的中國GDP增速y=2023while(gdpChina<=gdpAmerica):#判斷中國的GDP是否超過美國的GDP了?

y=y+1#如果沒有超過,則年份增加1年

gdpChina=gdpChina*(1+Growth_rate)gdpAmerica=gdpAmerica*(1+0.026)print(y,"年中國的GDP能超過美國的GDP")print("中國的GDP為:",gdpChina,"美國的GDP為:",gdpAmerica)221.4Python基本語法規(guī)則縮進(jìn)與對齊Python程序代碼通過縮進(jìn)和對齊表示代碼間的邏輯關(guān)系,相同縮進(jìn)的代碼視為同一代碼塊??s進(jìn)指代碼開頭的空格,一次縮進(jìn)為4個(gè)空格(按一下tab鍵)。處于同一邏輯關(guān)系或?qū)哟渭?jí)別相同的代碼具有相同的縮進(jìn),即對齊??s進(jìn)和對齊增強(qiáng)了代碼的可讀性,使代碼層次分明,邏輯關(guān)系清晰。如實(shí)例1.4中第6到第8行代碼從屬于第5行代碼,他們構(gòu)成代碼的縮進(jìn)結(jié)構(gòu)。231.4Python基本語法規(guī)則注釋注釋是對代碼進(jìn)行解釋或說明的文字信息,它能夠增強(qiáng)程序的可讀性,幫助理解代碼,注釋不會(huì)被編譯和執(zhí)行。注釋分為單行注釋和多行注釋,單行注釋以#開頭。多行注釋以′′′(3個(gè)單引號(hào)或者雙引號(hào))開頭和結(jié)尾。單行注釋用法:#這是一個(gè)單行注釋print("helloworld!")#放置在語句之后的注釋多行注釋用法:'''這是一個(gè)多行注釋,使用單引號(hào)這是一個(gè)多行注釋,使用單引號(hào)

'''241.4Python基本語法規(guī)則變量變量指其值會(huì)發(fā)生變化的量,變量的名字叫做變量名。變量名是標(biāo)識(shí)符的一種,必須要遵守Python標(biāo)識(shí)符命名規(guī)則,標(biāo)識(shí)符由字母、數(shù)字、下劃線“_”組成,但不能以數(shù)字開頭,如abc、ab_1、Abc_2_1等。以下劃線開頭的標(biāo)識(shí)符有特殊含義,應(yīng)避免使用以下劃線開頭的標(biāo)識(shí)符。標(biāo)識(shí)符不能和Python保留字或函數(shù)名相同。Python標(biāo)識(shí)符是嚴(yán)格區(qū)分大小寫的。標(biāo)識(shí)符命名應(yīng)既要簡短又具有描述性。251.4Python基本語法規(guī)則賦值Python變量的賦值是指將數(shù)據(jù)放入變量的過程。變量無須聲明數(shù)據(jù)類型就可以直接賦值,變量的類型和值在賦值那一刻被初始化。變量賦值通過賦值號(hào)“=”來執(zhí)行,它的作用是將“=”右邊的值分配給“=”左邊的變量。Python還可以同時(shí)給多個(gè)變量賦同一個(gè)值。261.4Python基本語法規(guī)則幾個(gè)變量賦值的例子>>>y=2023>>>Growth_rate=0.052>>>s=”Helloworld!”>>>y=y+1>>>gdpAmerica=gdpAmerica*(1+0.026)>>>a=b=c=1>>>m+=1>>>n*=10271.4Python基本語法規(guī)則Python賦值運(yùn)算符281.4Python基本語法規(guī)則運(yùn)算符描述示例=將右側(cè)數(shù)值或表達(dá)式的值賦給左側(cè)變量c=5表示將數(shù)值5賦給c+=將右側(cè)的值加到左側(cè)的變量上,并將結(jié)果賦給左側(cè)的變量。c+=3等價(jià)于c=c+3-=從左側(cè)的變量中減去右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c-=3

等價(jià)于

c=c-3*=將左側(cè)的變量乘以右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c*=5

等價(jià)于

c=c*5/=將左側(cè)的變量除以右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c/=2

等價(jià)于

c=c/2%=計(jì)算左側(cè)的變量除以右側(cè)值的余數(shù),并將結(jié)果賦給左側(cè)的變量。c%=5

等價(jià)于

c=c%5**=執(zhí)行指數(shù)(冪)計(jì)算,并將結(jié)果賦給左側(cè)的變量c**=3

等價(jià)于

c=c**3//=執(zhí)行整數(shù)除法,將左側(cè)的變量除以右側(cè)的值并向下取整,然后將結(jié)果賦給左側(cè)的變量。c//=6

等價(jià)于

c=c//6保留字保留字指被編程語言內(nèi)部定義并使用的標(biāo)識(shí)符,被賦予了特殊的意義。這些標(biāo)識(shí)符不能再作為例如變量名、函數(shù)名或任何其他用戶定義的名字。每個(gè)保留字都有其特定的用途和規(guī)則。每一種程序設(shè)計(jì)語言都有保留字。291.4Python基本語法規(guī)則輸入input()用于獲得用戶輸入的值,無論用戶輸入什么內(nèi)容,input()的返回值始終是字符型。書寫格式為:<變量>=input(<提示信息>)例如:>>>input("請輸入一個(gè)數(shù)字:")>>>請輸入一個(gè)數(shù)字:96.56’96.56’>>>input("請輸入一串字符:")>>>請輸入一串字符:Helloworld!’Helloworld!’由此可見,不論用戶輸入的是字符還是數(shù)字,最終都變成一串字符(兩邊有單引號(hào)定界)。301.4Python基本語法規(guī)則輸出print()用于輸出信息或變量的值,它可以將文本、變量、表達(dá)式等內(nèi)容打印出來,方便進(jìn)行調(diào)試和查看結(jié)果。書寫格式為:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)其中,objects是要打印的對象,可以是一個(gè)或多個(gè)。sep是分隔符,用于將多個(gè)對象之間進(jìn)行分隔,默認(rèn)為一個(gè)空格。end是結(jié)束符,用于在打印完所有對象之后添加一個(gè)字符,默認(rèn)為換行符。file是輸出流,用于指定打印的目標(biāo),默認(rèn)為sys.stdout,即標(biāo)準(zhǔn)輸出流。flush是一個(gè)布爾值,用于指定是否立即刷新輸出,默認(rèn)為False。311.4Python基本語法規(guī)則當(dāng)輸出變量時(shí),可以采用格式化輸出方式,使用format()規(guī)定輸出的格式,format()的詳細(xì)介紹見后續(xù)章節(jié)。例如:(1)輸出文本:>>>print("Hello,World!")

(2)輸出變量的值>>>x=10>>>print(x)(3)輸出多個(gè)對象>>>x=10>>>y=20>>>print("x=",x,"y=",y)(4)修改分隔符和結(jié)束符>>>x=10>>>y=20>>>print("x=",x,"y=",y,sep=',',end='!')321.4Python基本語法規(guī)則33思維導(dǎo)圖34Python數(shù)據(jù)分析及應(yīng)用第二章

基本數(shù)據(jù)類型目錄

2.1數(shù)值類型2.2數(shù)值運(yùn)算2.3字符串類型2.4不同數(shù)據(jù)類型的轉(zhuǎn)換知識(shí)目標(biāo):?了解Python中常見的基本數(shù)據(jù)類型;?掌握不同數(shù)據(jù)類型的定義規(guī)則和表示方法;?理解每種數(shù)據(jù)類型的特點(diǎn)、適用場景和存儲(chǔ)方式;?熟悉數(shù)據(jù)類型之間的轉(zhuǎn)換方法和規(guī)則。36學(xué)習(xí)目標(biāo)技能目標(biāo):?能夠準(zhǔn)確地定義和使用各種基本數(shù)據(jù)類型來存儲(chǔ)和處理數(shù)據(jù);?熟練進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換操作,以滿足不同的計(jì)算和邏輯需求;?運(yùn)用所學(xué)的數(shù)據(jù)類型,編寫具有實(shí)際功能的代碼段,解決簡單的問題;?能夠?qū)?fù)雜的數(shù)據(jù)結(jié)構(gòu)進(jìn)行分析和操作;?具備調(diào)試代碼的能力,能夠識(shí)別和解決由于數(shù)據(jù)類型使用不當(dāng)導(dǎo)致的錯(cuò)誤。37學(xué)習(xí)目標(biāo)素質(zhì)目標(biāo):?培養(yǎng)嚴(yán)謹(jǐn)?shù)倪壿嬎季S,確保在編程中對數(shù)據(jù)類型的選擇和使用準(zhǔn)確無誤;?提高問題解決的能力,通過合理運(yùn)用數(shù)據(jù)類型來優(yōu)化代碼的可讀性和可維護(hù)性;?養(yǎng)成良好的編程習(xí)慣,注重代碼規(guī)范和注釋;?培養(yǎng)耐心和細(xì)心,在處理數(shù)據(jù)類型相關(guān)問題時(shí),能夠仔細(xì)檢查和排查錯(cuò)誤。38學(xué)習(xí)目標(biāo)

在Python編程的世界里,數(shù)據(jù)類型是構(gòu)建代碼大廈的基石。就如同建造房屋需要各種不同的材料一樣,編寫有效的程序也依賴于對數(shù)據(jù)類型的準(zhǔn)確理解和運(yùn)用。

在這一章中,我們將一同探索Python豐富多樣的基本數(shù)據(jù)類型。深入了解整數(shù)、浮點(diǎn)數(shù)、字符串和布爾值等常見數(shù)據(jù)類型的奧秘。

整數(shù)和浮點(diǎn)數(shù)是處理數(shù)值運(yùn)算的得力助手,它們分別適用于不同精度和范圍的數(shù)字計(jì)算。字符串則是文本信息的載體,學(xué)會(huì)如何創(chuàng)建、操作和處理字符串,讓文字在代碼中發(fā)揮神奇的作用。而布爾值作為邏輯判斷的基礎(chǔ),將幫助構(gòu)建條件語句和控制程序的流程。

通過學(xué)習(xí)本章,將不僅掌握這些基本數(shù)據(jù)類型的概念和用法,還能理解它們在內(nèi)存中的存儲(chǔ)方式和特點(diǎn)。這將為后續(xù)編寫復(fù)雜、高效的程序打下堅(jiān)實(shí)的基礎(chǔ),在Python編程的征程上邁出堅(jiān)實(shí)的一步!39本章導(dǎo)讀Python提供了豐富的數(shù)值類型,支持4種數(shù)值類型:包括整型(int)、浮點(diǎn)型(float)、布爾型(bool)和復(fù)數(shù)型(complex)。每種類型都有其獨(dú)特的特點(diǎn)和用途。402.1數(shù)值類型表示方法有4種:十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制。默認(rèn)情況采用十進(jìn)制,其他進(jìn)制需要加引導(dǎo)符號(hào)。412.1.1整型(int)進(jìn)制類型引導(dǎo)符號(hào)描述十進(jìn)制不需要默認(rèn)情況。如:123,-243二進(jìn)制0b或0B由字符0、1組成。如:0b1100,0B101011八進(jìn)制0o或0O(注意:后一個(gè)是大寫字母O)由字符0到7組成。如:0o137,0O564十六進(jìn)制0x或0X由字符0到9、a到f(或A到F)組成。如:0x9AF,0X678

例2-1print(123,-243)print(0o137,0O564)print(0x9AF,0X678)2.1.1整型(int)

整型特點(diǎn):(1)無大小限制(受限于可用內(nèi)存)。(2)支持二進(jìn)制、八進(jìn)制、十進(jìn)制和十六進(jìn)制表示,但結(jié)果顯示都是十進(jìn)制數(shù)。(3)支持常見的算術(shù)運(yùn)算(加、減、乘、除、取模、冪運(yùn)算)。Python的內(nèi)置函數(shù)能夠進(jìn)行整數(shù)的進(jìn)制轉(zhuǎn)換如下表。序號(hào)轉(zhuǎn)換函數(shù)描述實(shí)例1bin(x)將十進(jìn)制整數(shù)x轉(zhuǎn)換成二進(jìn)制整數(shù)bin(246)2oct(x)將十進(jìn)制整數(shù)x轉(zhuǎn)換成八進(jìn)制整數(shù)oct(246)3hex(x)將十進(jìn)制整數(shù)x轉(zhuǎn)換成十六進(jìn)制整數(shù)hex(246)4int(x,n)將n進(jìn)制字符串或數(shù)字x轉(zhuǎn)換成十進(jìn)制整數(shù)int(246,16)2.1.1整型(int)

例2-2a=bin(246)b=oct(246)c=hex(246)d=int(“246”,16)print(a,b,c,d)2.1.1整型(int)2.1.2浮點(diǎn)型(float)浮點(diǎn)數(shù)用于表示帶有小數(shù)部分的數(shù)值。浮點(diǎn)數(shù)有兩種表示方法:十進(jìn)制表示和科學(xué)計(jì)數(shù)法表示。十進(jìn)制表示:3.14、2.75、-123.6科學(xué)計(jì)數(shù)法表示:1.2E3(表示1.2×103)、1.2e-3(表示1.2×10-3),E或e表示基數(shù)為10,后面的整數(shù)表示指數(shù)。內(nèi)置函數(shù)float(x)可以將整數(shù)或字符串轉(zhuǎn)換成浮點(diǎn)類型數(shù)據(jù)。2.1.2浮點(diǎn)型(float)例2-3print(3.14,2.75,-123.6,1.2E3,1.2e-3)a=float(246)b=float(“246”)print(a,b)2.1.3布爾型(bool)

布爾類型也叫邏輯類型,主要用來表示邏輯判斷的結(jié)果,比如True和False、真和假、對和錯(cuò)、成立和不成立等。在邏輯判斷中,True和非0都是“真”,F(xiàn)alse和0都是“假”。2.1.3布爾型(bool)

例2-4print(int(True),int(False))print(bool(5),bool(1),bool(0))print(345>123,”A”>”a”)2.1.4復(fù)數(shù)型(complex)

復(fù)數(shù)類型用于表示數(shù)學(xué)中的復(fù)數(shù)。復(fù)數(shù)由實(shí)部和虛部組成,形式為real+imagj(或real+imagJ),其中real是實(shí)部,imag是虛部,j或J表示虛數(shù)單位,real、imag都是浮點(diǎn)數(shù)。例如:c1=2+3jc2=-1.5+0.5j2.1.4復(fù)數(shù)型(complex)

例2-5print(2+3j,-1.5+0.5j,5J,4+1.34E-3J)a=4.5+8.9jprint(a.real,a.imag)b=complex(5.67,34.6)print(b)2.2數(shù)值運(yùn)算

運(yùn)算符與表達(dá)式運(yùn)算符:表示運(yùn)算的符號(hào)稱為運(yùn)算符。Python常用的運(yùn)算符有算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符、復(fù)合運(yùn)算符、標(biāo)識(shí)運(yùn)算符和位運(yùn)算符等。操作數(shù):表示運(yùn)算的對象稱為操作數(shù)。操作數(shù)可以是常量、變量或函數(shù)等。表達(dá)式:描述對哪些數(shù)據(jù)進(jìn)行什么樣的運(yùn)算。如1+2就是一個(gè)算術(shù)表達(dá)式,“+”是運(yùn)算符,1、2是操作數(shù)。2.2.1基本運(yùn)算

一、算術(shù)運(yùn)算符

算術(shù)運(yùn)算符一般是用來實(shí)現(xiàn)數(shù)學(xué)運(yùn)算的,由算術(shù)運(yùn)算符連接常量或變量所構(gòu)成的表達(dá)式稱為算術(shù)表達(dá)式。除負(fù)號(hào)外,所有的算術(shù)運(yùn)算符均為雙目運(yùn)算符。序號(hào)運(yùn)算符說明例子(x=5,y=2)1+加法x+y,值為72-減法x-y,值為33*乘法x*y,值為104/除法x/y,值為2.55//整除,返回商的整數(shù)部分x//y,值為26%求余(模),返回余數(shù)x%y,值為17**冪x**y,值為252.2.1基本運(yùn)算

例2-6a=8;b=3print(a+b,a-b)print(a*b,a/b)print(a//b,b//a)print(a%b,a**b)2.2.1基本運(yùn)算

二、關(guān)系運(yùn)算符

關(guān)系運(yùn)算符一般用來比較運(yùn)算符兩邊的操作數(shù),由關(guān)系運(yùn)算符連接兩個(gè)操作數(shù)的表達(dá)式稱為關(guān)系表達(dá)式,被連接的操作數(shù)可以是常量、變量、算術(shù)表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式等。若關(guān)系表達(dá)式成立,則結(jié)果為True(真),否則為False(假)。所有的關(guān)系運(yùn)算符均為雙目運(yùn)算符。序號(hào)關(guān)系運(yùn)算符說明例子x=5,y=2)1==是否相等x==y,值為False2!=是否不相等x!=y,值為True3>當(dāng)左>右時(shí)結(jié)果為Truex>y,值為True4<當(dāng)左<右時(shí)結(jié)果為Truex<y,值為False5>=當(dāng)左>=右時(shí)結(jié)果為Truex>=y,值為True6<=當(dāng)左<=右時(shí)結(jié)果為Truex<=y,值為False2.2.1基本運(yùn)算

例2-7a=8;b=3print(a==b,a!=b)print(a>b,a<b)print(a>=b,a<=b)print(6<a<10,2<b<1)2.2.1基本運(yùn)算

三、邏輯運(yùn)算符Python語言中邏輯運(yùn)算符包括and(邏輯與)、or(邏輯或)和not(邏輯非)三個(gè)。邏輯運(yùn)算符用于對操作數(shù)進(jìn)行邏輯運(yùn)算,用邏輯運(yùn)算符連接的關(guān)系表達(dá)式稱為邏輯表達(dá)式。邏輯表達(dá)式常用于控制程序的流程和條件判斷,幫助開發(fā)者根據(jù)不同的邏輯條件執(zhí)行相應(yīng)的代碼塊。在使用邏輯運(yùn)算符時(shí),需要注意運(yùn)算符的優(yōu)先級(jí),not的優(yōu)先級(jí)高于and,and的優(yōu)先級(jí)高于or。and、or是雙目運(yùn)算符,not是單目運(yùn)算符。2.2.1基本運(yùn)算

xynotxxandyxoryTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalse邏輯運(yùn)算符邏輯運(yùn)算符真值表2.2.1基本運(yùn)算

例2-8:已知判斷年份y是否為閏年的條件為:(1)能被4整除,但不能被100整除;

(2)能被400整除。只要滿足(1)或者(2)中任意一個(gè)條件,那么y就是閏年。程序如下:y=int(input(“請輸入年份:”))print(y%4==0andy%100!=0ory%400==0)2.2.1基本運(yùn)算

四、賦值運(yùn)算符

在Python中,賦值運(yùn)算用于將值賦給變量。賦值運(yùn)算符的主要作用是為變量賦予初始值或更新變量的值,以便在程序中進(jìn)行后續(xù)的計(jì)算和操作。

在中學(xué)階段的數(shù)學(xué)中,等號(hào)“=”的含義是判斷等號(hào)兩邊的數(shù)值是否相等。但在Python中,“=”的含義是賦值運(yùn)算,讀作賦值號(hào),將“=”賦值號(hào)右邊的數(shù)值賦給左邊的變量。而要判斷兩邊數(shù)值是否相等用關(guān)系運(yùn)算符“==”。

基本語法格式為:

變量=表達(dá)式

作用:將“=”賦值號(hào)右邊的表達(dá)式值賦給左邊的變量。

注意:在使用賦值運(yùn)算時(shí),需要注意變量的數(shù)據(jù)類型以及賦值表達(dá)式的合法性,以避免出現(xiàn)錯(cuò)誤。2.2.1基本運(yùn)算

例2-9賦值運(yùn)算符的靈活運(yùn)用a=b=c=10#同一值賦給多個(gè)變量print(a,b,c)a,b,c=2,4,6#一行代碼實(shí)現(xiàn)多個(gè)值賦給多個(gè)變量,順序很重要print(a,b,c)a1=2.3#交換兩個(gè)變量的值a2=87.9a1,a2=a2,a1print(a1,a2)2.2.1基本運(yùn)算

五、復(fù)合運(yùn)算符

復(fù)合運(yùn)算符是將某種算術(shù)運(yùn)算符和賦值運(yùn)算符結(jié)合起來,形成一種簡潔的寫法。在Python語言中,基本賦值運(yùn)算符“=”與7種算術(shù)運(yùn)算符(+、-、*、/、%、//、**)結(jié)合成復(fù)合賦值運(yùn)算符,其功能是先計(jì)算算術(shù)運(yùn)算,然后再賦值。

基本語法格式為:

變量

算術(shù)運(yùn)算符=表達(dá)式

相當(dāng)于:變量=變量

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

表達(dá)式

作用:先計(jì)算算術(shù)運(yùn)算與表達(dá)式的結(jié)果,然后再賦給左邊的變量。序號(hào)復(fù)合賦值運(yùn)算符說明例子(x=5,y=2)1+=加法賦值x+=y,相當(dāng)于x=x+y,x值為72-=減法賦值x-=y,相當(dāng)于x=x-y,x值為33*=乘法賦值x*=y,相當(dāng)于x=x*y,x值為104/=除法賦值x/=y,相當(dāng)于x=x/y,x值為2.55//=整除賦值x//=y,相當(dāng)于x=x//y,x值為26%=求余賦值x%=y,相當(dāng)于x=x%y,x值為17**=指數(shù)賦值x**=y,相當(dāng)于x=x**y,x值為252.2.1基本運(yùn)算

六、運(yùn)算符的優(yōu)先級(jí)

Python語言中規(guī)定,在同一個(gè)表達(dá)式中出現(xiàn)多個(gè)運(yùn)算符時(shí),要先計(jì)算優(yōu)先級(jí)高的運(yùn)算。當(dāng)出現(xiàn)多個(gè)優(yōu)先級(jí)相同的運(yùn)算符時(shí),按照結(jié)合性確定計(jì)算次序。括號(hào)可以改變優(yōu)先級(jí)順序,有括號(hào)時(shí)優(yōu)先計(jì)算括號(hào)內(nèi)的表達(dá)式。序號(hào)運(yùn)算符運(yùn)算符說明結(jié)合性優(yōu)先級(jí)順序1()圓括號(hào)從左至右高

低2**乘方從左至右3*、/、//、%乘除從左至右4+、-加減從左至右5==、!=、>、>=、<、<=關(guān)系運(yùn)算符從左至右6=、+=、-=、*=、/=、//=、%=、**=賦值運(yùn)算符和復(fù)合賦值運(yùn)算符從右至左7not非從右至左8and與從左至右9or或從左至右2.2.1基本運(yùn)算

例2-10x=5;y=2z=x+y*6#運(yùn)算順序?yàn)椋?、+w=x+y**x*10#運(yùn)算順序?yàn)椋?*、*、+m=(7*(x+4))**2/(9*(x+y))#用圓括號(hào)改變運(yùn)算順序print(z,w,m)2.2.2數(shù)值運(yùn)算函數(shù)

Python內(nèi)置的數(shù)學(xué)函數(shù)能夠完成數(shù)學(xué)計(jì)算。Python提供了豐富的數(shù)學(xué)函數(shù),通過math模塊可以訪問更多高級(jí)的數(shù)學(xué)運(yùn)算。序號(hào)函數(shù)說明舉例1abs(x)求x的絕對值abs(-10),返回值為102divmod(x,y)分別取得商和余數(shù),返回元組divmod(20,6),返回值為(3,2)3pow(x,y)返回x的y次冪pow(6,2),返回值為364round(x)或round(x,d)對浮點(diǎn)數(shù)x按照四舍五入保留d位小數(shù)。無參數(shù)則返回x四舍五入后的整數(shù)值round(3.1415926,3),返回值為3.1425max(x1,x2,…,xn)求x1,x2,…,xn中的最大值max(5.6,45,7.9,8),返回值為456min(x1,x2,…,xn)求x1,x2,…,xn中的最小值min(5.6,45,7.9,8),返回值為5.67eval(str)將字符串中的表達(dá)式求值,返回計(jì)算結(jié)果eval(“1+2+3+4+5”),返回值為152.2.2數(shù)值運(yùn)算函數(shù)

例2-11print(abs(-10))print(divmod(20,6))print(pow(6,2))print(round(3.1415926,3))print(max(5.6,45,7.9,8))print(min(5.6,45,7.9,8))print(eval(“1+2+3+4+5”))2.3字符串類型

現(xiàn)實(shí)生活中的很多數(shù)據(jù)都是字符串,如姓名、住址、身份證號(hào)、學(xué)號(hào)等,其中一些雖然完全由阿拉伯?dāng)?shù)字構(gòu)成,但不是數(shù)值而是字符串。字符串是常見的一種數(shù)據(jù)類型,程序中經(jīng)常會(huì)有對字符串進(jìn)行各種處理的需求,因此Python語言中提供了字符串類型,可以對字符串進(jìn)行各種處理操作。

字符串是一個(gè)字符序列,它可以包含字母、數(shù)字、標(biāo)點(diǎn)符號(hào)等文本形式的字符。字符的個(gè)數(shù)稱為字符串的長度,長度為0的字符串稱為空字符串。2.3.1字符串的創(chuàng)建

Python中的字符串是一個(gè)有序的字符序列,可以用單引號(hào)、雙引號(hào)或三引號(hào)表示。其中,單引號(hào)和雙引號(hào)均用來表示單行字符串。使用單引號(hào)時(shí),雙引號(hào)可以作為字符串的一部分;使用雙引號(hào)時(shí),單引號(hào)可以作為字符串的一部分;三引號(hào)可以表示單行或多行字符串。例2-12print(‘ILikePython!’)print(“Let’sProgram!”)print(“““Let’sProgram!”””)2.3.2轉(zhuǎn)義字符

Python使用引號(hào)標(biāo)記字符串,但引號(hào)本身不屬于字符串內(nèi)容。引號(hào)自身就是一個(gè)特殊的存在,這樣會(huì)產(chǎn)生一個(gè)問題,如何表達(dá)字符串正文內(nèi)容中的引號(hào)?一般有兩種方法來實(shí)現(xiàn):一是使用和待輸出的引號(hào)不同的引號(hào)來標(biāo)記字符串;二是使用轉(zhuǎn)義字符。

轉(zhuǎn)義字符以反斜線號(hào)為前綴,用于避免字符的二義性,或者描述一些不方便通過鍵盤直接輸入的特殊字符。轉(zhuǎn)義字符說明轉(zhuǎn)義字符說明\\反斜線號(hào)\’單引號(hào)

\n換行符,將鼠標(biāo)指針移到下一行開頭\r回車符,將鼠標(biāo)指針移到本行開頭\”雙引號(hào)\f換頁符\t橫向制表符,即<Tab>鍵\b退格,即<Backspace>鍵2.3.2轉(zhuǎn)義字符例2-13print(‘《九月九日憶山東兄弟》’)print(‘\t——唐·王維’)print(“獨(dú)在異鄉(xiāng)為異客,每逢佳節(jié)倍思親。\n遙知兄弟登高處,遍插茱萸少一人?!?2.3.3字符串基本操作一、字符串索引操作

字符串索引就是字符的索引,可以通過字符串索引訪問和操作字符。字符串索引分正向索引和負(fù)向索引。

(1)正向索引:從左到右排列,默認(rèn)從0開始,從左到右標(biāo)記字符依次為0、1、2、…,最大范圍是字符串長度減1。

(2)負(fù)向索引:從右到左排列,默認(rèn)從-1開始,從右到左標(biāo)記字符依次為-1、-2、-3、…。例如:字符串:Student正向索引:0123456負(fù)向索引:-7-6-5-4-3-2-1字符串索引操作指的是使用字符串的索引獲取字符串中的指定字符,語法格式如下:<字符串>[索引]2.3.3字符串基本操作例2-14print(“student”[0],”student”[3])s=”student”print(s[-1],s[-4])2.3.3字符串基本操作二、求字符串的長度可以用內(nèi)置函數(shù)len()求字符串的長度。例如:s=”student”>>>len(s)結(jié)果為:7三、字符串連接操作字符串連接操作使用加號(hào)(+)將兩個(gè)字符串連接起來。2.3.3字符串基本操作例2-15print(“I”+”like”+”Python!”)print(“我愛學(xué)”+“編程!”)2.3.3字符串基本操作四、字符串復(fù)制操作如果字符串由一段字符反復(fù)連接而成,則可以使用“*”生成該字符串。例如:Print(“Python!”*3)Print(“中國加油!”*2)2.3.3字符串基本操作五、字符串切片操作

字符串切片操作是指利用指定范圍從字符串中獲得字符串的子串。其方法是通過指定開始位置start和結(jié)束位置end來指定切片的區(qū)間?;菊Z法格式如下:<字符串>[start:end:step]

說明:start表示子串的起始位置,end表示子串的終止位置(不含end對應(yīng)的字符,即end-1),step表示步長。start、end和step均可省略,start的默認(rèn)值為0,end的默認(rèn)值為字符串長度,step默認(rèn)步長為1。2.3.3字符串基本操作例2.16s=”student”print(s[1:5])print(s[:6])print(s[1:])print(s[1:6:2])print(s[-7:-2])2.3.3字符串基本操作六、字符串處理函數(shù)Python內(nèi)置了一些與字符串處理相關(guān)的函數(shù)。序號(hào)函數(shù)說明1len(s)返回字符串的長度2str(s)返回任意類型s的字符串形式3chr(x)返回ASCII值x對應(yīng)的字符4ord(s)返回字符s對應(yīng)的ASCII值5hex(x)返回整數(shù)x對應(yīng)十六進(jìn)制數(shù)的小寫形式字符串6oct(x)返回整數(shù)x對應(yīng)八進(jìn)制數(shù)的小寫形式字符串2.3.3字符串基本操作七、字符串常用處理方法Python語言中字符串的方法很多,這里介紹一些常用的方法。序號(hào)方法說明1strip()刪除字符串兩端空格后形式新的字符串2lstrip()刪除字符串左端空格后形式新的字符串3rstrip()刪除字符串右端空格后形式新的字符串4lower()將字符串中所有字母轉(zhuǎn)換成小寫5upper()將字符串中所有字母轉(zhuǎn)換成大寫6capitalize()將字符串中首字母轉(zhuǎn)換成大寫,其余字母轉(zhuǎn)換成小寫7find(substr[,start[,end]])返回substr子串在字符串中的位置8count(substr[,start[,end]])返回substr子串在字符串中的出現(xiàn)的次數(shù)9replace(old,new[,count])用字符串new替換old,可選參數(shù)count表示被替換的子串個(gè)數(shù)2.3.4format()方法的基本使用一、format()方法的使用

在Python中,format方法是一種用于字符串格式化的強(qiáng)大工具。它允許將變量或表達(dá)式插入到字符串中,并能根據(jù)需要進(jìn)行格式化。

Python推薦使用format()方法整合字符串,語法格式如下:

<模板字符串>.format(<用逗號(hào)分隔的參數(shù)>)2.3.4format()方法的基本使用一、format()方法的使用

說明:

1.模板字符串是一個(gè)由字符串和槽組成的字符串,用于控制字符串和變量的顯示效果。槽用大括號(hào)“{}”表示,對應(yīng)format()方法中用逗號(hào)分隔的參數(shù)。例如:在學(xué)習(xí)強(qiáng)國APP學(xué)習(xí)平臺(tái)封面有一句孔子的詩句如下:>>>“孔子曰:學(xué)而時(shí)習(xí)之,{}”.format(“不亦說乎”)顯示:孔子曰:學(xué)而時(shí)習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用

2.如果模板字符串中有多個(gè)槽,且槽內(nèi)沒有指定序號(hào),則按照槽出現(xiàn)的順序分別對應(yīng)format()方法中不同參數(shù)。例如:>>>“{}曰:學(xué)而時(shí)習(xí)之,{}”.format(“孔子”,“不亦說乎”)顯示:孔子曰:學(xué)而時(shí)習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用

3.通過format()方法中參數(shù)的序號(hào)可以在模板字符串的槽中指定參數(shù)的使用位置,參數(shù)從0開始編號(hào)。例如:>>>“{1}曰:學(xué)而時(shí)習(xí)之,{0}”.format(“不亦說乎”,“孔子”)顯示:孔子曰:學(xué)而時(shí)習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用

4.如果希望在模板字符串中直接輸出大括號(hào)“{}”,則可以使用“{{”表示“{”,使用“}}”表示“}”。例如:>>>“{1}曰:{{學(xué)而時(shí)習(xí)之,{0}}}。”.format(“不亦說乎”,“孔子”)顯示:孔子曰:{學(xué)而時(shí)習(xí)之,不亦說乎。}2.3.4format()方法的基本使用二、format()方法的格式控制

format()方法中模板字符串的槽除了包括參數(shù)序號(hào),還可以包括格式控制信息,語法格式如下:

{<參數(shù)序號(hào)>:<格式控制標(biāo)記>}

其中,格式控制標(biāo)記用來控制參數(shù)顯示時(shí)的格式。序號(hào)字段說明1<填充>指寬度內(nèi)除了參數(shù)外的字符。2<對齊>指參數(shù)在寬度內(nèi)輸出時(shí)的對齊方式,分別使用<、>、^三個(gè)符號(hào)表示左對齊、右對齊和居中對齊。3<寬度>指當(dāng)前槽的設(shè)定輸出字符寬度,如果該槽對應(yīng)的format()參數(shù)長度比<寬度>設(shè)定值大,則使用參數(shù)實(shí)際長度,如果該值的實(shí)際位數(shù)小于指定寬度,則位數(shù)將被默認(rèn)以空格補(bǔ)充。4<,>用于顯示數(shù)字類型的千位分隔符,適用于整數(shù)和浮點(diǎn)數(shù)。5<.精度>對于浮點(diǎn)數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。6<類型>整數(shù)類型包括:b、c、d、o、x、X;浮點(diǎn)類型包括:e、E、f、%。2.4不同數(shù)據(jù)類型的轉(zhuǎn)換Python提供了內(nèi)置轉(zhuǎn)換函數(shù)用來在數(shù)據(jù)類型之間進(jìn)行轉(zhuǎn)換。序號(hào)轉(zhuǎn)換函數(shù)說明例子1bool(x)返回x轉(zhuǎn)換的布爾值bool(3),bool(0)2int(x)返回x轉(zhuǎn)換的整數(shù)int(“3”),int(4.3)3float(x)返回x轉(zhuǎn)換的浮點(diǎn)數(shù)float(“3.14”),float(7)4complex(real,imag)或complex(x)創(chuàng)建real+imagj的復(fù)數(shù),或者將字符串轉(zhuǎn)換為復(fù)數(shù)complex(2,5.7),complex(“2+3j”5str(x)返回x轉(zhuǎn)換的字符串str(246),str(3.14)6ord(x)返回字符x對應(yīng)的ASCII值ord(“a”),ord(“A”)7chr(x)返回整數(shù)x對應(yīng)的ASCII值對應(yīng)的字符chr(97),chr(65)8bin(x)返回整數(shù)x轉(zhuǎn)換的二進(jìn)制字符串bin(246)9oct(x)返回整數(shù)x轉(zhuǎn)換的八進(jìn)制字符串oct(246)10hex(x)返回整數(shù)x轉(zhuǎn)換的十六進(jìn)制字符串hex(246)2.4不同數(shù)據(jù)類型的轉(zhuǎn)換例2-17print(bool(3),bool(0))print(int(“3”),int(4.3))print(float(“3.14”),float(7))print(complex(2,5.7),complex(“2+3j”))print(str(246),str(3.14))print(ord(“a”),ord(“A”))print(chr(97),chr(65))print(bin(246))print(oct(246))print(hex(246))思維導(dǎo)圖Python數(shù)據(jù)分析及應(yīng)用第三章程序的控制結(jié)構(gòu)目錄

3.1程序的基本結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)3.3程序的循環(huán)結(jié)構(gòu)3.4程序的異常處理3.5Random庫的使用知識(shí)目標(biāo):掌握程序的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),掌握單分支、二分支和多分支三種選擇結(jié)構(gòu),掌握for循環(huán)、while循環(huán)兩種循環(huán)結(jié)構(gòu)。技能目標(biāo):理解分支的概念及程序控制的關(guān)系,掌握二分支決策方法,掌握多分支決策方法,掌握for循環(huán)的使用方法,掌握while循環(huán)的使用方法。素質(zhì)目標(biāo):具備一定的決策能力和規(guī)劃能力,具備發(fā)展的眼光,培養(yǎng)全局思維,能夠合理規(guī)劃自己的職業(yè)生涯。學(xué)習(xí)目標(biāo)

稅收取之于民、用之于民,我們在履行納稅的法定義務(wù)時(shí),也在享受稅收給整個(gè)社會(huì)帶來的積極影響。以個(gè)人所得稅為例,目前個(gè)人所得稅的起征點(diǎn)是5000,并且采用差額累進(jìn)制。只有收入超過5000元時(shí)我們才需要繳納個(gè)人所得稅,收入越高需要繳納的稅款越多,并且國家還考慮到撫養(yǎng)小孩和贍養(yǎng)老人的壓力,提高了個(gè)人所得稅的起征點(diǎn)。目前,個(gè)人工資扣稅標(biāo)準(zhǔn)規(guī)定:月薪5000元以下免稅,5000-8000元稅率為3%,8000-17000元為10%,17000-30000元為20%,30000-40000元為25%,40000-60000元為30%,60000-85000元為35%,85000元以上為45%。如何設(shè)計(jì)一個(gè)Python程序計(jì)算個(gè)人所得稅?本章導(dǎo)讀

結(jié)構(gòu)化編程鼓勵(lì)將復(fù)雜問題分解成一系列簡單、明確的步驟,使得代碼易于理解。清晰的模塊劃分和邏輯流程使得整個(gè)程序的結(jié)構(gòu)清晰,目標(biāo)明確,便于理解和維護(hù)。采用結(jié)構(gòu)化程序設(shè)計(jì)方法可以顯著提高程序的可讀性、可維護(hù)性、可靠性、效率以及適應(yīng)變化的能力。Python的程序控制結(jié)構(gòu)主要包括順序結(jié)構(gòu)、選擇結(jié)構(gòu)(分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。這三種控制結(jié)構(gòu)也是結(jié)構(gòu)化程序設(shè)計(jì)的核心,與之相對的是面向?qū)ο蟪绦蛟O(shè)計(jì)。C語言就是結(jié)構(gòu)化語言,而C++、Java或者Python等都是面向?qū)ο蟮恼Z言。調(diào)試Python程序時(shí),經(jīng)常會(huì)報(bào)出一些異常。一方面可能是寫程序時(shí)由于疏忽或者考慮不全造成了錯(cuò)誤,這時(shí)就需要根據(jù)異常分析程序結(jié)構(gòu),改正錯(cuò)誤;另一方面,有些異常是不可避免的,但我們可以對異常進(jìn)行捕獲處理,防止程序終止。本章導(dǎo)讀1.順序結(jié)構(gòu)順序結(jié)構(gòu)的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)的程序設(shè)計(jì)是最簡單的,它表示程序按照代碼的書寫順序從上到下依次執(zhí)行,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行。3.1程序的基本結(jié)構(gòu)程序由語句構(gòu)成,根據(jù)項(xiàng)目或者算法的實(shí)際需求執(zhí)行語句,程序的具體執(zhí)行是由流程控制語句實(shí)現(xiàn)的。結(jié)構(gòu)化程序設(shè)計(jì)分三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)(分支結(jié)構(gòu))、循環(huán)結(jié)構(gòu)。采用結(jié)構(gòu)化程序設(shè)計(jì)方法,程序結(jié)構(gòu)清晰,易于閱讀、測試、排錯(cuò)和修改。由于每個(gè)模塊執(zhí)行單一功能,模塊間聯(lián)系較少,使程序編制比過去更簡單,程序更可靠,而且增加了可維護(hù)性,每個(gè)模塊可以獨(dú)立編制、測試。ABC圖3-1順序結(jié)構(gòu)的流程圖2.選擇結(jié)構(gòu)選擇結(jié)構(gòu)(分支結(jié)構(gòu))是程序根據(jù)條件表達(dá)式的值來決定執(zhí)行哪一部分的代碼。顧名思義,當(dāng)程序到了一定的處理過程時(shí),遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行,選擇結(jié)構(gòu)有單分支、二分支和多分支三種形式。3.1程序的基本結(jié)構(gòu)

圖3-2選擇結(jié)構(gòu)的流程圖AB條件a)FTA條件b)FT3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)用于重復(fù)執(zhí)行一段代碼,直到滿足某個(gè)條件為止。語句不斷的重復(fù),被稱作循環(huán),循環(huán)結(jié)構(gòu)通常用來表示反復(fù)執(zhí)行一個(gè)程序或某些操作的過程,直到某條件為假(或?yàn)檎?時(shí)才可終止循環(huán)。在循環(huán)結(jié)構(gòu)中最主要的是:什么時(shí)候可以執(zhí)行循環(huán)?出現(xiàn)哪些操作需要循環(huán)執(zhí)行?3.1程序的基本結(jié)構(gòu)圖3-3循環(huán)結(jié)構(gòu)的流程圖分支A條件FT3.2程序的選擇結(jié)構(gòu)選擇結(jié)構(gòu)顧名思義,當(dāng)程序到了一定的處理過程時(shí),遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行。選擇結(jié)構(gòu)有單一條件分支選擇結(jié)構(gòu)(if)、二條件分支選擇結(jié)構(gòu)(else從句)、多條件分支選擇結(jié)構(gòu)(elif子句)三種形式。在Python中,選擇結(jié)構(gòu)通常使用if、elif和else語句來實(shí)現(xiàn)。這些語句允許程序根據(jù)條件測試的結(jié)果執(zhí)行不同的代碼塊。在選擇結(jié)構(gòu)中,if語句用來檢驗(yàn)一個(gè)條件,如果條件為真,我們運(yùn)行一塊語句(稱為if-塊),否則我們處理另外一塊語句(稱為else-塊),如果有多個(gè)分支選擇,再根據(jù)分支條件,選擇對應(yīng)的語句塊處理(稱為elif-塊)。else從句和elif子句是可選的。選擇結(jié)構(gòu)由三部分組成:關(guān)鍵字本身,用于判斷結(jié)果真假的條件表達(dá)式,以及當(dāng)表達(dá)式為真(True)或者非零時(shí)執(zhí)行的代碼塊。3.2程序的選擇結(jié)構(gòu)選擇結(jié)構(gòu)顧名思義,當(dāng)程序到了一定的處理過程時(shí),遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行。選擇結(jié)構(gòu)有單一條件分支選擇結(jié)構(gòu)(if)、二條件分支選擇結(jié)構(gòu)(else從句)、多條件分支選擇結(jié)構(gòu)(elif子句)三種形式。在Python中,選擇結(jié)構(gòu)通常使用if、elif和else語句來實(shí)現(xiàn)。這些語句允許程序根據(jù)條件測試的結(jié)果執(zhí)行不同的代碼塊。在選擇結(jié)構(gòu)中,if語句用來檢驗(yàn)一個(gè)條件,如果條件為真,我們運(yùn)行一塊語句(稱為if-塊),否則我們處理另外一塊語句(稱為else-塊),如果有多個(gè)分支選擇,再根據(jù)分支條件,選擇對應(yīng)的語句塊處理(稱為elif-塊)。else從句和elif子句是可選的。選擇結(jié)構(gòu)由三部分組成:關(guān)鍵字本身,用于判斷結(jié)果真假的條件表達(dá)式,以及當(dāng)表達(dá)式為真(True)或者非零時(shí)執(zhí)行的代碼塊。3.2程序的選擇結(jié)構(gòu)選擇結(jié)構(gòu)當(dāng)條件為真時(shí),執(zhí)行相應(yīng)的代碼塊。如何判斷條件的真假?在Python中,任何非零,非空對象都是真,除真和None以外其他的都是假(False)。條件判斷使用關(guān)系運(yùn)算符和邏輯運(yùn)算符來表示。Python中的比較運(yùn)算符,如表3-1所示;Python中的邏輯運(yùn)算符,如表3-2所示。操作符描述x

==

yx等于yx!=

yx不等于yx>

yx大于yx<

yx小于yx>=

yx大于等于yx<=

yx小于等于yx

is

yx和y是同一個(gè)對象x

isnot

yx和y不是同一個(gè)對象x

in

yx是y的成員x

notin

yx不是y的成員表3-1“Python中的比較運(yùn)算符表3-1“Python中的比較運(yùn)算符運(yùn)算符邏輯表達(dá)式描述andxandy布爾"與"-如果x為False,xandy返回False,否則它返回y的計(jì)算值orxory布爾"或"-如果x是True,它返回True,否則它返回y的計(jì)算值notnotx布爾"非"-如果x為True,返回False。如果x為False,它返回True3.2.1單分支選擇結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)if語句是最基本的條件判斷結(jié)構(gòu),用于測試一個(gè)條件是否為真(True)。如果條件為真,則執(zhí)行緊跟在if后面的代碼塊。單分支選擇結(jié)構(gòu)的if語句語法格式如下:if<條件>:<語句塊1>if語句根據(jù)給出的條件,決定下一步怎么做?如果條件為真(True),就執(zhí)行語句塊1中的代碼,為假(False)就不執(zhí)行語句塊1中的代碼。無論條件為真或者為假,控制都會(huì)轉(zhuǎn)到if語句后的下一條語句。實(shí)例3-1計(jì)算個(gè)人所得稅(單分支示例),假設(shè)月薪5000元以上稅率為3%。salary=eval(input("請輸入月薪:"))tax=0ifsalary>5000:tax=salary*0.03income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實(shí)際收入:{}元".format(salary,tax,income))程序運(yùn)行結(jié)果:請輸入月薪:6899月薪:6899元,本月繳稅:206.97元,實(shí)際收入:6692.03元在這個(gè)程序中,用戶輸入月薪,然后判斷月薪是否大于5000元,如果月薪大于5000元,計(jì)算所得稅為月薪的3%。在這個(gè)例子中,使用eval(input())語句函數(shù)取得用戶輸入的月薪。3.2.2二分支選擇結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu)增加了else語句,根據(jù)判斷條件結(jié)果而選擇不同向前路徑的運(yùn)行方式。if-else語句用于測試一個(gè)條件,如果該條件為真,則執(zhí)行if代碼塊;否則,執(zhí)行else代碼塊。在實(shí)例3-1計(jì)算個(gè)人所得稅(單分支示例)中,用戶輸入月薪,然后判斷月薪是否大于5000元,如果月薪大于5000元,使得if語句的條件為真,程序執(zhí)行語句塊1中的代碼,計(jì)算所得稅為月薪的3%。如果月薪小于或者等于5000元,可以用else語句增加另外的選擇。二分支選擇結(jié)構(gòu)的if-else語句語法格式如下:if<條件>:<語句塊1>else:<語句塊2>實(shí)例3-2計(jì)算個(gè)人所得稅(二分支示例),假設(shè)月薪5000元以上稅率為3%,月薪小于或者等于5000元稅率為0。salary=eval(input("請輸入月薪:"))ifsalary>5000:tax=salary*0.03else:tax=0income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實(shí)際收入:{}元".format(salary,tax,income))程序運(yùn)行結(jié)果:請輸入月薪:4500月薪:4500元,本月繳稅:0元,實(shí)際收入:4500元二分支選擇結(jié)構(gòu)緊湊形式的if-else語句語法格式如下:<表達(dá)式1>if<條件>else<表達(dá)式2>實(shí)例3-3計(jì)算個(gè)人所得稅(二分支緊湊形式示例),假設(shè)月薪5000元以上稅率為3%,月薪小于或者等于5000元稅率為0。salary=eval(input("請輸入月薪:"))print("本月繳稅:",salary*0.03)if(salary>5000)elseprint("本月繳稅:",0)程序運(yùn)行結(jié)果:請輸入月薪:6899本月繳稅:206.973.2.3多分支選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu)的if-else語句只有兩種選擇,如果有多個(gè)條件需要多種選擇,可以使用elif語句。elif語句(是elseif的縮寫),它檢查多個(gè)表達(dá)式是否為真,并在為真時(shí)執(zhí)行特定代碼塊中的代碼。如果所有的if和elif條件都不滿足,則執(zhí)行最后的else部分。和else一樣,elif聲明是可選的,不同的是,if語句后最多只能有一個(gè)else語句,但可以有任意數(shù)量的elif語句。3.2程序的選擇結(jié)構(gòu)多分支選擇結(jié)構(gòu)的if-elif-else語句語法格式如下:if<條件1>:<語句塊1>elif<條件2>:<語句塊2>……elif<條件N-1>:<語句塊N-1>else:<語句塊N>3.2.3多分支選擇結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)實(shí)例3-4計(jì)算個(gè)人所得稅(多分支示例)月薪5000元以下免稅,5000-8000元稅率為3%,8000-17000元為10%,17000-30000元為20%,30000-40000元為25%,40000-60000元為30%,60000-85000元為35%,85000元以上為45%。salary=eval(input("請輸入月薪:"))ifsalary<=5000:tax=0elifsalary<=8000:tax=(salary-5000)*0.03elifsalary<=17000:tax=(salary-8000)*0.1+3000*0.03elifsalary<=30000:tax=(salary-17000)*0.2+3000*0.03+9000*0.1elifsalary<=40000:tax=(salary-30000)*0.25+3000*0.03+9000*0.1+13000*0.2elifsalary<=60000:tax=(salary-40000)*0.3+3000*0.03+9000*0.1+13000*0.2+10000*0.25elifsalary<=850000:tax=(salary-60000)*0.35+3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3else:tax=(salary-85000)*0.45+3000*0.03+9000*0.1+13000*0.2+10000*0.25+20000*0.3+25000*0.35income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實(shí)際收入:{}元".format(salary,tax,income))程序運(yùn)行結(jié)果:請輸入月薪:4500月薪:4500元,本月繳稅:0元,實(shí)際收入:4500元3.2.3多分支選擇結(jié)構(gòu)如果將計(jì)算表達(dá)式中的數(shù)值預(yù)先計(jì)算出,實(shí)例3-4可以改寫為簡化形式。3.2程序的選擇結(jié)構(gòu)實(shí)例3-5計(jì)算個(gè)人所得稅(多分支示例)簡化形式。salary=eval(input("請輸入月薪:"))ifsalary<=5000:tax=0elifsalary<=8000:tax=salary*0.03-150elifsalary<=17000:tax=salary*0.1-710elifsalary<=30000:tax=salary*0.2-2410elifsalary<=40000:tax=salary*0.25-3910elifsalary<=60000:tax=salary*0.3-5910elifsalary<=850000:tax=salary*0.35-8910else:tax=salary*0.45-17410income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實(shí)際收入:{}元".format(salary,tax,income))程序運(yùn)行結(jié)果:請輸入月薪:8000月薪:8000元,本月繳稅:90.0元,實(shí)際收入:7910.0元實(shí)例3-6判斷股票是否漲?;蛘叩?多分支示例)漲停和跌停的設(shè)定是根據(jù)股票價(jià)格波動(dòng)的情況來確定的。在中國A股市場中,漲停價(jià)格和跌停價(jià)格的計(jì)算分別為:漲停價(jià)格=前一個(gè)交易日收盤價(jià)×1.1跌停價(jià)格=前一個(gè)交易日收盤價(jià)×0.93.2程序的選擇結(jié)構(gòu)如果某只股票的前一個(gè)交易日收盤價(jià)為10元,那么當(dāng)天的漲停價(jià)為11元,跌停價(jià)為9元close=eval(input("請輸入股票的前一個(gè)交易日收盤價(jià):"))nowprice=eval(input("請輸入股票交易價(jià)格:"))top=close*1.1low=close*0.9ifnowprice<low:print(“股票交易價(jià)格{}小于跌停價(jià){},股票不能在當(dāng)前價(jià)格交易?!?format(nowprice,low))elifnowprice==low:print(“股票交易價(jià)格{}等于跌停價(jià){},股票交易將停盤?!?format(nowprice,low))elifnowprice==top:print(“股票交易價(jià)格{}等于漲停價(jià){},股票交易將停盤。”.format(nowprice,top))elifnowprice>top:print(“股票交易價(jià)格{}大于漲停價(jià){},股票不能在當(dāng)前價(jià)格交易?!?format(nowprice,top))else:print(“股票可以正常交易?!?format(nowprice,top))程序運(yùn)行結(jié)果:請輸入股票的前一個(gè)交易日收盤價(jià):51請輸入股票交易價(jià)格:58股票交易價(jià)格58大于漲停價(jià)56.1,股票不能在當(dāng)前價(jià)格交易。3.3 程序的循環(huán)結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)是編程語言中用于執(zhí)行重復(fù)任務(wù)的一類控制結(jié)構(gòu)。循環(huán)允許一段代碼多次執(zhí)行,直到滿足某個(gè)終止條件。怎么樣才能重復(fù)多次呢?循環(huán)語句在某種條件下,循環(huán)的執(zhí)行某段代碼塊,并在符合條件的情況下跳出該段循環(huán),其目的重復(fù)的處理相同任務(wù),Python循環(huán)語句主要有for語句和while語句。循環(huán)結(jié)構(gòu)For語句While語句特殊的流程控制語句Break語句Continue語句(一)for語句基礎(chǔ)語法3.3.1for語句1.for語句語法格式一for迭代變量in遍歷序列:執(zhí)行語句......(1)執(zhí)行過程:依次將‘遍歷序列’的每一個(gè)值傳遞給‘迭代變量’,每傳遞一個(gè)值時(shí)執(zhí)行一次內(nèi)部語句,直至‘遍歷序列’的最后一個(gè)元素,for語句退出。(2)遍歷序列可以是字符串(str),列表(list),元組(tuple)…。實(shí)例3-7遍歷字符串。strs=”ThisisPython”forcinstrs:print(c,end="*")程序運(yùn)行結(jié)果:T*h*i*s**i*s**P*y*t*h*o*n*實(shí)例3-8遍歷股票過去5個(gè)交易日的收盤價(jià)列表。closing=[52.45,55.20,53.75,56.50,53.80]forpriceinclosing:print(price)程序運(yùn)行結(jié)果:52.4555.253.7556.553.8(一)for語句基礎(chǔ)語法3.3.1for語句2.for語句語法格式二for迭代變量inrange(start,end[,step]):

執(zhí)行語句......參數(shù)說明:start:初始值(默認(rèn)為‘0’)end:終止值step:步進(jìn)值(默認(rèn)為‘1’),即每次重復(fù)操作時(shí)比上一次操作所增長的數(shù)值。執(zhí)行過程:第一步:將start值傳遞給‘迭代變量’,然后執(zhí)行一次內(nèi)部語句;第二步:在start的基礎(chǔ)上+step再次傳遞給‘迭代變量’,如果‘迭代變量’的值小于‘end’的值,則再次執(zhí)行內(nèi)部語句,否則退出for循環(huán)。實(shí)例3-9輸出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print("{}*{}={:2}".format(j,i,j*i),end="")print()程序運(yùn)行結(jié)果:1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=306*6=361*7=72*7=143*7=214*7=285*7=356*7=427*7=491*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=641*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81(一)for語句基礎(chǔ)語法3.3.1for語句2.for語句語法格式二實(shí)例3-10輸出100以前的偶數(shù)foriinrange(0,101,2):print(i,end="")程序運(yùn)行結(jié)果:024681012

溫馨提示

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

評(píng)論

0/150

提交評(píng)論