




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quá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ù)據(jù)分析及數(shù)據(jù)分析的基本流程;了解Python語言的發(fā)展及特點、開發(fā)環(huán)境的配置;掌握Python程序的編寫方法及基本語法規(guī)則。(2)技能目標:理解數(shù)據(jù)分析的基本流程;掌握Python語言解釋器的安裝方法、Anaconda開發(fā)環(huán)境的安裝方法及Python第三方庫的安裝與使用;掌握Python程序的編寫方法。(3)素質(zhì)目標:具備一定的計算思維能力和程序設(shè)計能力。3學(xué)習(xí)目標天氣數(shù)據(jù)分析每天我們都會關(guān)注天氣信息,增減衣物、安排出行等。商家利用天氣數(shù)據(jù)分析消費者的購物行為和出行習(xí)慣,從而制定更具針對性的營銷策略。通過分析土壤溫度、降雨量等數(shù)據(jù),農(nóng)民可以更準確地決定種植何種作物、何時播種或灌溉。政府部門通過分析天氣數(shù)據(jù)來預(yù)測自然災(zāi)害對社會經(jīng)濟的影響,從而制定更加精準的防災(zāi)減災(zāi)政策。隨著科技的進步和數(shù)據(jù)采集與分析能力的提升,天氣數(shù)據(jù)分析將在未來發(fā)揮更為重要的作用。那么如何來進行天氣數(shù)據(jù)分析?4本章導(dǎo)讀什么是數(shù)據(jù)分析?數(shù)據(jù)分析是指用適當?shù)慕y(tǒng)計分析方法對收集來的大量數(shù)據(jù)進行分析,將它們加以匯總和理解并消化,以求最大化地開發(fā)數(shù)據(jù)的功能,發(fā)揮數(shù)據(jù)的作用。數(shù)據(jù)分析是為了提取有用信息和形成結(jié)論而對數(shù)據(jù)加以詳細研究和概括總結(jié)的過程。51.1數(shù)據(jù)分析基礎(chǔ)在統(tǒng)計應(yīng)用中,數(shù)據(jù)分析可分為描述性統(tǒng)計、探索性數(shù)據(jù)分析(EDA)和驗證性數(shù)據(jù)分析(CDA)。EDA側(cè)重于發(fā)現(xiàn)數(shù)據(jù)中的新特征,而CDA則側(cè)重于確認或偽造現(xiàn)有假設(shè)。預(yù)測分析側(cè)重于應(yīng)用統(tǒng)計模型進行預(yù)測或分類,而文本數(shù)據(jù)分析主要是從文本源中提取信息并對其進行分類,如詞頻分析、語義分析、主題分析、情感分析、文本聚類等。61.1數(shù)據(jù)分析基礎(chǔ)數(shù)據(jù)分析基本流程(1)數(shù)據(jù)采集或獲取(2)數(shù)據(jù)預(yù)處理和存儲(3)數(shù)據(jù)建模和分析(4)數(shù)據(jù)可視化分析(5)數(shù)據(jù)報表和總結(jié)71.1數(shù)據(jù)分析基礎(chǔ)為什么選用Python進行數(shù)據(jù)分析?Python入門簡單,代碼可讀性強Python是開源的,它擁有非常多優(yōu)秀的庫Python與開源大數(shù)據(jù)平臺Hadoop具有很好的兼容性Python不受數(shù)據(jù)規(guī)模的約束,能夠處理大規(guī)模數(shù)據(jù)Python能夠繪制各種前沿的數(shù)據(jù)圖表Python在海量數(shù)據(jù)采集方面也有獨特的優(yōu)勢81.1數(shù)據(jù)分析基礎(chǔ)GuidovanRossumPython語言創(chuàng)立者2000年,Python2.x2008年,Python3.x目前,絕大部分Python函數(shù)庫和Python程序員都采用3.0版本系列語法和解釋器91.2Python語言概述Python語言的特點簡單易學(xué)速度快免費、開源可移植性解釋性面向?qū)ο罂蓴U展性可嵌入性豐富的庫101.2Python語言概述Python語言解釋器的安裝到Python主頁下載并安裝Python基本開發(fā)和運行環(huán)境,網(wǎng)址:/downloads/
根據(jù)操作系統(tǒng)不同選擇不同版本
下載相應(yīng)的Python3.0系列版本程序111.3
Python語言開發(fā)環(huán)境配置啟動Windows命令行工具,輸入python調(diào)用IDLE來啟動Python圖形化運行環(huán)境按照語法格式編寫代碼,編寫可以用任何文本編輯器,保存為文件打開IDLE,點擊Ctrl+N打開一個新窗口,輸入語句并保存,使用快鍵建F5即可運行該程序121.3
Python語言開發(fā)環(huán)境配置Anaconda開發(fā)環(huán)境的安裝Anaconda是一種更加高效、智能的Python集成開發(fā)環(huán)境。Anaconda集成了很多和數(shù)據(jù)科學(xué)、機器學(xué)習(xí)相關(guān)的Python第三方開源庫,更友好和方便;Anaconda提供了包管理與環(huán)境管理的功能,可以很方便的解決多版本Python并存、切換以及各種第三方包安裝問題。131.3
Python語言開發(fā)環(huán)境配置從開始菜單啟動Spyder或者Jupyter,就可以編寫自己的Python程序了。141.3Python語言開發(fā)環(huán)境配置Python有一套很有用的標準庫(standardlibrary)。標準庫會隨著Python解釋器一起安裝在你的電腦中的。它是Python的一個組成部分。這些標準庫是Python為程序員準備好的利器,可以讓編程事半功倍。同時Python社區(qū)提供了大量的第三方模塊,使用方式與標準庫類似。它們的功能無所不包,覆蓋科學(xué)計算、Web開發(fā)、數(shù)據(jù)庫接口、圖形系統(tǒng)多個領(lǐng)域,并且大多成熟而穩(wěn)定。151.3Python語言開發(fā)環(huán)境配置Pythonpip的安裝與使用pip是Python包管理工具,該工具提供了對Python包的查找、下載、安裝、卸載的功能。在命令行(控制臺)中輸入以下命令來判斷是否已安裝:pip–version未安裝,則可以使用以下方法來安裝:$curlhttps://bootstrap.pypa.io/get-pip.py–oget-pip.py#下載安裝腳本$sudopython3get-pip.py#運行安裝腳本161.3Python語言開發(fā)環(huán)境配置Pyinstaller庫的安裝與使用Pyinstaller是一個十分有用的第三方庫,它能夠在Windows、Linux、MacOSX等操作系統(tǒng)下將Python源文件打包,通過對源文件打包,Python程序可以在沒有安裝Python的環(huán)境中運行,也可以作為一個獨立文件方便傳遞和管理。Pyinstaller需要在命令行下用pip工具安裝:pipinstallpyinstaller171.3Python語言開發(fā)環(huán)境配置編寫自己的Python程序?qū)嵗?.1編寫并運行第一個hello程序使用Python輸出"HelloWorld!"的代碼為:print("Hello,World!")找到并運行Python3.12的IDLE,在“>>>”提示符后輸入代碼:print("Hello,World!"),然后回車,就可以得到運行結(jié)果。181.3Python語言開發(fā)環(huán)境配置Python程序運行方式運行Python程序有兩種方式,交互式和文件式。交互式即Python解釋器即時響應(yīng)用戶輸入的每條代碼,給出輸出結(jié)果。文件式則需要將Python代碼寫在一個或多個文件中,通常可以按照Python的語法格式編寫代碼,并保存成.py格式的文件,然后由Python解釋器批量執(zhí)行文件中的代碼。191.3Python語言開發(fā)環(huán)境配置實例1.2長方形面積的計算在IDLE中選擇“File”|“NewFile”,在打開的窗口中輸入以下代碼:a=4b=7s=a*bprint(“s=”,s)選擇“File”|“Save”,保存文件,選擇“Run”|“RunModule”,得到運行結(jié)果201.3Python語言開發(fā)環(huán)境配置實例1.3繪制一個五角星importturtleimporttimeturtle.pensize(4)turtle.pencolor("yellow")#畫筆黃色turtle.fillcolor("red")#內(nèi)部填充紅色#繪制五角星#turtle.begin_fill()for_inrange(5):#重復(fù)執(zhí)行5次
turtle.forward(200)#向前移動200步
turtle.right(144)#向右移動144度,注意這里的參數(shù)一定不能變turtle.end_fill()#結(jié)束填充紅色time.sleep(1)211.3Python語言開發(fā)環(huán)境配置本節(jié)以GDP(國內(nèi)生產(chǎn)總值)計算為例,介紹Python程序的結(jié)構(gòu)及基本語法規(guī)則。實例1.4GDP計算:2023年,中國GDP約17.89萬億美元,增速為5.20%,美國GDP約27.36萬億美元,增速為2.5%,按此增長率多少年后中國的GDP能超過美國的GDP值。如果中國GDP增速可以達到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ī)則縮進與對齊Python程序代碼通過縮進和對齊表示代碼間的邏輯關(guān)系,相同縮進的代碼視為同一代碼塊。縮進指代碼開頭的空格,一次縮進為4個空格(按一下tab鍵)。處于同一邏輯關(guān)系或?qū)哟渭墑e相同的代碼具有相同的縮進,即對齊。縮進和對齊增強了代碼的可讀性,使代碼層次分明,邏輯關(guān)系清晰。如實例1.4中第6到第8行代碼從屬于第5行代碼,他們構(gòu)成代碼的縮進結(jié)構(gòu)。231.4Python基本語法規(guī)則注釋注釋是對代碼進行解釋或說明的文字信息,它能夠增強程序的可讀性,幫助理解代碼,注釋不會被編譯和執(zhí)行。注釋分為單行注釋和多行注釋,單行注釋以#開頭。多行注釋以′′′(3個單引號或者雙引號)開頭和結(jié)尾。單行注釋用法:#這是一個單行注釋print("helloworld!")#放置在語句之后的注釋多行注釋用法:'''這是一個多行注釋,使用單引號這是一個多行注釋,使用單引號
'''241.4Python基本語法規(guī)則變量變量指其值會發(fā)生變化的量,變量的名字叫做變量名。變量名是標識符的一種,必須要遵守Python標識符命名規(guī)則,標識符由字母、數(shù)字、下劃線“_”組成,但不能以數(shù)字開頭,如abc、ab_1、Abc_2_1等。以下劃線開頭的標識符有特殊含義,應(yīng)避免使用以下劃線開頭的標識符。標識符不能和Python保留字或函數(shù)名相同。Python標識符是嚴格區(qū)分大小寫的。標識符命名應(yīng)既要簡短又具有描述性。251.4Python基本語法規(guī)則賦值Python變量的賦值是指將數(shù)據(jù)放入變量的過程。變量無須聲明數(shù)據(jù)類型就可以直接賦值,變量的類型和值在賦值那一刻被初始化。變量賦值通過賦值號“=”來執(zhí)行,它的作用是將“=”右邊的值分配給“=”左邊的變量。Python還可以同時給多個變量賦同一個值。261.4Python基本語法規(guī)則幾個變量賦值的例子>>>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賦值運算符281.4Python基本語法規(guī)則運算符描述示例=將右側(cè)數(shù)值或表達式的值賦給左側(cè)變量c=5表示將數(shù)值5賦給c+=將右側(cè)的值加到左側(cè)的變量上,并將結(jié)果賦給左側(cè)的變量。c+=3等價于c=c+3-=從左側(cè)的變量中減去右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c-=3
等價于
c=c-3*=將左側(cè)的變量乘以右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c*=5
等價于
c=c*5/=將左側(cè)的變量除以右側(cè)的值,并將結(jié)果賦給左側(cè)的變量。c/=2
等價于
c=c/2%=計算左側(cè)的變量除以右側(cè)值的余數(shù),并將結(jié)果賦給左側(cè)的變量。c%=5
等價于
c=c%5**=執(zhí)行指數(shù)(冪)計算,并將結(jié)果賦給左側(cè)的變量c**=3
等價于
c=c**3//=執(zhí)行整數(shù)除法,將左側(cè)的變量除以右側(cè)的值并向下取整,然后將結(jié)果賦給左側(cè)的變量。c//=6
等價于
c=c//6保留字保留字指被編程語言內(nèi)部定義并使用的標識符,被賦予了特殊的意義。這些標識符不能再作為例如變量名、函數(shù)名或任何其他用戶定義的名字。每個保留字都有其特定的用途和規(guī)則。每一種程序設(shè)計語言都有保留字。291.4Python基本語法規(guī)則輸入input()用于獲得用戶輸入的值,無論用戶輸入什么內(nèi)容,input()的返回值始終是字符型。書寫格式為:<變量>=input(<提示信息>)例如:>>>input("請輸入一個數(shù)字:")>>>請輸入一個數(shù)字:96.56’96.56’>>>input("請輸入一串字符:")>>>請輸入一串字符:Helloworld!’Helloworld!’由此可見,不論用戶輸入的是字符還是數(shù)字,最終都變成一串字符(兩邊有單引號定界)。301.4Python基本語法規(guī)則輸出print()用于輸出信息或變量的值,它可以將文本、變量、表達式等內(nèi)容打印出來,方便進行調(diào)試和查看結(jié)果。書寫格式為:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)其中,objects是要打印的對象,可以是一個或多個。sep是分隔符,用于將多個對象之間進行分隔,默認為一個空格。end是結(jié)束符,用于在打印完所有對象之后添加一個字符,默認為換行符。file是輸出流,用于指定打印的目標,默認為sys.stdout,即標準輸出流。flush是一個布爾值,用于指定是否立即刷新輸出,默認為False。311.4Python基本語法規(guī)則當輸出變量時,可以采用格式化輸出方式,使用format()規(guī)定輸出的格式,format()的詳細介紹見后續(xù)章節(jié)。例如:(1)輸出文本:>>>print("Hello,World!")
(2)輸出變量的值>>>x=10>>>print(x)(3)輸出多個對象>>>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ù)值運算2.3字符串類型2.4不同數(shù)據(jù)類型的轉(zhuǎn)換知識目標:?了解Python中常見的基本數(shù)據(jù)類型;?掌握不同數(shù)據(jù)類型的定義規(guī)則和表示方法;?理解每種數(shù)據(jù)類型的特點、適用場景和存儲方式;?熟悉數(shù)據(jù)類型之間的轉(zhuǎn)換方法和規(guī)則。36學(xué)習(xí)目標技能目標:?能夠準確地定義和使用各種基本數(shù)據(jù)類型來存儲和處理數(shù)據(jù);?熟練進行數(shù)據(jù)類型的轉(zhuǎn)換操作,以滿足不同的計算和邏輯需求;?運用所學(xué)的數(shù)據(jù)類型,編寫具有實際功能的代碼段,解決簡單的問題;?能夠?qū)?fù)雜的數(shù)據(jù)結(jié)構(gòu)進行分析和操作;?具備調(diào)試代碼的能力,能夠識別和解決由于數(shù)據(jù)類型使用不當導(dǎo)致的錯誤。37學(xué)習(xí)目標素質(zhì)目標:?培養(yǎng)嚴謹?shù)倪壿嬎季S,確保在編程中對數(shù)據(jù)類型的選擇和使用準確無誤;?提高問題解決的能力,通過合理運用數(shù)據(jù)類型來優(yōu)化代碼的可讀性和可維護性;?養(yǎng)成良好的編程習(xí)慣,注重代碼規(guī)范和注釋;?培養(yǎng)耐心和細心,在處理數(shù)據(jù)類型相關(guān)問題時,能夠仔細檢查和排查錯誤。38學(xué)習(xí)目標
在Python編程的世界里,數(shù)據(jù)類型是構(gòu)建代碼大廈的基石。就如同建造房屋需要各種不同的材料一樣,編寫有效的程序也依賴于對數(shù)據(jù)類型的準確理解和運用。
在這一章中,我們將一同探索Python豐富多樣的基本數(shù)據(jù)類型。深入了解整數(shù)、浮點數(shù)、字符串和布爾值等常見數(shù)據(jù)類型的奧秘。
整數(shù)和浮點數(shù)是處理數(shù)值運算的得力助手,它們分別適用于不同精度和范圍的數(shù)字計算。字符串則是文本信息的載體,學(xué)會如何創(chuàng)建、操作和處理字符串,讓文字在代碼中發(fā)揮神奇的作用。而布爾值作為邏輯判斷的基礎(chǔ),將幫助構(gòu)建條件語句和控制程序的流程。
通過學(xué)習(xí)本章,將不僅掌握這些基本數(shù)據(jù)類型的概念和用法,還能理解它們在內(nèi)存中的存儲方式和特點。這將為后續(xù)編寫復(fù)雜、高效的程序打下堅實的基礎(chǔ),在Python編程的征程上邁出堅實的一步!39本章導(dǎo)讀Python提供了豐富的數(shù)值類型,支持4種數(shù)值類型:包括整型(int)、浮點型(float)、布爾型(bool)和復(fù)數(shù)型(complex)。每種類型都有其獨特的特點和用途。402.1數(shù)值類型表示方法有4種:十進制、二進制、八進制和十六進制。默認情況采用十進制,其他進制需要加引導(dǎo)符號。412.1.1整型(int)進制類型引導(dǎo)符號描述十進制不需要默認情況。如:123,-243二進制0b或0B由字符0、1組成。如:0b1100,0B101011八進制0o或0O(注意:后一個是大寫字母O)由字符0到7組成。如:0o137,0O564十六進制0x或0X由字符0到9、a到f(或A到F)組成。如:0x9AF,0X678
例2-1print(123,-243)print(0o137,0O564)print(0x9AF,0X678)2.1.1整型(int)
整型特點:(1)無大小限制(受限于可用內(nèi)存)。(2)支持二進制、八進制、十進制和十六進制表示,但結(jié)果顯示都是十進制數(shù)。(3)支持常見的算術(shù)運算(加、減、乘、除、取模、冪運算)。Python的內(nèi)置函數(shù)能夠進行整數(shù)的進制轉(zhuǎn)換如下表。序號轉(zhuǎn)換函數(shù)描述實例1bin(x)將十進制整數(shù)x轉(zhuǎn)換成二進制整數(shù)bin(246)2oct(x)將十進制整數(shù)x轉(zhuǎn)換成八進制整數(shù)oct(246)3hex(x)將十進制整數(shù)x轉(zhuǎn)換成十六進制整數(shù)hex(246)4int(x,n)將n進制字符串或數(shù)字x轉(zhuǎ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浮點型(float)浮點數(shù)用于表示帶有小數(shù)部分的數(shù)值。浮點數(shù)有兩種表示方法:十進制表示和科學(xué)計數(shù)法表示。十進制表示:3.14、2.75、-123.6科學(xué)計數(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)換成浮點類型數(shù)據(jù)。2.1.2浮點型(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、真和假、對和錯、成立和不成立等。在邏輯判斷中,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ù)由實部和虛部組成,形式為real+imagj(或real+imagJ),其中real是實部,imag是虛部,j或J表示虛數(shù)單位,real、imag都是浮點數(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ù)值運算
運算符與表達式運算符:表示運算的符號稱為運算符。Python常用的運算符有算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、復(fù)合運算符、標識運算符和位運算符等。操作數(shù):表示運算的對象稱為操作數(shù)。操作數(shù)可以是常量、變量或函數(shù)等。表達式:描述對哪些數(shù)據(jù)進行什么樣的運算。如1+2就是一個算術(shù)表達式,“+”是運算符,1、2是操作數(shù)。2.2.1基本運算
一、算術(shù)運算符
算術(shù)運算符一般是用來實現(xiàn)數(shù)學(xué)運算的,由算術(shù)運算符連接常量或變量所構(gòu)成的表達式稱為算術(shù)表達式。除負號外,所有的算術(shù)運算符均為雙目運算符。序號運算符說明例子(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基本運算
例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基本運算
二、關(guān)系運算符
關(guān)系運算符一般用來比較運算符兩邊的操作數(shù),由關(guān)系運算符連接兩個操作數(shù)的表達式稱為關(guān)系表達式,被連接的操作數(shù)可以是常量、變量、算術(shù)表達式、邏輯表達式、賦值表達式等。若關(guān)系表達式成立,則結(jié)果為True(真),否則為False(假)。所有的關(guān)系運算符均為雙目運算符。序號關(guān)系運算符說明例子x=5,y=2)1==是否相等x==y,值為False2!=是否不相等x!=y,值為True3>當左>右時結(jié)果為Truex>y,值為True4<當左<右時結(jié)果為Truex<y,值為False5>=當左>=右時結(jié)果為Truex>=y,值為True6<=當左<=右時結(jié)果為Truex<=y,值為False2.2.1基本運算
例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基本運算
三、邏輯運算符Python語言中邏輯運算符包括and(邏輯與)、or(邏輯或)和not(邏輯非)三個。邏輯運算符用于對操作數(shù)進行邏輯運算,用邏輯運算符連接的關(guān)系表達式稱為邏輯表達式。邏輯表達式常用于控制程序的流程和條件判斷,幫助開發(fā)者根據(jù)不同的邏輯條件執(zhí)行相應(yīng)的代碼塊。在使用邏輯運算符時,需要注意運算符的優(yōu)先級,not的優(yōu)先級高于and,and的優(yōu)先級高于or。and、or是雙目運算符,not是單目運算符。2.2.1基本運算
xynotxxandyxoryTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalse邏輯運算符邏輯運算符真值表2.2.1基本運算
例2-8:已知判斷年份y是否為閏年的條件為:(1)能被4整除,但不能被100整除;
(2)能被400整除。只要滿足(1)或者(2)中任意一個條件,那么y就是閏年。程序如下:y=int(input(“請輸入年份:”))print(y%4==0andy%100!=0ory%400==0)2.2.1基本運算
四、賦值運算符
在Python中,賦值運算用于將值賦給變量。賦值運算符的主要作用是為變量賦予初始值或更新變量的值,以便在程序中進行后續(xù)的計算和操作。
在中學(xué)階段的數(shù)學(xué)中,等號“=”的含義是判斷等號兩邊的數(shù)值是否相等。但在Python中,“=”的含義是賦值運算,讀作賦值號,將“=”賦值號右邊的數(shù)值賦給左邊的變量。而要判斷兩邊數(shù)值是否相等用關(guān)系運算符“==”。
基本語法格式為:
變量=表達式
作用:將“=”賦值號右邊的表達式值賦給左邊的變量。
注意:在使用賦值運算時,需要注意變量的數(shù)據(jù)類型以及賦值表達式的合法性,以避免出現(xiàn)錯誤。2.2.1基本運算
例2-9賦值運算符的靈活運用a=b=c=10#同一值賦給多個變量print(a,b,c)a,b,c=2,4,6#一行代碼實現(xiàn)多個值賦給多個變量,順序很重要print(a,b,c)a1=2.3#交換兩個變量的值a2=87.9a1,a2=a2,a1print(a1,a2)2.2.1基本運算
五、復(fù)合運算符
復(fù)合運算符是將某種算術(shù)運算符和賦值運算符結(jié)合起來,形成一種簡潔的寫法。在Python語言中,基本賦值運算符“=”與7種算術(shù)運算符(+、-、*、/、%、//、**)結(jié)合成復(fù)合賦值運算符,其功能是先計算算術(shù)運算,然后再賦值。
基本語法格式為:
變量
算術(shù)運算符=表達式
相當于:變量=變量
算術(shù)運算符
表達式
作用:先計算算術(shù)運算與表達式的結(jié)果,然后再賦給左邊的變量。序號復(fù)合賦值運算符說明例子(x=5,y=2)1+=加法賦值x+=y,相當于x=x+y,x值為72-=減法賦值x-=y,相當于x=x-y,x值為33*=乘法賦值x*=y,相當于x=x*y,x值為104/=除法賦值x/=y,相當于x=x/y,x值為2.55//=整除賦值x//=y,相當于x=x//y,x值為26%=求余賦值x%=y,相當于x=x%y,x值為17**=指數(shù)賦值x**=y,相當于x=x**y,x值為252.2.1基本運算
六、運算符的優(yōu)先級
Python語言中規(guī)定,在同一個表達式中出現(xiàn)多個運算符時,要先計算優(yōu)先級高的運算。當出現(xiàn)多個優(yōu)先級相同的運算符時,按照結(jié)合性確定計算次序。括號可以改變優(yōu)先級順序,有括號時優(yōu)先計算括號內(nèi)的表達式。序號運算符運算符說明結(jié)合性優(yōu)先級順序1()圓括號從左至右高
低2**乘方從左至右3*、/、//、%乘除從左至右4+、-加減從左至右5==、!=、>、>=、<、<=關(guān)系運算符從左至右6=、+=、-=、*=、/=、//=、%=、**=賦值運算符和復(fù)合賦值運算符從右至左7not非從右至左8and與從左至右9or或從左至右2.2.1基本運算
例2-10x=5;y=2z=x+y*6#運算順序為:*、+w=x+y**x*10#運算順序為:**、*、+m=(7*(x+4))**2/(9*(x+y))#用圓括號改變運算順序print(z,w,m)2.2.2數(shù)值運算函數(shù)
Python內(nèi)置的數(shù)學(xué)函數(shù)能夠完成數(shù)學(xué)計算。Python提供了豐富的數(shù)學(xué)函數(shù),通過math模塊可以訪問更多高級的數(shù)學(xué)運算。序號函數(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)對浮點數(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)將字符串中的表達式求值,返回計算結(jié)果eval(“1+2+3+4+5”),返回值為152.2.2數(shù)值運算函數(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ù)據(jù)都是字符串,如姓名、住址、身份證號、學(xué)號等,其中一些雖然完全由阿拉伯數(shù)字構(gòu)成,但不是數(shù)值而是字符串。字符串是常見的一種數(shù)據(jù)類型,程序中經(jīng)常會有對字符串進行各種處理的需求,因此Python語言中提供了字符串類型,可以對字符串進行各種處理操作。
字符串是一個字符序列,它可以包含字母、數(shù)字、標點符號等文本形式的字符。字符的個數(shù)稱為字符串的長度,長度為0的字符串稱為空字符串。2.3.1字符串的創(chuàng)建
Python中的字符串是一個有序的字符序列,可以用單引號、雙引號或三引號表示。其中,單引號和雙引號均用來表示單行字符串。使用單引號時,雙引號可以作為字符串的一部分;使用雙引號時,單引號可以作為字符串的一部分;三引號可以表示單行或多行字符串。例2-12print(‘ILikePython!’)print(“Let’sProgram!”)print(“““Let’sProgram!”””)2.3.2轉(zhuǎn)義字符
Python使用引號標記字符串,但引號本身不屬于字符串內(nèi)容。引號自身就是一個特殊的存在,這樣會產(chǎn)生一個問題,如何表達字符串正文內(nèi)容中的引號?一般有兩種方法來實現(xiàn):一是使用和待輸出的引號不同的引號來標記字符串;二是使用轉(zhuǎn)義字符。
轉(zhuǎn)義字符以反斜線號為前綴,用于避免字符的二義性,或者描述一些不方便通過鍵盤直接輸入的特殊字符。轉(zhuǎn)義字符說明轉(zhuǎn)義字符說明\\反斜線號\’單引號
\n換行符,將鼠標指針移到下一行開頭\r回車符,將鼠標指針移到本行開頭\”雙引號\f換頁符\t橫向制表符,即<Tab>鍵\b退格,即<Backspace>鍵2.3.2轉(zhuǎn)義字符例2-13print(‘《九月九日憶山東兄弟》’)print(‘\t——唐·王維’)print(“獨在異鄉(xiāng)為異客,每逢佳節(jié)倍思親。\n遙知兄弟登高處,遍插茱萸少一人。”)2.3.3字符串基本操作一、字符串索引操作
字符串索引就是字符的索引,可以通過字符串索引訪問和操作字符。字符串索引分正向索引和負向索引。
(1)正向索引:從左到右排列,默認從0開始,從左到右標記字符依次為0、1、2、…,最大范圍是字符串長度減1。
(2)負向索引:從右到左排列,默認從-1開始,從右到左標記字符依次為-1、-2、-3、…。例如:字符串:Student正向索引:0123456負向索引:-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三、字符串連接操作字符串連接操作使用加號(+)將兩個字符串連接起來。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ū)間。基本語法格式如下:<字符串>[start:end:step]
說明:start表示子串的起始位置,end表示子串的終止位置(不含end對應(yīng)的字符,即end-1),step表示步長。start、end和step均可省略,start的默認值為0,end的默認值為字符串長度,step默認步長為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ù)。序號函數(shù)說明1len(s)返回字符串的長度2str(s)返回任意類型s的字符串形式3chr(x)返回ASCII值x對應(yīng)的字符4ord(s)返回字符s對應(yīng)的ASCII值5hex(x)返回整數(shù)x對應(yīng)十六進制數(shù)的小寫形式字符串6oct(x)返回整數(shù)x對應(yīng)八進制數(shù)的小寫形式字符串2.3.3字符串基本操作七、字符串常用處理方法Python語言中字符串的方法很多,這里介紹一些常用的方法。序號方法說明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表示被替換的子串個數(shù)2.3.4format()方法的基本使用一、format()方法的使用
在Python中,format方法是一種用于字符串格式化的強大工具。它允許將變量或表達式插入到字符串中,并能根據(jù)需要進行格式化。
Python推薦使用format()方法整合字符串,語法格式如下:
<模板字符串>.format(<用逗號分隔的參數(shù)>)2.3.4format()方法的基本使用一、format()方法的使用
說明:
1.模板字符串是一個由字符串和槽組成的字符串,用于控制字符串和變量的顯示效果。槽用大括號“{}”表示,對應(yīng)format()方法中用逗號分隔的參數(shù)。例如:在學(xué)習(xí)強國APP學(xué)習(xí)平臺封面有一句孔子的詩句如下:>>>“孔子曰:學(xué)而時習(xí)之,{}”.format(“不亦說乎”)顯示:孔子曰:學(xué)而時習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用
2.如果模板字符串中有多個槽,且槽內(nèi)沒有指定序號,則按照槽出現(xiàn)的順序分別對應(yīng)format()方法中不同參數(shù)。例如:>>>“{}曰:學(xué)而時習(xí)之,{}”.format(“孔子”,“不亦說乎”)顯示:孔子曰:學(xué)而時習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用
3.通過format()方法中參數(shù)的序號可以在模板字符串的槽中指定參數(shù)的使用位置,參數(shù)從0開始編號。例如:>>>“{1}曰:學(xué)而時習(xí)之,{0}”.format(“不亦說乎”,“孔子”)顯示:孔子曰:學(xué)而時習(xí)之,不亦說乎。2.3.4format()方法的基本使用一、format()方法的使用
4.如果希望在模板字符串中直接輸出大括號“{}”,則可以使用“{{”表示“{”,使用“}}”表示“}”。例如:>>>“{1}曰:{{學(xué)而時習(xí)之,{0}}}。”.format(“不亦說乎”,“孔子”)顯示:孔子曰:{學(xué)而時習(xí)之,不亦說乎。}2.3.4format()方法的基本使用二、format()方法的格式控制
format()方法中模板字符串的槽除了包括參數(shù)序號,還可以包括格式控制信息,語法格式如下:
{<參數(shù)序號>:<格式控制標記>}
其中,格式控制標記用來控制參數(shù)顯示時的格式。序號字段說明1<填充>指寬度內(nèi)除了參數(shù)外的字符。2<對齊>指參數(shù)在寬度內(nèi)輸出時的對齊方式,分別使用<、>、^三個符號表示左對齊、右對齊和居中對齊。3<寬度>指當前槽的設(shè)定輸出字符寬度,如果該槽對應(yīng)的format()參數(shù)長度比<寬度>設(shè)定值大,則使用參數(shù)實際長度,如果該值的實際位數(shù)小于指定寬度,則位數(shù)將被默認以空格補充。4<,>用于顯示數(shù)字類型的千位分隔符,適用于整數(shù)和浮點數(shù)。5<.精度>對于浮點數(shù),精度表示小數(shù)部分輸出的有效位數(shù);對于字符串,精度表示輸出的最大長度。6<類型>整數(shù)類型包括:b、c、d、o、x、X;浮點類型包括:e、E、f、%。2.4不同數(shù)據(jù)類型的轉(zhuǎn)換Python提供了內(nèi)置轉(zhuǎn)換函數(shù)用來在數(shù)據(jù)類型之間進行轉(zhuǎn)換。序號轉(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)換的浮點數(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)換的二進制字符串bin(246)9oct(x)返回整數(shù)x轉(zhuǎn)換的八進制字符串oct(246)10hex(x)返回整數(shù)x轉(zhuǎ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庫的使用知識目標:掌握程序的三種基本結(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)。技能目標:理解分支的概念及程序控制的關(guān)系,掌握二分支決策方法,掌握多分支決策方法,掌握for循環(huán)的使用方法,掌握while循環(huán)的使用方法。素質(zhì)目標:具備一定的決策能力和規(guī)劃能力,具備發(fā)展的眼光,培養(yǎng)全局思維,能夠合理規(guī)劃自己的職業(yè)生涯。學(xué)習(xí)目標
稅收取之于民、用之于民,我們在履行納稅的法定義務(wù)時,也在享受稅收給整個社會帶來的積極影響。以個人所得稅為例,目前個人所得稅的起征點是5000,并且采用差額累進制。只有收入超過5000元時我們才需要繳納個人所得稅,收入越高需要繳納的稅款越多,并且國家還考慮到撫養(yǎng)小孩和贍養(yǎng)老人的壓力,提高了個人所得稅的起征點。目前,個人工資扣稅標準規(guī)定:月薪5000元以下免稅,5000-8000元稅率為3%,8000-17000元為10%,17000-30000元為20%,30000-40000元為25%,40000-60000元為30%,60000-85000元為35%,85000元以上為45%。如何設(shè)計一個Python程序計算個人所得稅?本章導(dǎo)讀
結(jié)構(gòu)化編程鼓勵將復(fù)雜問題分解成一系列簡單、明確的步驟,使得代碼易于理解。清晰的模塊劃分和邏輯流程使得整個程序的結(jié)構(gòu)清晰,目標明確,便于理解和維護。采用結(jié)構(gòu)化程序設(shè)計方法可以顯著提高程序的可讀性、可維護性、可靠性、效率以及適應(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è)計的核心,與之相對的是面向?qū)ο蟪绦蛟O(shè)計。C語言就是結(jié)構(gòu)化語言,而C++、Java或者Python等都是面向?qū)ο蟮恼Z言。調(diào)試Python程序時,經(jīng)常會報出一些異常。一方面可能是寫程序時由于疏忽或者考慮不全造成了錯誤,這時就需要根據(jù)異常分析程序結(jié)構(gòu),改正錯誤;另一方面,有些異常是不可避免的,但我們可以對異常進行捕獲處理,防止程序終止。本章導(dǎo)讀1.順序結(jié)構(gòu)順序結(jié)構(gòu)的執(zhí)行順序是自上而下,依次執(zhí)行。順序結(jié)構(gòu)的程序設(shè)計是最簡單的,它表示程序按照代碼的書寫順序從上到下依次執(zhí)行,只要按照解決問題的順序?qū)懗鱿鄳?yīng)的語句就行。3.1程序的基本結(jié)構(gòu)程序由語句構(gòu)成,根據(jù)項目或者算法的實際需求執(zhí)行語句,程序的具體執(zhí)行是由流程控制語句實現(xiàn)的。結(jié)構(gòu)化程序設(shè)計分三種基本結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)(分支結(jié)構(gòu))、循環(huán)結(jié)構(gòu)。采用結(jié)構(gòu)化程序設(shè)計方法,程序結(jié)構(gòu)清晰,易于閱讀、測試、排錯和修改。由于每個模塊執(zhí)行單一功能,模塊間聯(lián)系較少,使程序編制比過去更簡單,程序更可靠,而且增加了可維護性,每個模塊可以獨立編制、測試。ABC圖3-1順序結(jié)構(gòu)的流程圖2.選擇結(jié)構(gòu)選擇結(jié)構(gòu)(分支結(jié)構(gòu))是程序根據(jù)條件表達式的值來決定執(zhí)行哪一部分的代碼。顧名思義,當程序到了一定的處理過程時,遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(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í)行一段代碼,直到滿足某個條件為止。語句不斷的重復(fù),被稱作循環(huán),循環(huán)結(jié)構(gòu)通常用來表示反復(fù)執(zhí)行一個程序或某些操作的過程,直到某條件為假(或為真)時才可終止循環(huán)。在循環(huán)結(jié)構(gòu)中最主要的是:什么時候可以執(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)顧名思義,當程序到了一定的處理過程時,遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(zhí)行。選擇結(jié)構(gòu)有單一條件分支選擇結(jié)構(gòu)(if)、二條件分支選擇結(jié)構(gòu)(else從句)、多條件分支選擇結(jié)構(gòu)(elif子句)三種形式。在Python中,選擇結(jié)構(gòu)通常使用if、elif和else語句來實現(xiàn)。這些語句允許程序根據(jù)條件測試的結(jié)果執(zhí)行不同的代碼塊。在選擇結(jié)構(gòu)中,if語句用來檢驗一個條件,如果條件為真,我們運行一塊語句(稱為if-塊),否則我們處理另外一塊語句(稱為else-塊),如果有多個分支選擇,再根據(jù)分支條件,選擇對應(yīng)的語句塊處理(稱為elif-塊)。else從句和elif子句是可選的。選擇結(jié)構(gòu)由三部分組成:關(guān)鍵字本身,用于判斷結(jié)果真假的條件表達式,以及當表達式為真(True)或者非零時執(zhí)行的代碼塊。3.2程序的選擇結(jié)構(gòu)選擇結(jié)構(gòu)顧名思義,當程序到了一定的處理過程時,遇到了很多分支,無法按直線走下去,程序的處理步驟出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個分支執(zhí)行。選擇結(jié)構(gòu)有單一條件分支選擇結(jié)構(gòu)(if)、二條件分支選擇結(jié)構(gòu)(else從句)、多條件分支選擇結(jié)構(gòu)(elif子句)三種形式。在Python中,選擇結(jié)構(gòu)通常使用if、elif和else語句來實現(xiàn)。這些語句允許程序根據(jù)條件測試的結(jié)果執(zhí)行不同的代碼塊。在選擇結(jié)構(gòu)中,if語句用來檢驗一個條件,如果條件為真,我們運行一塊語句(稱為if-塊),否則我們處理另外一塊語句(稱為else-塊),如果有多個分支選擇,再根據(jù)分支條件,選擇對應(yīng)的語句塊處理(稱為elif-塊)。else從句和elif子句是可選的。選擇結(jié)構(gòu)由三部分組成:關(guān)鍵字本身,用于判斷結(jié)果真假的條件表達式,以及當表達式為真(True)或者非零時執(zhí)行的代碼塊。3.2程序的選擇結(jié)構(gòu)選擇結(jié)構(gòu)當條件為真時,執(zhí)行相應(yīng)的代碼塊。如何判斷條件的真假?在Python中,任何非零,非空對象都是真,除真和None以外其他的都是假(False)。條件判斷使用關(guān)系運算符和邏輯運算符來表示。Python中的比較運算符,如表3-1所示;Python中的邏輯運算符,如表3-2所示。操作符描述x
==
yx等于yx!=
yx不等于yx>
yx大于yx<
yx小于yx>=
yx大于等于yx<=
yx小于等于yx
is
yx和y是同一個對象x
isnot
yx和y不是同一個對象x
in
yx是y的成員x
notin
yx不是y的成員表3-1“Python中的比較運算符表3-1“Python中的比較運算符運算符邏輯表達式描述andxandy布爾"與"-如果x為False,xandy返回False,否則它返回y的計算值orxory布爾"或"-如果x是True,它返回True,否則它返回y的計算值notnotx布爾"非"-如果x為True,返回False。如果x為False,它返回True3.2.1單分支選擇結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)if語句是最基本的條件判斷結(jié)構(gòu),用于測試一個條件是否為真(True)。如果條件為真,則執(zhí)行緊跟在if后面的代碼塊。單分支選擇結(jié)構(gòu)的if語句語法格式如下:if<條件>:<語句塊1>if語句根據(jù)給出的條件,決定下一步怎么做?如果條件為真(True),就執(zhí)行語句塊1中的代碼,為假(False)就不執(zhí)行語句塊1中的代碼。無論條件為真或者為假,控制都會轉(zhuǎn)到if語句后的下一條語句。實例3-1計算個人所得稅(單分支示例),假設(shè)月薪5000元以上稅率為3%。salary=eval(input("請輸入月薪:"))tax=0ifsalary>5000:tax=salary*0.03income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實際收入:{}元".format(salary,tax,income))程序運行結(jié)果:請輸入月薪:6899月薪:6899元,本月繳稅:206.97元,實際收入:6692.03元在這個程序中,用戶輸入月薪,然后判斷月薪是否大于5000元,如果月薪大于5000元,計算所得稅為月薪的3%。在這個例子中,使用eval(input())語句函數(shù)取得用戶輸入的月薪。3.2.2二分支選擇結(jié)構(gòu)3.2程序的選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu)增加了else語句,根據(jù)判斷條件結(jié)果而選擇不同向前路徑的運行方式。if-else語句用于測試一個條件,如果該條件為真,則執(zhí)行if代碼塊;否則,執(zhí)行else代碼塊。在實例3-1計算個人所得稅(單分支示例)中,用戶輸入月薪,然后判斷月薪是否大于5000元,如果月薪大于5000元,使得if語句的條件為真,程序執(zhí)行語句塊1中的代碼,計算所得稅為月薪的3%。如果月薪小于或者等于5000元,可以用else語句增加另外的選擇。二分支選擇結(jié)構(gòu)的if-else語句語法格式如下:if<條件>:<語句塊1>else:<語句塊2>實例3-2計算個人所得稅(二分支示例),假設(shè)月薪5000元以上稅率為3%,月薪小于或者等于5000元稅率為0。salary=eval(input("請輸入月薪:"))ifsalary>5000:tax=salary*0.03else:tax=0income=salary-taxprint("月薪:{}元,本月繳稅:{}元,實際收入:{}元".format(salary,tax,income))程序運行結(jié)果:請輸入月薪:4500月薪:4500元,本月繳稅:0元,實際收入:4500元二分支選擇結(jié)構(gòu)緊湊形式的if-else語句語法格式如下:<表達式1>if<條件>else<表達式2>實例3-3計算個人所得稅(二分支緊湊形式示例),假設(shè)月薪5000元以上稅率為3%,月薪小于或者等于5000元稅率為0。salary=eval(input("請輸入月薪:"))print("本月繳稅:",salary*0.03)if(salary>5000)elseprint("本月繳稅:",0)程序運行結(jié)果:請輸入月薪:6899本月繳稅:206.973.2.3多分支選擇結(jié)構(gòu)二分支選擇結(jié)構(gòu)的if-else語句只有兩種選擇,如果有多個條件需要多種選擇,可以使用elif語句。elif語句(是elseif的縮寫),它檢查多個表達式是否為真,并在為真時執(zhí)行特定代碼塊中的代碼。如果所有的if和elif條件都不滿足,則執(zhí)行最后的else部分。和else一樣,elif聲明是可選的,不同的是,if語句后最多只能有一個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)實例3-4計算個人所得稅(多分支示例)月薪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("月薪:{}元,本月繳稅:{}元,實際收入:{}元".format(salary,tax,income))程序運行結(jié)果:請輸入月薪:4500月薪:4500元,本月繳稅:0元,實際收入:4500元3.2.3多分支選擇結(jié)構(gòu)如果將計算表達式中的數(shù)值預(yù)先計算出,實例3-4可以改寫為簡化形式。3.2程序的選擇結(jié)構(gòu)實例3-5計算個人所得稅(多分支示例)簡化形式。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("月薪:{}元,本月繳稅:{}元,實際收入:{}元".format(salary,tax,income))程序運行結(jié)果:請輸入月薪:8000月薪:8000元,本月繳稅:90.0元,實際收入:7910.0元實例3-6判斷股票是否漲停或者跌停(多分支示例)漲停和跌停的設(shè)定是根據(jù)股票價格波動的情況來確定的。在中國A股市場中,漲停價格和跌停價格的計算分別為:漲停價格=前一個交易日收盤價×1.1跌停價格=前一個交易日收盤價×0.93.2程序的選擇結(jié)構(gòu)如果某只股票的前一個交易日收盤價為10元,那么當天的漲停價為11元,跌停價為9元close=eval(input("請輸入股票的前一個交易日收盤價:"))nowprice=eval(input("請輸入股票交易價格:"))top=close*1.1low=close*0.9ifnowprice<low:print(“股票交易價格{}小于跌停價{},股票不能在當前價格交易。”.format(nowprice,low))elifnowprice==low:print(“股票交易價格{}等于跌停價{},股票交易將停盤。”.format(nowprice,low))elifnowprice==top:print(“股票交易價格{}等于漲停價{},股票交易將停盤。”.format(nowprice,top))elifnowprice>top:print(“股票交易價格{}大于漲停價{},股票不能在當前價格交易。”.format(nowprice,top))else:print(“股票可以正常交易。”.format(nowprice,top))程序運行結(jié)果:請輸入股票的前一個交易日收盤價:51請輸入股票交易價格:58股票交易價格58大于漲停價56.1,股票不能在當前價格交易。3.3 程序的循環(huán)結(jié)構(gòu)程序的循環(huán)結(jié)構(gòu)是編程語言中用于執(zhí)行重復(fù)任務(wù)的一類控制結(jié)構(gòu)。循環(huán)允許一段代碼多次執(zhí)行,直到滿足某個終止條件。怎么樣才能重復(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í)行過程:依次將‘遍歷序列’的每一個值傳遞給‘迭代變量’,每傳遞一個值時執(zhí)行一次內(nèi)部語句,直至‘遍歷序列’的最后一個元素,for語句退出。(2)遍歷序列可以是字符串(str),列表(list),元組(tuple)…。實例3-7遍歷字符串。strs=”ThisisPython”forcinstrs:print(c,end="*")程序運行結(jié)果:T*h*i*s**i*s**P*y*t*h*o*n*實例3-8遍歷股票過去5個交易日的收盤價列表。closing=[52.45,55.20,53.75,56.50,53.80]forpriceinclosing:print(price)程序運行結(jié)果:52.4555.253.7556.553.8(一)for語句基礎(chǔ)語法3.3.1for語句2.for語句語法格式二for迭代變量inrange(start,end[,step]):
執(zhí)行語句......參數(shù)說明:start:初始值(默認為‘0’)end:終止值step:步進值(默認為‘1’),即每次重復(fù)操作時比上一次操作所增長的數(shù)值。執(zhí)行過程:第一步:將start值傳遞給‘迭代變量’,然后執(zhí)行一次內(nèi)部語句;第二步:在start的基礎(chǔ)上+step再次傳遞給‘迭代變量’,如果‘迭代變量’的值小于‘end’的值,則再次執(zhí)行內(nèi)部語句,否則退出for循環(huán)。實例3-9輸出九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print("{}*{}={:2}".format(j,i,j*i),end="")print()程序運行結(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語句語法格式二實例3-10輸出100以前的偶數(shù)foriinrange(0,101,2):print(i,end="")程序運行結(jié)果:024681012
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教管結(jié)合教育大數(shù)據(jù)的挖掘與管理策略
- 眼病的護理課件
- 江西傳媒職業(yè)學(xué)院《光伏技術(shù)與應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 云南農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《大學(xué)英語Ⅳ(藝體類)》2023-2024學(xué)年第二學(xué)期期末試卷
- 洛陽職業(yè)技術(shù)學(xué)院《數(shù)字多媒體作品創(chuàng)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 吉林工程職業(yè)學(xué)院《工程項目投融資》2023-2024學(xué)年第二學(xué)期期末試卷
- 西南民族大學(xué)《城市管理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖北大學(xué)知行學(xué)院《戲劇影視綜合創(chuàng)作(一)》2023-2024學(xué)年第二學(xué)期期末試卷
- 內(nèi)科護理學(xué)急性腎損傷講課件
- 從心理健康角度探討基于共情的家庭教育策略
- 2025春國家開放大學(xué)《毛概》終考大作業(yè)答案
- 疲勞恢復(fù)物理手段-洞察及研究
- 2025年河北省中考學(xué)易金卷地理試卷(原創(chuàng)卷)及參考答案
- 2025年時政100題(附答案)
- 2025年國家英語四級考試試題及答案
- 院感爆發(fā)考試試題及答案
- 會計核算考試題目及答案
- 2024年湖北省南漳縣事業(yè)單位公開招聘教師崗考試題帶答案分析
- 限高架維修合同8篇
- 全麻期間氣道梗阻的預(yù)防與處理
- 工業(yè)大數(shù)據(jù)的安全與隱私保護-洞察闡釋
評論
0/150
提交評論