




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章Python基礎語法主講人:***13-10月-23Python數據分析與數據挖掘目錄contents標識符與變量0102輸入與輸出03Python數據結構04運算符與表達式程序的流程控制052.1標識符與變量012.1.1
Python標識符Python中的標識符可以由英文、數字以及下劃線(_)組成,但不能以數字開頭。Python中的標識符是區分大小寫的。以下劃線開頭的標識符有特殊意義:以單下劃線開頭的(如_test)代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用fromxxximport*的形式導入;以雙下劃線開頭的(如__test)代表類的私有成員;以雙下劃線開頭和結尾的(如__test__)代表Python里特殊方法專用的標識,如__init__()代表類的構造函數。2.1.2
Python關鍵字關鍵字是在Python內部已經使用的標識符,這些關鍵字不能用作常數或變數,或任何其他標識符名稱。可以使用如下語句查看Python中的關鍵字。[例2-1]查看Python中的關鍵字。2.1.3變量與賦值Python的變量一般不需要聲明,可以根據賦值給變量的數據來自動確定變量的類型,然后分配相應的存儲空間。
定義一個變量,就是向內存申請一個帶地址的訪問空間對象,用來存儲數據,可以通過變量名找到(指向)這個值。內存中變量主要包括變量的標識、名稱和數據這些信息。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。等號(=)用來給變量賦值。等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。2.2輸入與輸出022.2.1數據輸入Python中從鍵盤輸入數據可以使用input()函數,該函數的返回值是字符串。語法:變量名=input(“輸入提示信息字符串”)功能:從標準輸入讀取一行,并以字符串形式返回,去掉結尾的換行符。[例2-2]input函數輸入數據
Input函數[例2-3]input函數外使用類型轉換函數
2.2.1數據輸入Python可以使用eval函數接收多個數據輸入,字符串數據輸入時要帶上引號,間隔符必須是逗號。語法:eval(expression[,globals[,locals]])功能:eval()函數用來執行一個字符串表達式,并返回表達式的值。[例2-4]eval函數輸入數據
eval函數2.2.1數據輸入input()函數會把所有輸入值(包括數字)視為字符串。若a=input(),輸入數字123后,用type(a)輸出a的類型,將顯示為<class'str'>
eval()函數將會去掉字符串最外層的引號,將其解釋為一個變量。
若b=eval(input()),輸入數字123后,用type(b)輸出b的類型,將顯示為<class'int'>,即整型。input函數和eval函數區別2.2.2數據輸出
Python中最常用的數據輸出方式就是使用print()函數,與相關格式化函數組合使用,如:使用(%)或str.format()函數來格式化輸出值;用repr()或str()函數將輸出的值轉成字符串。語法:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)功能:把objects中每個對象都轉化為字符串的形式,然后寫到file參數指定的文件中,默認是標準輸出(sys.stdout)。每一個對象之間用sep所指的參數進行分隔,默認是空格。所有對象都寫到文件后,會寫入end參數所指字符,默認是換行。2.2.2數據輸出格式:%[(name)][flags][width].[precision]typecode[例2-5]字符串百分號(%)格式化輸出
字符串%格式輸出常見格式化對照說明輸出類型格式說明整數輸出%o按oct八進制輸出整數%d按dec十進制輸出整數%x按hex十六進制輸出整數浮點數輸出%f保留小數點后面六位有效數字%.nf,保留n位小數位%e保留小數點后面六位有效數字,指數形式輸出%.3e,保留3位小數位,使用科學計數法%g在保證六位有效數字的前提下,使用小數方式,否則使用科學計數法,%.3g,保留3位有效數字,使用小數或科學計數法字符串輸出%s字符串輸出%10s右對齊,占位符10位%-10s左對齊,占位符10位%.2s截取2位字符串%10.2s10位占位符,截取兩位字符串2.2.2數據輸出Format()函數把字符串當成一個模板,通過傳入的參數進行格式化,并且使用大括號‘{}’作為特殊字符代替‘%’格式:[[fill]align][sign][#][0][width][,][.precision][type][例2-6]按位置訪問參數輸出實例。
format函數格式化輸出[例2-8]對齊文本并指定寬度輸出實例。[例2-7]按名稱訪問參數輸出實例[例2-9]編寫程序,輸入三個分數,計算并輸出平均分,輸出結果保留2位小數。2.2.3輸入和輸出實踐例題2.2.3輸入和輸出實踐例題[例2-10]編寫程序,將華氏溫度轉成攝氏溫度,換算公式:C=(H-32)*5.0/9,其中C是攝氏溫度,H是華氏溫度。[例2-11]打印99乘法表,并按左下三角格式輸出。2.2.3輸入和輸出實踐例題2.3Python數據結構032.3.1標量-基本數據類型Python使用對象模型來存儲數據,每一個數據類型都有一個相對應的內置類,新建一個數據,實際就是在初始化并生成一個對象。基本數據類型主要包括:整型(int):可以是正整數或負整數,無小數點、無大小限制。整數類型包括:十進制整數、二進制整數(以0b開頭)、八進制整數(以0o開頭)及十六進制整數(以0x開頭)。浮點型(float):由整數部分和小數部分組成,也可以使用科學計數法表示。布爾型(bool):運算結果是True和False常量,這兩個常量的值仍然是1和0,可以和數值型數據進行運算。復數(complex):由實數部分和虛數部分構成,可以用a+bj,或者complex(a,b)表示,復數的實部a和虛部b都是浮點型。
[例2-12]數值數據類型及轉換測試。
2.3.2序列類型序列類型包括列表、元組和字符串,這些類型有相同的訪問模式,包括:可以通過下標位移量來訪問序列中的元素,可以通過切片的方式一次性得到列表中多個元素。序列的常用操作符(注意優先級順序從高到低)方法說明Seq[index]返回序列中下標為index的元素Seq[in1:in2]返回序列中下標從in1到in2之間的元素集合Seq[i:j:k]按間隔k,返回序列中下標從i到j之間的元素集合Seq*n序列重復n次Seq1+Seq2兩個序列連接elementinseq判斷元素是否在序列中elementnotinseq判斷元素是否不在序列中s.index(x[,
i[,
j]])x在s中首次出現的索引(或在索引i處或之后,在索引j之前)seq.count(x)返回x在序列中出現的次數2.3.2序列類型序列類型的類型轉換函數可以用來在列表、元組和字符串幾種序列類型間進行轉換。表2-3序列類型轉換函數
函數說明list(iter)把可迭代對象轉換為列表tuple(obj)把一個可迭代對象轉換為元組對象str(obj)把obj對象轉換為字符串對象其他常用序列類型函數:len()、max()、min()、sorted(),請自行練習。
2.3.2序列類型1、創建:用方括號括起所有元素,并且元素之間用逗號分隔。一對空的方括號表示空列表。列表2、截取:使用方括號([])的切片,其中,列表使用從前往后從0開始的正向索引或從-1開始的從后往前的逆向索引來標注元素的位置列表的數據項可以進行修改或更新:使用del語句來刪除列表的元素。列表運算符“+”用于合并列表,“*”用于重復列表。[例2-14]列表的截取。[例2-13]列表的創建
2.3.2序列類型3、列表方法列表方法說明list.append(x)添加元素x到列表末尾list.extend(iter)將另一個列表添加到列表的末尾list.insert(i,x)在下標為i的元素之前加入一個元素list.remove(x)從列表里刪除第一個值為x的元素list.pop([i])刪除列表中給定位置的項,然后將其返回。如果沒有指定索引,a.pop()將刪除并返回列表中的最后一項list.clear()從列表中刪除所有元素list.count(x)返回x出現在列表中的次數list.sort(key=None,reverse=False)對原列表中的項目進行排序list.reverse()反轉列表元素list.copy()返回列表的shadow副本。相當于a[:]3.1序列類型列表4、解析:對列表中的每個元素應用一個函數進行計算,從而將一個列表映射為另一個列表,稱為列表解析。列表解析的基本語法格式如下:[<表達式>for<變量>in<列表>][<表達式>for<變量>in<列表>if<條件>][例2-16]列表實例,注意以下兩種寫法等價:[例2-17]列表的解析
2.3.2序列類型元組是元素的有序序列,與列表類似不同之處在于元組中的元素值不能修改。元組的創建很簡單,只需要在括號中添加元素,并使用逗號隔開即可,元組中沒有append,extend和insert等方法。元組的內置函數包括len,max,min,tuple等。[例2-18]元組的創建及訪問。元組2.3.2序列類型Python中的字符串是一個有序字符的集合,用于表示和存儲文本信息。字符串可以使用單引號(')、雙引號(")或三引號(''')來創建。其中,三引號允許一個字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符。Python中,可以使用‘+’、“*”等運算符對字符串進行連接及重復等運算。Python提供了豐富的字符串內建函數,可以對字符串實現查找、檢測、大小寫轉換等功能。字符串[例2-19]字符串創建。[例2-20]字符串的運算符。字符串常用的字符串運算符2.3.2序列類型常用的字符串內建函數字符串[例2-21]字符串的內建函數。2.3.3映射類型-字典字典是Python中一種非常有用的映射類型,可以存儲任意類型對象。字典中的每個數據稱作項,項由鍵/值對組成,每個鍵/值對(key=>value)用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中,格式如下所示:dict={key1:value1,key2:value2}常見操作:訪問字典中的值增加新的鍵/值對修改或刪除已有鍵/值對刪除字典元素檢測字典中是否存在鍵
[例2-22]字典實例
2.3.4集合類型Python中的集合(set)是不重復元素的無序集合。常用功能:成員關系測試,消除重復元素,科學計算,如并、交、差、對稱差等。分類:可變集合(set)、不可變集合(frozenset)可變集合:可以添加和刪除元素不可變集合:不允許添加和刪除元素[例2-23]集合實例
2.3.5數據結構實踐例題[例2-24]列表實例,用列表判斷輸入的字符串是不是回文。[例2-25]
集合實例,用0-10間的隨機數生成一個長度為20的列表,統計其中各個數出現的頻率。[例2-26]列表實例,從鍵盤輸入一個單詞sdel,將字符串sall中與sdel相同的單詞都刪除。[例2-27]字符串實例,愷撒密碼,也稱移位密碼,是最簡單和最廣為人知的加密技術之一。它是一種替換密碼,其中明文中的每一個字母都被一個字母替換,這個字母在字母表中的位置是固定的。例如,如果右移2,a將被c替換,b將變為d,依此類推,如圖2.2所示。這種方法是以凱撒大帝的名字命名的,他在私人信件中使用了這種方法。[例2-28]字典實例,統計data目錄下文件ci.txt中保存的歌曲“Myheartwillgoon”中的詞頻,將詞頻排在前10的單詞輸出。運算符與表達式042.4運算符與表達式賦值運算符:=(簡單的賦值運算符),+=(加法賦值運算符),-=(減法賦值運算符),*=(乘法賦值運算符),/=(除法賦值運算符),%=(取模賦值運算符),**=(冪賦值運算符),//=(取整除賦值運算符)等。算術運算符:+(加),-(減)
,*(乘),/(除),%(取模,返回除法的余數),**(冪,返回x的y次冪),//(取整除,向下取接近除數的整數)等。比較運算符:==(等于,比較對象是否相等),!= (不等于,比較兩個對象是否不相等),>(大于,返回x是否大于y),< (小于,返回x是否小于y),>=(大于等于,返回x是否大于等于y),<=(小于等于,返回x是否小于等于y)。邏輯運算符:and(與),or(或)和not(非)。Python中的運算符包括:賦值運算符、算術運算符、比較(關系)運算符、邏輯運算符、位運算符、成員運算符等。
表達式是將不同類型的數據(常量、變量、函數)用運算符按照一定的規則連接起來的式子。2.4運算符與表達式實例[例2-29]算術運算符實例,計算圓錐體的體積和表面積。[例2-30]邏輯運算符實例,閏年判斷。2.4運算符與表達式實例流程控制052.5.1順序結構順序結構是流程控制中最簡單的一種結構,該結構的特點是按照語句的先后次序依次執行,每條語句只執行一次。[例2-31]計算橢球的表面積和體積。[例2-32]繪制正方形。1、if-else條件語句if條件:
條件為真時要執行的語句塊else:
條件為假時要執行的語句塊2、if-elif-else判斷語句if條件1:
條件1為真時執行的語句塊1elif條件2:
條件1為假且條件2為真時執行的語句塊2elif條件n:
條件1至條件n-1全部為假且條件n為真時執行的語句塊nelse:
上述條件都不滿足時執行的語句塊n+14、switch語句的替代方案定義一個字典調用字典的get()獲取相應的表達式。3、if語句的嵌套if條件1: if條件2:
條件1為真且條件2為真時執行的語句塊1 else:
條件1為真且條件2為假時執行的語句塊2else:條件1為假時執行的語句塊32.5.2選擇結構2.5.2選擇結構實例[例2-33]從用戶輸入的三個數中輸出最大的數。[例2-34]猜數字游戲。2.5.2選擇結構實例[例2-35]成績等級換算[例2-36]身體質量指數BMI計算,計算方法如圖2.3所示。2.5.2選擇結構實例[例2-37]判斷三角形的類型。[例2-38]判斷駕駛員酒醉駕。2.5.2選擇結構[例2-39]簡單的計算器。[例2-40]阿拉伯數字轉換。2.5.3循環結構循環是指在滿足一定條件的情況下,重復執行一組語句的結構,其中重復執行的語句稱作循環體。循環結構設計三要素如下:初始化語句:循環控制變量賦初值或其他循環中用到的變量的初始化。循環條件:循環結構繼續執行的條件,是一個結果為True或False的表達式。迭代語句:通常是循環控制變量的改變,且朝著循環結束條件的方向變化,從而使得循環可以正常結束。2.5.3循環結構語法格式: [初始化語句] while(循環條件):
語句塊
[迭代語句][例2-41]自然數求和。While循環[例2-42]判斷計算結果。2.5.3循環結構for語句的基本形式:for<變量>in<序列>:循環體語句塊其中,序列可以是等差數列、字符串、列表、元組或者是一個文件對象。for循環[例2-43]計算分數之和。[例2-44]計算1-2+3-4+……+999-1000之和。2.5.3循環結構break語句:中途從循環結構中退出。continue語句:跳過循環體中未執行的語句,返回到循環體的頭部繼續執行新一輪的循環。Break&continue[例2-45]用戶登錄模擬[例2-46]計算最大公約數和最小公倍數。2.5.3循環結構Python支持在循環語句中關聯else語句。如果else語句和for循環語句一起使用,else塊只在for循環正常終止時執行(而不是遇到break語句),如果else語句用在while循環中,當條件變為False時,則執行else語句。[例2-47]判斷素數。循環中的else語句2.5.3循環結構循環結構的循環體內可以包含任意Python語句,因此也可以包含另外的循環結構,稱為嵌套循環。特點:最外層的循環稱為外循環,所包含的循環稱為內循環;內循環必須完全包含在外循環中;外循環和內循環的控制變量不能相同;在嵌套循環結構中,嵌套的層數可以是任意的。嵌套循環[例2-48]輸出三位的水仙花數,它的每個位上的數字的3次冪之和等于它本身(例如:1^3+5^3+3^3=153)2.5.3循環結構在循環結構中,for或while語句之后必須緊跟至少包含一條語句的縮進語句塊,然而有些情況下需要一個沒有循環體語句塊的循環結構,這種情況可以使用pass語句,pass語句是一個“什么也不做”的占位符語句。[例2-49]選擇與循環結構實例,判斷10以內的素數。Pass語句本章實踐例題062.6本章實踐例題[例2-50]用循環實現猜拳游戲。2.6本章實踐例題[例2-51]用循環實現猜數字游戲。2.6本章實踐例題[例2-52]用循環和條件判斷實現評分過程模擬。2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025廣泛應用的設備租賃合同內容
- 2025流動資金貸款技術改進合同協議書范本模板
- 安全問題筆試題及答案
- 安全上崗測試題及答案
- 眉山藥科職業學院《管理研究方法與科研寫作》2023-2024學年第二學期期末試卷
- 天津商業大學寶德學院《康復評定學B》2023-2024學年第二學期期末試卷
- 華東交通大學《信息可視化設計》2023-2024學年第二學期期末試卷
- 2025年合同解除的常見理由解析
- 2025農業技術服務合同
- 2025天津市稻草(稻草纖維)訂單合同范文
- 2025福建三明經開區控股集團有限公司子公司招聘16人筆試參考題庫附帶答案詳解析集合
- PMP模擬題(一)+答案
- 租戶裝修期內退租協議書
- 廣東省廣州荔灣區真光中學2025年高二下物理期末學業水平測試試題含解析
- 2025-2030全球及中國工業電源(SMPS)行業市場現狀供需分析及投資評估規劃分析研究報告
- 交通強國背景下的智慧交通發展趨勢預測
- 七匹狼存貨管理:供應鏈視角下的分析
- 物流倉儲規劃方案設計
- 2025年應用統計與數據科學考試試卷及答案
- GB/T 36066-2025潔凈室及相關受控環境檢測技術要求與應用
- 綜合素養測試題及答案
評論
0/150
提交評論