2-3-python編程基礎知識--基本數據類型_第1頁
2-3-python編程基礎知識--基本數據類型_第2頁
2-3-python編程基礎知識--基本數據類型_第3頁
2-3-python編程基礎知識--基本數據類型_第4頁
2-3-python編程基礎知識--基本數據類型_第5頁
已閱讀5頁,還剩64頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、2-3-python編程基礎知識-基本數據類型ppt2-3-python編程基礎知識-基本數據類型對象類型對象類型類型名稱類型名稱示例示例數字int, float, complex1234, 3.14, 1.3e5, 3+4j數字大小沒有限制,內置支持復數及其運算字符串strswfu, Im student, Python , rabc, Rbcd使用單引號、雙引號、三引號作為定界符,以字母r或R引導的表示原始字符串字節串bytesbhello world以字母b引導,可以使用單引號、雙引號、三引號作為定界符列表list1, 2, 3,a, b, c, 2所有元素放在一對方括號中,元素之間使用

2、逗號分隔,其中的元素可以是任意類型字典dict1:food ,2:taste, 3:import所有元素放在一對大括號中,元素之間使用逗號分隔,元素形式為“鍵:值”tuple(2, -5, 6), (3,)所有元素放在一對圓括號中,元素之間使用逗號分隔,如果元組中只有一個元素的話,后面的逗號不能省略常用內置對象Python的常用內置對象的常用內置對象對象類型對象類型類型名稱類型名稱示例示例簡要說明簡要說明集合setfrozenseta, b, c所有元素放在一對大括號中,元素之間使用逗號分隔,元素不允許重復;另外,set是可變的,而frozenset是不可變的布爾型boolTrue, Fals

3、e邏輯值,關系運算符、成員測試運算符、同一性測試運算符組成的表達式的值一般為True或False空類型NoneTypeNone空值異常Exception、ValueError、TypeError Python內置大量異常類,分別對應不同類型的異常文件 f = open(data.dat, rb)open是Python內置函數,使用指定的模式打開文件,返回文件對象其他迭代對象 生成器對象、range對象、zip對象、enumerate對象、map對象、filter對象等等具有惰性求值的特點編程單元 函數(使用def定義)、類(使用class定義)、模塊(類型為module)類和函數都屬于可調用對

4、象,模塊用來集中存放函數、類、常量或其他對象續表Python的常用內置對象的常用內置對象在Python中,不需要事先聲明變量名及其類型,直接賦值即可創建各種類型的對象變量。這一點適用于Python任意類型的對象。例如: x = 3創建了整型變量x,并賦值為3,再例如語句 x = Hello world.創建了字符串變量x,并賦值為Hello world.Python的常用內置對象的常用內置對象vPython屬于強類型強類型編程語言編程語言,解釋器會根據賦值或運算來自動推斷變量類型。Python還是一種動態類型語言,變量的類型可以隨時變化。 x = 3 print(type(x) x = Hel

5、lo world. print(type(x) #查看變量類型 x = 1,2,3 print(type(x) isinstance(3, int) #測試對象是否是某個類型的實例True isinstance(Hello world, str)TruePython的常用內置對象的常用內置對象type()isinstance()數字類型數字類型 程序元素:010/10,存在多種可能 表示十進制整數值10 類似人名一樣的字符串 數字類型對Python語言中數字的表示和使用 進行了定義和規范數字類型Python語言包括三種數字類型整數類型浮點數類型復數類型整數類型 示例 1010, 99, -21

6、7 0 x9a, -0X89(0 x, 0X開頭表示16進制數) 0b010, -0B101(0b, 0B開頭表示2進制數) 0o123, -0O456(0o, 0O開頭表示8進制數)浮點數類型帶有小數點及小數的數字Python語言中浮點數的數值范圍存在限 制,小數精度也存在限制。這種限制與在不 同計算機系統有關浮點數類型 示例0.0, -77., 96e4, 4.3e-3, 9.6E5(科學計數法)科學計數法使用字母“e”或者“E”作為冪 的符號,以10為基數。科學計數法含義如下:e = a * 10b復數類型與數學中的復數概念一致, z = a + bj, a是實 數部分,b是虛數部分,a

7、和b都是浮點類型,虛數 部分用j或者J標識示例:12.3+4j,-5.6+7j復數類型 z = 1.23e-4+5.6e+89j(實部和虛部是什么?) 對于復數z , 可以用 獲得實數部分,獲得虛數部分 = 0.000123z.imag = 5.6e+89數字類型的運算及操作 三種類型存在一種逐漸“擴展”的關系: 整數 - 浮點數 - 復數 (整數是浮點數特例,浮點數是復數特例)不同數字類型之間可以進行混合運算,運算后生 成結果為最寬類型 = 127.0(整數 + 浮點數 = 浮點數)內置的數值運算操作符內置的數值運算操作符操作符描述x + yx與y之和x - yx與y之差x * yx與y之積

8、x / yx與y之商x / yx與y之整數商,即:不大于x與y之商的最大整數x % yx與y之商的余數,也稱為模運算-xx的負值,即:x*(-1)+xx本身x*yx的y次冪,即:xy內置的數值運算函數Python解釋器提供了一些內置函數(BIF),這些內置函 數中,有6個函數與數值運算相關函數描述abs(x)x的絕對值divmod(x, y)(x/y, x%y),輸出為二元組形式(也稱為元組類型)pow(x, y, z)(x*y)%z,.表示該參數可以省略,即:pow(x,y),它與x*y相同round(x, ndigits)對x四舍五入,保留ndigits位小數。round(x)返回四舍五入

9、的整數值max(x1, x2, , xn)x1, x2, , xn的最大值,n沒有限定min(x1, x2, , xn)x1, x2, , xn的最小值,n沒有限定 打開IDLE 程序1:pow(2,10) , pow(2,15) 程序2:pow(2, 1000) 程序3:pow(2, pow(2,15)內置的數值運算函數數字類型的轉換函數描述int(x)將x轉換為整數,x可以是浮點數或字符串float(x)將x轉換為浮點數,x可以是整數或字符串complex(re, im)生成一個復數,實部為re,虛部為im,re可以是整數、浮點數或字符串,im可以是整數或浮點數但不能為字符串數值運算操作符

10、可以隱式地轉換輸出結果的數字類型例如,兩個整數采用運算符“/”的除法將可能輸出浮點數結果。 此外,通過內置的數字類型轉換函數可以顯式地在數字類型之間進 行轉換數字類型的轉換 三種類型可以相互轉換 函數:int三, float三, complex三 示例: int(4.5) = 4 (直接去掉小數部分) float(4) = (增加小數部分) complex(4) = 4 + 0J數字類型的判斷函數:type(x),返回x的類型,適用于所有類型 的判斷示例:math庫的使用import mathmath庫概述 math庫是Python提供的內置數學類函數庫 math庫不支持復數類型 math庫一

11、共提供了4個數學常數和44個函數。44個函數共分為4類,包括:16個數值表示函數、8個 冪對數函數、16個三角對數函數和4個高等特殊函數math庫概述首先使用保留字import引用該庫第一種:import math對math庫中函數采用math.三形式使用 第二種,from math import 對math庫中函數可以直接采用三形式使用import mathmath.ceil(10.2)11from math import floorfloor(10.2)10math庫解析 math庫包括4個數學常數常數數學表示描述math.pi圓周率,值為3.141592653589793math.ee自

12、然對數,值為2.718281828459045math.inf正無窮大,負無窮大為-math.infmath.nan非浮點數標記,NaN(Not a Number)math庫解析 math庫包括16個數值表示函數函數數學表示描述math.fabs(x)返回x的絕對值math.fmod(x, y)x % y返回x與y的模math.fsum(x,y,)x+y+浮點數精確求和math.ceil(x)向上取整,返回不小于x的最小整數math.floor(x)向下取證,返回不大于x的最大整數math.factorial(x)x!返回x的階乘,如果x是小數或負數,返回ValueErrormath.gcd(

13、a, b)返回a與b的最大公約數math.frepx(x)x = m * 2e返回(m, e),當x=0,返回(0.0, 0)math.ldexp(x, i)x * 2i返回x * 2i運算值,math.frepx(x)函數的反運算math.modf(x)返回x的小數和整數部分math.trunc(x)返回x的整數部分math.copysign(x, y)用數值y的正負號替換數值x的正負號math.isclose(a,b)比較a和b的相似性,返回True或Falsemath.isfinite(x)當x為無窮大,返回True;否則,返回Falsemath.isinf(x)當x為正數或負數無窮大,

14、返回True;否則,返回Falsemath庫解析 math庫包括六個“三角雙曲函數函數數學表示描述math.degree(x)角度x的弧度值轉角度值math.radians(x)角度x的角度值轉弧度值math.hypot(x,y)返回(x,y)坐標到原點(0,0)的距離math.sin(x)sin x返回x的正弦函數值,x是弧度值math.cos(x)cos x返回x的余弦函數值,x是弧度值math.tan(x)tan x返回x的正切函數值,x是弧度值math.asin(x)arcsin x返回x的反正弦函數值,x是弧度值math.acos(x)arccos x返回x的反余弦函數值,x是弧度值

15、math.atan(x)arctan x返回x的反正切函數值,x是弧度值math.atan2(y,x)arctan y/x返回y/x的反正切函數值,x是弧度值math.sinh(x)sinh x返回x的雙曲正弦函數值math.cosh(x)cosh x返回x的雙曲余弦函數值math.tanh(x)tanh x返回x的雙曲正切函數值math.asinh(x)arcsinh x返回x的反雙曲正弦函數值math.acosh(x)arccosh x返回x的反雙曲余弦函數值math.atanh(x)arctanh x返回x的反雙曲正切函數值math庫解析 math庫包括4個高等特殊函數函數數學表示描述m

16、ath.erf(x)高斯誤差函數,應用于概率論、統計學等領域math.erfc(x)余補高斯誤差函數,math.erfc(x)=1 - math.erf(x)math.gamma(x)伽瑪(Gamma)函數,也叫歐拉第二積分函數math.lgamma(x) ln(gamma(x) 伽瑪函數的自然對數實例3: 天天向上的力量實例代碼3.1: 天天向上一年365天,以第1天的能力值為基數,記為 1.0,當好好學習時能力值相比前一天提高1,當沒有學習時由于遺忘等原因能力值相比前 一天下降1。每天努力和每天放任,一年下 來的能力值相差多少呢?實例代碼3.1: 天天向上 運行結果如下,每天努力1,一年下

17、來將提高44%,好像不多?請繼續分析。實例代碼3.1e3.1DayDayUp365.py12345#e3.1DayDayUp365.py import mathdayup = math.pow(1.0 + 0.001), 365)# 提高提高0.001 daydown = math.pow(1.0 - 0.001), 365) # 放任放任0.001print(向向上上: :.2f, 向向下下: :.2f.format(dayup, daydown)實例代碼3.2: 天天向上一年365天,如果好好學習時能力值相比前一 天提高5,當放任時相比前一天下降5。 效果相差多少呢?實例代碼3.2: 天天

18、向上運行結果如下,每天努力5,一年下來將提高6倍!這 不容小覷了吧?實例代碼3.2e3.2DayDayUp365.py12345#e3.2DayDayUp365.py import mathdayup = math.pow(1.0 + 0.005), 365) # 提提 高高 0.005 daydown = math.pow(1.0 - 0.005), 365) # 放放 任任 0.005 print( 向向 上上 : :.2f,向向 下下 :.2f.format(dayup, daydown)實例代碼3.3: 天天向上一年365天,如果好好學習時能力值相比前一 天提高1%,當放任時相比前一天

19、下降1%。效 果相差多少呢?實例代碼3.3: 天天向上運行結果如下,每天努力1%,一年下來將提 高37倍。這個相當驚人吧!實例代碼3.3e3.3DayDayUp365.py123456#e3.3DayDayUp365.py import math dayfactor = 0.01dayup = math.pow(1.0 + dayfactor), 365)# 提提 高高 dayfactordaydown = math.pow(1.0 - dayfactor), 365)# 放放 任任 dayfactorprint( 向向 上上 :.2f,向向 下下 :.2f.format(dayup, day

20、down)實例代碼3.4: 天天向上一年365天,一周5個工作日,如果每個工作 日都很努力,可以提高1%,僅在周末放任一下,能力值每天下降1%,效果如何呢?實例代碼3.4: 天天向上猜猜運行結果?每周努力5天,而不是每天,一 年下來,水平僅是初始的4.63倍!與每天堅持所 提高的237倍相去甚遠實例代碼3.4e3.4DayDayUp365.py12345678#e3.4DayDayUp365.pydayup, dayfactor = 1.0, 0.01 for i in range(365):if i % 7 in 6, 0:#周六周日周六周日 dayup = dayup * (1 - day

21、factor)else:dayup = dayup * (1 + dayfactor)print(向上向上5天向下天向下2天的天的力力量量: :.2f.format(dayup)實例代碼3.5: 天天向上如果對實例代碼3.4的結果感到意外,那自然會產 生如下問題:每周工作5天,休息2天,休息日水 平下降0.01,工作日要努力到什么程度一年后的水 平才與每天努力1%所取得的效果一樣呢?實例代碼3.5: 天天向上如果每周連續努力5 天, 休息2天,為了達到每天努 力1%所達到的的水平,則 就需要在工作日將提高的 程度達到約2%,即要努力1倍才僅是為了休息2天。這就是天天向上的力量!實例代碼3.5e

22、3.5DayDayUp365.py12345678910111213#e3.5DayDayUp365.py def dayUP(df): dayup = 0.01for i in range(365): if i % 7 in 6, 0:dayup = dayup * (1 -0.01 df) else:dayup = dayup * (1 + df) return dayupdayfacotr = 0.01while (dayUP(dayfactor)37.78): dayfactor += 0.001print(每天的努力每天的努力參數參數是是: :.3f.format(dayfactor

23、)字符串類型及其操作 字符串屬于不可變序列,是用單引號、雙引號或三引號括起來的符號序列 單引號、雙引號、三單引號、三雙引號可以互相嵌套,用來表示復雜字符串 abc、123、中國、Python、Tom said, Lets go 空串表示為或 三引號或表示的字符串可以換行,支持排版較為復雜的字符串;三引號還可以在程序中表示較長的注釋。1.4.4 字符串字符串是一個字符序列:字符串最左端位置標記為0,依次增加。字符串中的編號叫做“索引”,索引輔助訪問字符串中的特定位置格式為HelloJohn0123456789字符串索引與訪問Python中字符串索引從0開始,一個長度為L的 字符串最后一個字符的位

24、置是L-1Python同時允許使用負數從字符串右邊末尾向 左邊進行反向索引,最右側索引值是-1字符串索引與訪問 可以通過兩個索引值確定一個位置范圍,返回這 個范圍的子串 格式: : start和end都是整數型數值,這個子序列從索引 start開始直到索引end結束,但不包括end位置。字符串索引與訪問 字符串之間可以通過+或*進行連接加法操作(+)將兩個字符串連接成為一個新的 字符串乘法操作(*)生成一個由其本身字符串重復連接 而成的字符串字符串的連接與重復 len三函數能否返回一個字符串的長度字符串的長度 大多數數據類型都可以通過str三函數轉換 為字符串轉換整數浮點數字符串int三flo

25、at三str三字符串的轉換字符串使用實例輸入一個月份數字,返回對應月份名稱縮寫這個問題的IPO模式是:輸入:輸入一個表示月份的數字(1-12) 處理:利用字符串基本操作實現該功能 輸出:輸入數字對應月份名稱的縮寫字符串使用實例 將所有月份名稱縮寫存儲在字符串中 在字符串中截取適當的子串來查找特定月份找出在哪里切割子串每個月份的縮寫都由3個字母組成,如果pos表示 一個月份的第一個字母,則monthspos:pos+3表示這個月份的縮寫,即:monthAbbrev = monthspos:pos+3字符串使用實例月份月份字符串中位置字符串中位置Jan10Feb23Mar36Apr49用轉義符()

26、可以在字符串中表達一些不可直接打印的信息。例如:用n表示換行字符串HellonWorldnnGoodbye 32n用print三函數打印后的輸出效果如下: HelloWorldGoodbye 32字符串轉義字符() 常用轉義字符字符串轉義字符()轉義字符轉義字符含義含義轉義字符轉義字符含義含義b退格,把光標移動到前一列位置一個斜線f換頁符單引號n換行符”雙引號”r回車ooo3位八進制數對應的字符t水平制表符xhh2位十六進制數對應的字符v垂直制表符uhhhh4位十六進制數表示的Unicode字符內置的字符串處理函數操作操作含義含義+連接*重復 索引 : 剪切len()長度.upper()字符串

27、中字母大寫.lower()字符串中字母小寫.strip()去兩邊空格及去指定字符.split()按指定字符分割字符串為數組.join()連接兩個字符串序列.find()搜索指定字符串.replace()字符串替換for in 字符串迭代內置的字符串處理方法方法描述str.lower()返回字符串str的副本,全部字符小寫str.upper()返回字符串str的副本,全部字符大寫str.islower()當str所有字符都是小寫時,返回True,否則Falsestr.isprintable()當str所有字符都是可打印的,返回True,否則Falsestr. isnumeric()當str所有字

28、符都是字符時,返回True,否則Falsestr.isspace()當str所有字符都是空格,返回True,否則Falsestr.endswith(suffix,start,end)strstart: end 以suffix結尾返回True,否則返回Falsestr.startswith(prefix, start, end)strstart: end 以suffix開始返回True,否則返回Falsetr.split(sep=None, maxsplit=-1)返回一個列表,由str根據sep被分割的部分構成str.count(sub,start,end) 返回strstart: end中s

29、ub子串出現的次數str.replace(old, new, count)返回字符串str的副本,所有old子串被替換為new,如果count給出,則前count次old出現被替換str.center(width,fillchar) 字符串居中函數,詳見函數定義str.strip(chars)返回字符串str的副本,在其左側和右側去掉chars中列出的字符str.zfill(width)返回字符串str的副本,長度為width,不足部分在左側添0str.format()返回字符串str的一種排版格式,3.6節將詳細介紹str.join(iterable)返回一個新字符串,由組合數據類型(見第6

30、章)iterable變量的每個元素組成,元素間用str分割內置的字符串處理方法字符串實例:愷撒密碼微實例微實例:愷撒密碼愷撒密碼。凱撒密碼是古羅馬用來對軍事情報進行加密的算法,采用替換方法進行加密,對信息中的每一個英文字符循環替換為字母表中該字符后面第三個字符,對應關系如下:原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C原文字符P,其密文字符C滿足如下條件: C = ( P + 3 ) mod 26解密方法反之,滿足:P = ( C 3 ) mod 26m3.2 CaesarCode.py1234567plaincode = input(請輸請輸入明文入明文: ) for letter in plaincode:if ord(a) = ord(letter) 請輸入明文: python is an excellent language.sbwkrq lv dq hafhoohqw odqjxdjh.運行結果如下:字符串實例:愷撒密碼字符串類型的格式化字符串字符串格式化格式化Python 支持格式化字符串的輸出。盡管這樣可能會用到非常復雜的表達式,但最基本的用法是將一個值插入到有字符串格式符的模板中。在 Pyt

溫馨提示

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

評論

0/150

提交評論