python-基礎(chǔ)學(xué)習(xí)筆記_第1頁(yè)
已閱讀1頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  Python 基礎(chǔ)學(xué)習(xí)筆記</p><p>  基于《Python語(yǔ)言程序設(shè)計(jì)基礎(chǔ)(第2版)》</p><p>  第一部分 初識(shí)Python語(yǔ)言</p><p>  第1章 程序設(shè)計(jì)基本方法</p><p>  1.1 計(jì)算機(jī)的概念</p><p>  計(jì)算機(jī)是根據(jù)指令操作數(shù)據(jù)的設(shè)備,具備功能性

2、和可編程性?xún)蓚€(gè)基本特性。</p><p>  計(jì)算機(jī)技術(shù)發(fā)展階段:</p><p>  第一階段:1946-1981年,“計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)階段”。</p><p>  第二階段:1982-2007年,“計(jì)算機(jī)網(wǎng)絡(luò)和視窗階段”。</p><p>  第三階段:2008年至今,“復(fù)雜信息系統(tǒng)階段”。</p><p>  第四

3、階段:月20年后某個(gè)時(shí)期開(kāi)始,“人工智能階段”。</p><p><b>  1.2程序設(shè)計(jì)語(yǔ)言</b></p><p>  1.2.1程序設(shè)計(jì)語(yǔ)言概述</p><p>  機(jī)器語(yǔ)言:直接使用二進(jìn)制代碼表達(dá)指令,可被計(jì)算機(jī)硬件直接識(shí)別和執(zhí)行。不同計(jì)算機(jī)結(jié)構(gòu)的機(jī)器指令不同。</p><p>  匯編語(yǔ)言:使用助記符對(duì)應(yīng)機(jī)器

4、語(yǔ)言中的指令,可直接操作計(jì)算機(jī)硬件。不同計(jì)算機(jī)結(jié)構(gòu)的匯編指令不同。</p><p>  機(jī)器語(yǔ)言和匯編語(yǔ)言都直接操作計(jì)算機(jī)硬件并基于此設(shè)計(jì),統(tǒng)稱(chēng)“低級(jí)語(yǔ)言”。</p><p>  高級(jí)語(yǔ)言:用更接近自然語(yǔ)言的方式描述計(jì)算問(wèn)題。代碼只與編程語(yǔ)言有關(guān),與計(jì)算機(jī)結(jié)構(gòu)無(wú)關(guān)。</p><p>  1.2.2編譯和解釋</p><p>  高級(jí)語(yǔ)言按執(zhí)行

5、方式可分為采用編譯執(zhí)行的靜態(tài)語(yǔ)言和采用解釋執(zhí)行的腳本語(yǔ)言。</p><p>  編譯是將源代碼轉(zhuǎn)換成目標(biāo)代碼的過(guò)程。</p><p>  解釋是將源代碼逐條轉(zhuǎn)換成目標(biāo)代碼同時(shí)逐條運(yùn)行目標(biāo)代碼的過(guò)程。</p><p>  1.2.3計(jì)算機(jī)編程</p><p>  我學(xué)習(xí)Python的原因:</p><p>  通過(guò)編程實(shí)

6、現(xiàn)自動(dòng)化,提高效率。</p><p>  通過(guò)編程了解一個(gè)新的廣闊世界。</p><p>  學(xué)習(xí)一門(mén)編程語(yǔ)言(重點(diǎn)在于練習(xí))</p><p><b>  掌握該語(yǔ)言的語(yǔ)法</b></p><p>  結(jié)合問(wèn)題設(shè)計(jì)程序結(jié)構(gòu)</p><p><b>  掌握解決問(wèn)題的能力</b>

7、;</p><p>  1.3Python語(yǔ)言概述</p><p>  1.3.1 Python語(yǔ)言的發(fā)展</p><p>  Python語(yǔ)言是一個(gè)語(yǔ)法簡(jiǎn)潔、跨平臺(tái)、可擴(kuò)展的開(kāi)源通用腳本語(yǔ)言。</p><p>  Python語(yǔ)言誕生于1990年,創(chuàng)世人為Guido。</p><p>  2000年10月,Pytho

8、n 2.0正式發(fā)布,2010年,Python 2.x系列發(fā)布最后一版(2.7)。</p><p>  2008年12月,Python 3.0正式發(fā)布,解釋器內(nèi)部采用完全面向?qū)ο蟮姆绞綄?shí)現(xiàn),代價(jià)是3.x系列版本無(wú)法向下兼容2.x系列的既有語(yǔ)法。</p><p>  Python 2.x已經(jīng)是遺產(chǎn),Python 3.x是這個(gè)語(yǔ)言的現(xiàn)在和未來(lái)。</p><p>  1.3

9、.2編寫(xiě)Hello程序</p><p>  print("Hello World")</p><p>  1.3.3 Python語(yǔ)言的特點(diǎn)</p><p><b>  語(yǔ)法簡(jiǎn)潔</b></p><p><b>  可跨平臺(tái)</b></p><p><

10、;b>  應(yīng)用廣泛</b></p><p><b>  支持中文</b></p><p>  強(qiáng)制可讀:通過(guò)強(qiáng)制縮進(jìn)體現(xiàn)語(yǔ)句間的邏輯關(guān)系提高了程序的可讀性</p><p>  模式多樣:語(yǔ)法層面同時(shí)支持面向過(guò)程和面向?qū)ο髢煞N編程方式</p><p>  粘性擴(kuò)展:通過(guò)接口和函數(shù)集成其他語(yǔ)言編寫(xiě)的代碼&l

11、t;/p><p><b>  開(kāi)源理念</b></p><p><b>  庫(kù)類(lèi)豐富</b></p><p>  1.4 Python語(yǔ)言開(kāi)發(fā)環(huán)境配置</p><p><b>  Python解釋器</b></p><p><b>  IDLE開(kāi)發(fā)

12、環(huán)境</b></p><p><b>  交互式啟動(dòng)</b></p><p><b>  文件式啟動(dòng)</b></p><p>  Python語(yǔ)言集成開(kāi)發(fā)環(huán)境——PyCharm</p><p>  1.5 程序的基本編寫(xiě)方法</p><p>  1.5.1 IPO

13、程序編寫(xiě)方法</p><p>  每個(gè)程序都有統(tǒng)一的運(yùn)算模式:輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)。這種樸素的運(yùn)算模式形成了基本的程序編寫(xiě)方法:IPO(Input,Process,Output)方法。</p><p>  IPO不僅是程序設(shè)計(jì)的基本方法,也是描述計(jì)算問(wèn)題的方式。</p><p>  1.5.2理解問(wèn)題的計(jì)算部分</p><p>  使

14、用計(jì)算機(jī)解決問(wèn)題的6個(gè)步驟:</p><p><b>  分析問(wèn)題</b></p><p><b>  劃分邊界</b></p><p><b>  設(shè)計(jì)算法</b></p><p><b>  編寫(xiě)程序</b></p><p>&

15、lt;b>  調(diào)試測(cè)試</b></p><p><b>  升級(jí)維護(hù)</b></p><p>  第2章 Python程序解析</p><p>  2.1 Python程序語(yǔ)法元素分析</p><p>  Python程序包括格式框架、注釋、變量、表達(dá)式、分支語(yǔ)句、循環(huán)語(yǔ)句、函數(shù)等語(yǔ)法元素。</p

16、><p><b>  程序的格式框架</b></p><p>  Python語(yǔ)言采用嚴(yán)格的“縮進(jìn)”來(lái)表明程序的格式框架,縮進(jìn)表達(dá)了所屬關(guān)系</p><p>  在代碼編寫(xiě)中縮進(jìn)可通過(guò)Tab鍵實(shí)現(xiàn),也可用多個(gè)空格實(shí)現(xiàn),建議采用4個(gè)空格方式書(shū)寫(xiě)代碼</p><p><b>  注釋</b></p&g

17、t;<p>  注釋是輔助性文字,不被執(zhí)行</p><p><b>  單行注釋?zhuān)阂?開(kāi)頭</b></p><p><b>  #這是注釋</b></p><p>  多行注釋?zhuān)阂?#39;''(3個(gè)單引號(hào))開(kāi)頭和結(jié)尾</p><p><b>  '&

18、#39;'</b></p><p><b>  這是注釋</b></p><p><b>  這也是注釋</b></p><p><b>  這還是注釋</b></p><p><b>  '''</b><

19、/p><p><b>  命名</b></p><p>  命名是為變量關(guān)聯(lián)標(biāo)識(shí)符的過(guò)程,用于確保程序元素的唯一性</p><p>  標(biāo)識(shí)符由字母、數(shù)字、下劃線(xiàn)(和漢字)等字符及其組合構(gòu)成</p><p>  標(biāo)識(shí)符的首字符不能是數(shù)字 ,且中間不能出現(xiàn)空格</p><p><b>  標(biāo)識(shí)

20、符對(duì)大小寫(xiě)敏感</b></p><p><b>  保留字</b></p><p>  保留字(Keyword)也被稱(chēng)為關(guān)鍵字,是被編程語(yǔ)言?xún)?nèi)部定義并保留使用的標(biāo)識(shí)符</p><p>  Python 的標(biāo)準(zhǔn)庫(kù)提供了一個(gè) keyword 模塊,可以輸出當(dāng)前版本的所有關(guān)鍵字:</p><p>  >>

21、;> import keyword</p><p>  >>> ls=keyword.kwlist</p><p><b>  >>> ls</b></p><p>  >>>len(ls)</p><p><b>  33</b><

22、/p><p>  Python 3 有33個(gè)保留字</p><p><b>  True</b></p><p><b>  False</b></p><p><b>  None</b></p><p><b>  and</b>&

23、lt;/p><p><b>  as</b></p><p><b>  assert</b></p><p><b>  break</b></p><p><b>  class</b></p><p><b>  con

24、tinue</b></p><p><b>  def</b></p><p><b>  del</b></p><p><b>  elif</b></p><p><b>  else</b></p><p>&l

25、t;b>  except</b></p><p><b>  finally</b></p><p><b>  for</b></p><p><b>  from</b></p><p><b>  global</b></p&

26、gt;<p><b>  if</b></p><p><b>  import</b></p><p><b>  in</b></p><p><b>  is</b></p><p><b>  lambda</b>

27、;</p><p><b>  nonlocal</b></p><p><b>  not</b></p><p><b>  or</b></p><p><b>  pass</b></p><p><b>  ra

28、ise</b></p><p><b>  return</b></p><p><b>  try</b></p><p><b>  while</b></p><p><b>  with</b></p><p>

29、<b>  yield</b></p><p><b>  字符串</b></p><p>  字符串(string)類(lèi)型在程序中表示文本</p><p>  字符串是字符的序列,可以按照單個(gè)字符或字符片段進(jìn)行索引</p><p>  字符串包括兩種序號(hào)體系:正向遞增序號(hào)、反向遞減序號(hào)</p&

30、gt;<p>  正向遞增序號(hào):0~L-1</p><p>  反向遞減序號(hào):-L~-1</p><p>  區(qū)間訪(fǎng)問(wèn)方式:[N:M](不包含M),可以混合使用正向遞增序號(hào)和反向遞減序號(hào)</p><p>  字符串比較本質(zhì)上是字符串對(duì)應(yīng)Unicode編碼的比較</p><p><b>  賦值語(yǔ)句</b>&

31、lt;/p><p>  Python語(yǔ)言中,“=”表示“賦值”,將右側(cè)的計(jì)算結(jié)果賦給左側(cè)變量</p><p>  同步賦值語(yǔ)句:可同時(shí)給多個(gè)變量賦值</p><p>  <變量1>,…,<變量N>=<表達(dá)式1>,…,<表達(dá)式N></p><p><b>  分支語(yǔ)句</b>&l

32、t;/p><p>  分支語(yǔ)句的作用是根據(jù)判斷條件選擇程序執(zhí)行路徑</p><p>  if<條件1>:    <語(yǔ)句塊1></p><p>  elif<條件2>:    <語(yǔ)句塊2>…else:    <語(yǔ)句塊N></p><p><b>  循環(huán)語(yǔ)句</b

33、></p><p>  循環(huán)語(yǔ)句的作用是根據(jù)判斷條件確定一段程序是否再執(zhí)行一次或多次</p><p>  while (<條件>) :    <語(yǔ)句塊1><語(yǔ)句塊2></p><p>  for i in range(<循環(huán)次數(shù)>):    <語(yǔ)句塊1></p><p>

34、<b>  input()函數(shù)</b></p><p>  使用input()函數(shù)從控制臺(tái)獲得用戶(hù)輸入</p><p>  input()函數(shù)以字符串類(lèi)型返回結(jié)果</p><p>  <> = input("提示性文字")</p><p>  >>>input("

35、;請(qǐng)輸入:")</p><p><b>  eval()函數(shù)</b></p><p>  eval(<字符串>)函數(shù)的作用是間輸入的字符串變成Python語(yǔ)句并執(zhí)行</p><p>  x=eval(input("請(qǐng)輸入:"))</p><p>  Python語(yǔ)法允許在表達(dá)式內(nèi)

36、部標(biāo)記之間增加空格,適當(dāng)增加空格有助于提高代碼可讀性。但應(yīng)注意,不能改變與縮進(jìn)相關(guān)的空格數(shù)量、不能再變量名等命名中間增加空格。</p><p><b>  print()函數(shù)</b></p><p>  print()函數(shù)可以輸出字符信息,也可以用字符的形式輸出變量</p><p>  輸出字符信息時(shí),可以直接將待輸出內(nèi)容傳遞給print()函

37、數(shù)</p><p>  輸出變量值時(shí),print()函數(shù)用槽格式和過(guò)format()方法將變量和字符串結(jié)合到一起輸出</p><p><b>  函數(shù)</b></p><p>  函數(shù)可以理解為對(duì)一組表達(dá)特定功能表達(dá)式的封裝,將特定功能代碼編寫(xiě)在一個(gè)函數(shù)里,使程序模塊化更好,便于閱讀和復(fù)用</p><p>  可通過(guò)保留

38、字def自定義函數(shù)</p><p>  2.2 對(duì)象(庫(kù))的調(diào)用</p><p>  <a>.<b>()表示調(diào)用一個(gè)對(duì)象<a>的方法<b>(),或調(diào)用一個(gè)函數(shù)庫(kù)<a>中的函數(shù)<b>()</p><p>  面向?qū)ο缶幊淌且环N基于對(duì)象的編程范式。對(duì)象是事物的一種抽象,是一個(gè)實(shí)體,包含屬性和方法兩部

39、分。屬性是對(duì)象中的變量,方法是對(duì)象能完成的操作。</p><p>  通過(guò)保留字import引用函數(shù)庫(kù)</p><p>  import <庫(kù)名>:程序調(diào)用庫(kù)中所有函數(shù),使用庫(kù)中函數(shù)格式如下</p><p>  <庫(kù)名>.<函數(shù)名>(<函數(shù)參數(shù)>)</p><p>  import turtle

40、</p><p>  turtle.fd(100) #控制畫(huà)筆向當(dāng)前行進(jìn)方向前進(jìn)100</p><p>  from <庫(kù)名> import :</p><p>  from <庫(kù)名> import <函數(shù)名,函數(shù)名,…,函數(shù)名>from <庫(kù)名> import *,“ * ”是通配符,表示所有函數(shù)</p>

41、;<p>  調(diào)用庫(kù)中函數(shù)不再需要使用庫(kù)名,格式如下</p><p>  <函數(shù)名>(<函數(shù)參數(shù)>)</p><p>  from turtle import *</p><p><b>  fd(100)</b></p><p>  2.3 turtle庫(kù)語(yǔ)法元素分析</p&

42、gt;<p>  tuetle庫(kù)是一個(gè)圖形繪制函數(shù)圖</p><p><b>  繪圖坐標(biāo)體系</b></p><p>  tuetle庫(kù)繪制圖形的基本框架是一個(gè)海龜在坐標(biāo)系中爬行(前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)),其軌跡形成了繪制圖形。</p><p>  初始位置位于坐標(biāo)(0,0),行進(jìn)方向?yàn)樗接曳健?lt;/p><

43、p>  使用turtle.setup()函數(shù)設(shè)置主窗體的大小和位置。</p><p>  turtle.setup(width,height,startx,stary)</p><p>  width,height分別表示窗口寬度和高度,值是整數(shù)表示像素值,值時(shí)小數(shù)表示與屏幕的比例</p><p>  startx,stary分別表示窗口左側(cè)和頂部與屏幕左側(cè)和

44、頂部的像素距離,如果值是none,窗口位于屏幕水平/垂直中央</p><p>  turtle.setup(0.8,0.8)</p><p><b>  畫(huà)筆控制函數(shù)</b></p><p>  turtle.penup():抬起畫(huà)筆,之后移動(dòng)畫(huà)筆不繪制形狀別名:turtle.pd()、turtle.down()</p><

45、;p>  turtle.pensize(width):設(shè)置畫(huà)筆寬度,width無(wú)參數(shù)或?yàn)镹one時(shí)返回當(dāng)前畫(huà)筆寬度別名:turtle.width()</p><p>  turtle.pencolor():設(shè)置畫(huà)筆顏色,無(wú)參數(shù)輸入時(shí)返回當(dāng)前畫(huà)筆顏色。</p><p>  (colorstring)參數(shù)表示顏色的字符串;(r,g,b)參數(shù)表示顏色對(duì)應(yīng)的RGB值</p>

46、<p><b>  形狀繪制函數(shù)</b></p><p>  turtle.fd(distance):控制畫(huà)筆向當(dāng)前行進(jìn)方向前進(jìn)distance,值為負(fù)數(shù)表示向相反方向前進(jìn)別名:turtle.forward(distance)</p><p>  turtle.seth(to_angle):控制畫(huà)筆繪制方向,(to_angle)參數(shù)是絕對(duì)方向角度值(tur

47、tle庫(kù)的坐標(biāo)體系以正東方向?yàn)榻^對(duì)0度、正北方向?yàn)榻^對(duì)90度)</p><p>  turtle.circle(radius,extent=None):根據(jù)半徑radius繪制extent角度的弧形radius值為正時(shí),半徑在畫(huà)筆左側(cè),值為負(fù)時(shí),半徑在畫(huà)筆右側(cè);extent為正時(shí),畫(huà)筆逆時(shí)針前進(jìn),extent為負(fù)時(shí),畫(huà)筆順時(shí)針倒退,extent不設(shè)置參數(shù)或參數(shù)為None時(shí),繪制整圓。</p>&

48、lt;p>  第二部分 深入Python語(yǔ)言</p><p>  第3章 基本數(shù)據(jù)類(lèi)型</p><p><b>  3.1 數(shù)字類(lèi)型</b></p><p>  Python語(yǔ)言提供整數(shù)、浮點(diǎn)數(shù)、復(fù)數(shù)3種數(shù)字類(lèi)型</p><p><b>  整數(shù)類(lèi)型</b></p><p&

49、gt;  整數(shù)類(lèi)型共有4種進(jìn)制表示:十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制</p><p>  默認(rèn)情況整數(shù)采用十進(jìn)制,其他進(jìn)制需要增加引導(dǎo)符號(hào)</p><p><b>  浮點(diǎn)數(shù)類(lèi)型</b></p><p>  浮點(diǎn)數(shù)類(lèi)型與數(shù)學(xué)中實(shí)數(shù)的概念一致,表示帶有小數(shù)的數(shù)值</p><p>  Python語(yǔ)言要求所有浮點(diǎn)數(shù)必須帶有小

50、數(shù)部分(可以是0),一區(qū)分浮點(diǎn)數(shù)和證書(shū)類(lèi)型</p><p>  浮點(diǎn)數(shù)有2中表示方法:十進(jìn)制表示和科學(xué)計(jì)數(shù)法表示</p><p>  科學(xué)計(jì)數(shù)法使用字母e或E作為冪的符號(hào),以10為基數(shù),含義如下:</p><p>  <a>e<b>=a*10b^2</p><p>  由于計(jì)算機(jī)內(nèi)部采用二進(jìn)制運(yùn)算,浮點(diǎn)數(shù)進(jìn)行超過(guò)15位

51、數(shù)字計(jì)算會(huì)產(chǎn)生誤差</p><p>  使用整數(shù)表達(dá)浮點(diǎn)數(shù)的方法是高精確度運(yùn)算的基本方法之一。</p><p>  對(duì)于高精度科學(xué)計(jì)算外的絕大部分運(yùn)算而言,浮點(diǎn)數(shù)類(lèi)型已足夠可靠,一般認(rèn)為浮點(diǎn)數(shù)類(lèi)型沒(méi)有范圍限制,運(yùn)算結(jié)果準(zhǔn)確</p><p><b>  復(fù)數(shù)類(lèi)型</b></p><p>  復(fù)數(shù)類(lèi)型表示數(shù)學(xué)中的復(fù)數(shù)<

52、/p><p>  復(fù)數(shù)可以看作是二元有序?qū)崝?shù)對(duì)(a,b),表示為a+bj,其中a是實(shí)數(shù)部分,簡(jiǎn)稱(chēng)實(shí)部,b是虛數(shù)部分,簡(jiǎn)稱(chēng)虛部。</p><p>  Python 語(yǔ)言中,復(fù)數(shù)的虛部通過(guò)后綴"j"或"J"表示</p><p>  1.23e-4+5.67e+89j</p><p>  復(fù)數(shù)類(lèi)型中實(shí)數(shù)部分和虛數(shù)

53、部分的數(shù)值都是浮點(diǎn)數(shù)類(lèi)型,對(duì)于實(shí)數(shù)z,可用z.real和z.imag分別獲得它的實(shí)部和虛部</p><p>  (1.23e-4+5.67e+89j).real</p><p>  (1.23e-4+5.67e+89j).imag</p><p>  3.2 數(shù)字類(lèi)型的操作</p><p>  Python 解釋器為數(shù)字類(lèi)型提供數(shù)值運(yùn)算操作符

54、、數(shù)值運(yùn)算函數(shù)、類(lèi)型轉(zhuǎn)換函數(shù)等操作方法</p><p>  內(nèi)置的數(shù)值運(yùn)算操作符(共9個(gè))</p><p>  操作符運(yùn)算的結(jié)果可能會(huì)改變數(shù)字類(lèi)型,3種數(shù)字類(lèi)型之間存在一種逐漸擴(kuò)展的關(guān)系:整數(shù)→浮點(diǎn)數(shù)→復(fù)數(shù)</p><p>  上述9個(gè)二元數(shù)學(xué)操作符都有與之對(duì)應(yīng)的增強(qiáng)賦值操作符</p><p>  x+=y 等價(jià)于 x=x+y</p&g

55、t;<p>  模運(yùn)算(%)在編程中主要應(yīng)用于具有周期規(guī)律的場(chǎng)景</p><p>  內(nèi)置的數(shù)值運(yùn)算函數(shù)(共6個(gè))</p><p>  內(nèi)置的數(shù)字類(lèi)型轉(zhuǎn)換函數(shù)(共3個(gè))</p><p>  int()函數(shù)將浮點(diǎn)數(shù)類(lèi)型轉(zhuǎn)換為整數(shù)時(shí),小數(shù)部分會(huì)直接被舍棄</p><p>  復(fù)數(shù)不能直接轉(zhuǎn)換為其他數(shù)字類(lèi)型,可通過(guò).real和.ima

56、g將復(fù)數(shù)的實(shí)部和虛部分別轉(zhuǎn)換</p><p>  3.3 字符串類(lèi)型及其操作</p><p><b>  字符串類(lèi)型的表示</b></p><p>  字符串是字符的序列表示</p><p>  單引號(hào)字符串:'單引號(hào)表示可以使用"雙引號(hào)"作為字符串的一部分'</p>&

57、lt;p>  雙引號(hào)字符串:"雙引號(hào)表示可以使用'單引號(hào)'作為字符串的一部分"</p><p>  三引號(hào)字符串:'''三引號(hào)表示可以使用"雙引號(hào)"、'單引號(hào)'作為字符串的一部分也可以換行'''</p><p>  Python 字符串提供區(qū)間訪(fǎng)問(wèn)方式,采用[N

58、:M]格式。表示從字符串中從N到M(不包含M)的字符串,可以混合使用正向遞增序號(hào)和反向遞減序號(hào)</p><p>  反斜杠字符(\)在字符串中表示轉(zhuǎn)義</p><p><b>  \n 表示換行</b></p><p><b>  \\ 表示反斜杠</b></p><p><b>  \&

59、#39; 表示單引號(hào)</b></p><p><b>  \" 表示雙引號(hào)</b></p><p>  \t 表示制表符(Tab)</p><p>  基本的字符串操作符(共5個(gè))</p><p>  內(nèi)置的字符串處理函數(shù)(共6個(gè))</p><p>  內(nèi)置的字符串處理方法(

60、共43個(gè),常用16個(gè))</p><p>  在Python解釋器內(nèi)部,所有數(shù)據(jù)類(lèi)型都采用面向?qū)ο蟮姆绞綄?shí)現(xiàn),封裝為一個(gè)類(lèi)</p><p>  字符串是一個(gè)類(lèi),具有類(lèi)似<a>.<b>()形式的字符串處理函數(shù),稱(chēng)為方法</p><p>  3.4 字符串類(lèi)型的格式化</p><p>  字符串通過(guò)format()方法進(jìn)行格

61、式化處理</p><p>  字符串格式化用于解決字符串和變量同時(shí)輸出時(shí)的格式安排</p><p>  format()方法的基本使用</p><p>  字符串format()方法的基本使用格式:<字模板符串>.format(<逗號(hào)分隔的參數(shù)>)</p><p>  模板字符串由一系列槽組成,用來(lái)控制修改字符串中嵌入

62、值出現(xiàn)的位置(槽用{}表示,如果{}中沒(méi)有序號(hào),則按照出現(xiàn)順序替換)</p><p>  如需輸入{},采用{{表示{;}}表示}</p><p>  "圓周率{{{1}{2}}}是{0}".format("無(wú)理數(shù)",3.1415926,"……")</p><p>  format()方法的格式控制<

63、/p><p>  format()方法模板字符串的槽除了包括參數(shù)序號(hào),還可包括格式控制信息。槽內(nèi)部樣式:{<參數(shù)序號(hào)>:<格式控制標(biāo)記>}</p><p>  格式控制標(biāo)記用于控制參數(shù)顯示時(shí)的格式</p><p>  <填充>指寬度內(nèi)除了參數(shù)外的字符采用什么方式表示,默認(rèn)為空格</p><p>  <對(duì)齊

64、>指參數(shù)在寬度內(nèi)輸出時(shí)的對(duì)齊方式</p><p>  <寬度>指當(dāng)前槽的設(shè)定輸出字符寬度,若實(shí)際參數(shù)長(zhǎng)度比設(shè)定值大,則使用參數(shù)實(shí)際長(zhǎng)度</p><p>  <,>用于顯示數(shù)字類(lèi)型的千分位分隔符</p><p>  <.精度>對(duì)于浮點(diǎn)數(shù),表示小數(shù)部分輸出的有效位數(shù);對(duì)于字符串,表示輸出的最大長(zhǎng)度</p><

65、p>  <類(lèi)型>表示輸出整數(shù)好浮點(diǎn)數(shù)類(lèi)型的格式規(guī)劃。對(duì)于整數(shù)類(lèi)型,</p><p><b>  b:整數(shù)的二進(jìn)制;</b></p><p>  c:整數(shù)對(duì)應(yīng)的Unicode字符;</p><p><b>  d:整數(shù)的十進(jìn)制;</b></p><p><b>  o:整

66、數(shù)的八進(jìn)制</b></p><p>  x:整數(shù)的小寫(xiě)十六進(jìn)制</p><p>  X:整數(shù)的大寫(xiě)十六進(jìn)制對(duì)于浮點(diǎn)數(shù)類(lèi)型,</p><p>  e:浮點(diǎn)數(shù)對(duì)應(yīng)的小寫(xiě)字母e的指數(shù)形式</p><p>  E:浮點(diǎn)數(shù)對(duì)應(yīng)的大寫(xiě)字母E的指數(shù)形式</p><p>  f:浮點(diǎn)數(shù)的標(biāo)準(zhǔn)浮點(diǎn)形式</p>

67、<p>  %:浮點(diǎn)數(shù)的百分形式</p><p>  第4章 程序的控制結(jié)構(gòu)</p><p>  4.1 程序的基本結(jié)構(gòu)</p><p><b>  程序流程圖</b></p><p>  起止框表示一個(gè)程序的開(kāi)始和結(jié)束</p><p>  判斷框判斷一個(gè)條件是否成立,并根據(jù)判斷結(jié)果不

68、同選擇不同的執(zhí)行路徑</p><p>  處理框表示一組處理過(guò)程</p><p>  輸入/輸出框表示數(shù)據(jù)輸入或結(jié)果輸出</p><p>  注釋框增加程序的解釋</p><p>  流向線(xiàn)以帶箭頭的直線(xiàn)或曲線(xiàn)形式指示程序的執(zhí)行路徑</p><p>  連接點(diǎn)將多個(gè)流程圖連接到一起</p><p&g

69、t;<b>  程序的基本結(jié)構(gòu)</b></p><p>  程序有3種基本結(jié)構(gòu)組成:順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)</p><p>  順序結(jié)構(gòu):程序按照線(xiàn)性順序依次執(zhí)行</p><p>  分支結(jié)構(gòu):程序根據(jù)條件判斷結(jié)果而選擇不同向前執(zhí)行路徑的一種運(yùn)行方式(分支結(jié)構(gòu)包括單分支結(jié)構(gòu)和二分支結(jié)構(gòu);p97)</p><p> 

70、 循環(huán)結(jié)構(gòu):程序根據(jù)條件判斷結(jié)果向后反復(fù)執(zhí)行(根據(jù)觸發(fā)條件不同,循環(huán)結(jié)構(gòu)包括條件循環(huán)和遍歷循環(huán))</p><p>  4.2 程序的分支結(jié)構(gòu)</p><p>  單分支機(jī)構(gòu):if語(yǔ)句</p><p><b>  if語(yǔ)句語(yǔ)法格式:</b></p><p><b>  if <條件>:</b&g

71、t;</p><p><b>  <語(yǔ)句塊></b></p><p>  語(yǔ)句塊是if條件滿(mǎn)足后執(zhí)行的一個(gè)或多個(gè)語(yǔ)句序列</p><p>  語(yǔ)句塊中語(yǔ)句通過(guò)與if所在行形成縮進(jìn)表達(dá)包含關(guān)系</p><p>  if語(yǔ)句首先評(píng)估條件的結(jié)果值,若為T(mén)ure則執(zhí)行語(yǔ)句塊中的語(yǔ)句序列;若為False則跳過(guò)語(yǔ)句塊中的

72、語(yǔ)句</p><p>  if語(yǔ)句中條件部分可以使用任何能夠產(chǎn)生Ture或False的語(yǔ)句或函數(shù)</p><p>  形成判斷條件最常見(jiàn)的方式是采用關(guān)系操作符</p><p>  Python使用"="表示賦值語(yǔ)句,使用"=="表示等于</p><p>  二分支結(jié)構(gòu):if-else語(yǔ)句</p&g

73、t;<p>  if-else語(yǔ)句語(yǔ)法格式:</p><p><b>  if <條件>:</b></p><p><b>  <語(yǔ)句塊1></b></p><p>  else <條件>:</p><p><b>  <語(yǔ)句塊2&g

74、t;</b></p><p>  二分支語(yǔ)句用于區(qū)分條件的兩種可能</p><p>  if條件滿(mǎn)足時(shí)執(zhí)行語(yǔ)句塊1</p><p>  if條件不滿(mǎn)足時(shí)執(zhí)行語(yǔ)句塊2</p><p>  二分支結(jié)構(gòu)的簡(jiǎn)潔表達(dá)(適合通過(guò)判斷返回特定值)</p><p>  <表達(dá)式1> if <條件>

75、else <表達(dá)式2></p><p>  表達(dá)式1/2一般是數(shù)字類(lèi)型或字符串類(lèi)型的一個(gè)值</p><p>  多分支結(jié)構(gòu):if-elif-else語(yǔ)句</p><p>  if-elif-else語(yǔ)句語(yǔ)法格式:</p><p><b>  if <條件1>:</b></p><

76、;p><b>  <語(yǔ)句塊1></b></p><p>  elif <條件2>:</p><p><b>  <語(yǔ)句塊2></b></p><p><b>  ...</b></p><p><b>  else:</

77、b></p><p><b>  <語(yǔ)句塊N></b></p><p>  Python依次評(píng)估尋找第一個(gè)結(jié)果為T(mén)ure的條件,執(zhí)行該條件下的語(yǔ)句并跳過(guò)整個(gè)if-elif-else結(jié)構(gòu),執(zhí)行后面的語(yǔ)句</p><p>  如果沒(méi)有任何條件成立,執(zhí)行else下面的語(yǔ)句塊</p><p>  else語(yǔ)句是

78、可選的</p><p>  4.3 程序的循環(huán)結(jié)構(gòu)</p><p>  遍歷循環(huán):for語(yǔ)句</p><p><b>  for語(yǔ)句語(yǔ)法格式</b></p><p>  for <循環(huán)變量> in <遍歷結(jié)構(gòu)>:</p><p><b>  <語(yǔ)句塊>

79、</b></p><p>  遍歷循環(huán)可以理解為從遍歷結(jié)構(gòu)中中逐一提取元素,放在循環(huán)變量中,對(duì)于所提取的每個(gè)元素執(zhí)行一次語(yǔ)句塊</p><p><b>  循環(huán)N次:</b></p><p>  for i in rang(N):</p><p><b>  <語(yǔ)句塊></b>

80、;</p><p><b>  遍歷文件的每一行:</b></p><p>  for line in fi:</p><p><b>  <語(yǔ)句塊></b></p><p><b>  遍歷字符串s</b></p><p>  for c

81、in s:</p><p><b>  <語(yǔ)句塊></b></p><p><b>  遍歷列表ls</b></p><p>  for item in ls:</p><p><b>  <語(yǔ)句塊></b></p><p>&l

82、t;b>  遍歷循環(huán)的擴(kuò)展模式</b></p><p>  for <循環(huán)變量> in <遍歷結(jié)構(gòu)>:</p><p><b>  <語(yǔ)句塊1></b></p><p><b>  else:</b></p><p><b>  <

83、;語(yǔ)句塊2></b></p><p>  當(dāng)for循環(huán)正常執(zhí)行后,程序會(huì)繼續(xù)執(zhí)行else語(yǔ)句</p><p>  遍歷循環(huán):while語(yǔ)句</p><p>  while語(yǔ)句語(yǔ)法格式</p><p>  while <條件>:</p><p><b>  <語(yǔ)句塊>&

84、lt;/b></p><p>  當(dāng)條件判斷為T(mén)ure時(shí),循環(huán)體重復(fù)執(zhí)行語(yǔ)句塊中的語(yǔ)句;當(dāng)條件為Flase時(shí),循環(huán)終止,執(zhí)行與while同級(jí)別縮進(jìn)的后續(xù)語(yǔ)句</p><p><b>  無(wú)限循環(huán)的擴(kuò)展模式</b></p><p>  while <條件>:</p><p><b>  <

85、語(yǔ)句塊1></b></p><p><b>  else:</b></p><p><b>  <語(yǔ)句塊2></b></p><p>  當(dāng)while循環(huán)正常執(zhí)行后,程序會(huì)繼續(xù)執(zhí)行else語(yǔ)句中的內(nèi)容,else語(yǔ)句只在循環(huán)正常執(zhí)行后才執(zhí)行</p><p>  循環(huán)保留字

86、:break和continue</p><p>  break用來(lái)跳出最內(nèi)層for或while循環(huán),脫離該循環(huán)后程序從循環(huán)代碼后繼續(xù)執(zhí)行</p><p>  continue用來(lái)結(jié)束當(dāng)前當(dāng)次循環(huán),即跳出循環(huán)體中下面尚未執(zhí)行的語(yǔ)句,但不跳出當(dāng)前循環(huán)</p><p>  for s in "BIT":</p><p>  fo

87、r i in rang(2):</p><p>  print(s,end="")</p><p>  if s=="I":</p><p><b>  break</b></p><p><b>  >>>BBTT</b></p>

88、;<p>  break語(yǔ)句與continue語(yǔ)句的區(qū)別是,break語(yǔ)句結(jié)束整個(gè)循環(huán)過(guò)程,不再判斷執(zhí)行循環(huán)的條件是否成立;continue語(yǔ)句只結(jié)束本次循環(huán),而不終止整個(gè)循環(huán)的執(zhí)行</p><p>  for循環(huán)和while循環(huán)中都有一個(gè)else擴(kuò)展用法。else語(yǔ)句僅在循環(huán)正常遍歷了所有內(nèi)容或由于條件不成立而結(jié)束循環(huán)的條件下執(zhí)行。</p><p>  for s in &

89、quot;PYTHON":</p><p>  if s =="T":</p><p><b>  continue</b></p><p>  print(s,end="")</p><p><b>  else:</b></p>&

90、lt;p>  print("正常退出")</p><p><b>  >>></b></p><p>  PYHON 正常退出</p><p>  for s in "PYTHON":</p><p>  if s =="T":</

91、p><p><b>  break</b></p><p>  print(s,end="")</p><p><b>  else:</b></p><p>  print("正常退出")</p><p><b>  >&

92、gt;></b></p><p><b>  PY</b></p><p>  4.4 random庫(kù)的使用</p><p>  random庫(kù)采用梅森旋轉(zhuǎn)算法生成偽隨機(jī)數(shù)序列,可用于除隨機(jī)性要求更高的加解密算法外的大多數(shù)工程應(yīng)用</p><p>  Python內(nèi)置的random庫(kù)主要用于產(chǎn)生各種分布

93、的偽隨機(jī)數(shù)序列</p><p>  random庫(kù)提供9個(gè)常用函數(shù)</p><p>  生成隨機(jī)數(shù)之前可通過(guò)seed()函數(shù)指定隨機(jī)數(shù)種子,隨機(jī)數(shù)種子一般是一個(gè)整數(shù),只要種子相同,每次生成的隨機(jī)數(shù)序列也相同</p><p>  4.5 程序的異常處理</p><p>  Python通過(guò)try、except等保留字提供異常處理功能</p

94、><p>  異常處理:try-except語(yǔ)句</p><p>  Python使用try-except語(yǔ)句實(shí)現(xiàn)異常處理</p><p><b>  try:</b></p><p><b>  <語(yǔ)句塊1></b></p><p>  except <異常類(lèi)

95、型>:</p><p><b>  <語(yǔ)句塊2></b></p><p><b>  異常的高級(jí)用法</b></p><p>  try-except語(yǔ)句可以支持多個(gè)except語(yǔ)句</p><p><b>  try:</b></p><

96、p><b>  <語(yǔ)句塊1></b></p><p>  except <異常類(lèi)型1>:</p><p><b>  <語(yǔ)句塊2></b></p><p><b>  ...</b></p><p>  except <異常類(lèi)型N

97、>:</p><p><b>  <語(yǔ)句塊N+1></b></p><p>  except <異常類(lèi)型N+!>:</p><p><b>  <語(yǔ)句塊N+2></b></p><p>  異常語(yǔ)句還可以與else和finally保留字配合使用</p&

98、gt;<p><b>  try:</b></p><p><b>  <語(yǔ)句塊1>:</b></p><p>  except <異常類(lèi)型1>:</p><p><b>  <語(yǔ)句塊2></b></p><p><b&g

99、t;  else:</b></p><p><b>  <語(yǔ)句塊3></b></p><p><b>  finally:</b></p><p><b>  <語(yǔ)句塊4></b></p><p>  第5章 函數(shù)和代碼復(fù)用</p>

100、;<p>  5.1 函數(shù)的基本使用</p><p><b>  函數(shù)的定義</b></p><p>  函數(shù)是一段具有特定功能的、可重用的語(yǔ)句組</p><p>  使用函數(shù)主要有兩個(gè)目的:降低編程難度和代碼重用</p><p>  Python使用def保留字定義一個(gè)函數(shù)</p><

101、p>  def<函數(shù)名>(<參數(shù)列表>):</p><p><b>  <函數(shù)體></b></p><p>  return<返回值列表></p><p>  函數(shù)名可以是任何有效的Python標(biāo)識(shí)符</p><p>  參數(shù)列表是調(diào)用該函數(shù)是傳遞給它的值,可以有零個(gè)

102、(保留圓括號(hào))、一個(gè)或多個(gè)(用逗號(hào)分隔)</p><p>  函數(shù)體是函數(shù)每次被調(diào)用是執(zhí)行的代碼</p><p>  當(dāng)需要返回值時(shí)使用保留字return和返回值劉表,否則函數(shù)可以沒(méi)有return語(yǔ)句,在函數(shù)體結(jié)束時(shí)將控制權(quán)返回給調(diào)用者</p><p>  函數(shù)調(diào)用和執(zhí)行的一般形式</p><p>  <函數(shù)名>(<參數(shù)列表

103、>)</p><p><b>  函數(shù)的調(diào)用過(guò)程</b></p><p>  調(diào)用程序在調(diào)用處暫停執(zhí)行</p><p>  在調(diào)用時(shí)將實(shí)參復(fù)制給形參</p><p><b>  執(zhí)行函數(shù)體語(yǔ)句</b></p><p>  函數(shù)調(diào)用結(jié)束給出返回值,程序回到調(diào)用前的暫停處繼

104、續(xù)執(zhí)行</p><p><b>  lambda函數(shù)</b></p><p>  lambda函數(shù)又稱(chēng)匿名函數(shù),將函數(shù)名作為函數(shù)結(jié)果返回</p><p>  <函數(shù)名>=lambda<參數(shù)列表>:<表達(dá)式></p><p>  lambda函數(shù)與正常函數(shù)一樣,等價(jià)于下面表達(dá)式:<

105、/p><p>  def<函數(shù)名>(<參數(shù)列表>):</p><p>  return<表達(dá)式></p><p>  lambda函數(shù)用于定義簡(jiǎn)單的、能夠在一行內(nèi)表示的函數(shù),返回一個(gè)函數(shù)類(lèi)型</p><p>  f=lambda q,w,e,r:q+w+e+r</p><p>  f(1

106、,2,3,4)</p><p><b>  10</b></p><p>  lambda函數(shù)用于需要函數(shù)對(duì)象的場(chǎng)景</p><p>  5.2 函數(shù)的參數(shù)傳遞</p><p>  函數(shù)可定義可選參數(shù),使用參數(shù)的位置或名稱(chēng)傳遞參數(shù)值,根據(jù)函數(shù)中變量的不同作用域有不同的函數(shù)返回值方式</p><p>

107、;  可選參數(shù)和可變數(shù)量參數(shù)</p><p>  函數(shù)定義時(shí)部分參數(shù)可直接為存在默認(rèn)值的參數(shù)指定默認(rèn)值,當(dāng)函數(shù)被調(diào)用時(shí)如果沒(méi)有傳入對(duì)應(yīng)的參數(shù)值則使用函數(shù)定義時(shí)的的默認(rèn)值替代</p><p>  默認(rèn)參數(shù)必須指向不變對(duì)象</p><p>  函數(shù)調(diào)用時(shí)需要按順序輸入?yún)?shù),可選參數(shù)必須定義在非可選參數(shù)后</p><p>  dfe r(str,t

108、imes=2):</p><p>  print(str*times)</p><p><b>  r("T")</b></p><p><b>  TT</b></p><p><b>  r("T")</b></p>&

109、lt;p><b>  TTTT</b></p><p>  函數(shù)定義時(shí)可設(shè)計(jì)可變數(shù)量參數(shù),通過(guò)在參數(shù)前加星號(hào)(*)實(shí)現(xiàn)</p><p>  帶有星號(hào)的可變參數(shù)只能出現(xiàn)在參數(shù)列表最后,調(diào)用時(shí)這些參數(shù)被單指元組類(lèi)型傳遞到函數(shù)中</p><p>  def vfunc(a,*b)</p><p>  print(type

110、(b)</p><p>  for n in b:</p><p><b>  a+=n</b></p><p><b>  return a</b></p><p>  vfunc(1,2,3,4,5)</p><p>  <class 'tuple'

111、></p><p>  15 #1+2=3;3+3=6;6+4=10;10+5=15</p><p>  參數(shù)的位置和名稱(chēng)傳遞</p><p>  函數(shù)定義時(shí)實(shí)參默認(rèn)采用按照位置順序的方式傳遞給函數(shù),這種方式在參數(shù)很多的情況下可讀性較差</p><p>  Python提供了按照形參名稱(chēng)輸入實(shí)參的方式,調(diào)用函數(shù)時(shí)指定參數(shù)名稱(chēng),參數(shù)之間的

112、順序可任意調(diào)整</p><p><b>  函數(shù)的返回值</b></p><p>  return語(yǔ)句用來(lái)退出函數(shù)并將程序返回到函數(shù)被調(diào)用的位置繼續(xù)執(zhí)行</p><p>  return語(yǔ)句可同時(shí)將0個(gè)、1個(gè)或多個(gè)函數(shù)運(yùn)算后的結(jié)果返回給函數(shù)被調(diào)用的位置</p><p>  函數(shù)可以沒(méi)有return,此時(shí)函數(shù)不返回值<

113、;/p><p>  函數(shù)也可以用return返回多個(gè)值,多個(gè)值以元組類(lèi)型保存</p><p>  def func(a,b):</p><p>  return b,a</p><p>  s=func("t",2)</p><p>  print(s,type(s))</p><p

114、>  (2, 't') <class 'tuple'></p><p>  5.4 datetime庫(kù)的使用</p><p>  Python時(shí)間處理的標(biāo)準(zhǔn)函數(shù)庫(kù)datetime提供里一批顯示日期和時(shí)間的格式化方法。</p><p>  datetime庫(kù)概述</p><p>  dateti

115、me庫(kù)可以從系統(tǒng)中獲得時(shí)間,并以用戶(hù)選擇的格式輸出</p><p>  datetime庫(kù)以格林威治時(shí)間為基礎(chǔ),每天由3600*24秒精準(zhǔn)定義datetime庫(kù)以類(lèi)的方式提供多種日期和時(shí)間</p><p>  datetime.date:日期表示類(lèi),坑人表示年、月、日等。</p><p>  datetime.time:時(shí)間表示類(lèi),可表示小時(shí)、分鐘、秒、毫秒等。&

116、lt;/p><p>  datetime.datetime:日期和時(shí)間表示類(lèi),功能覆蓋date和time類(lèi)。</p><p>  datetime.timedelta:與時(shí)間間隔有關(guān)的類(lèi)。</p><p>  datetime.tzinfo:與時(shí)區(qū)有關(guān)的信息表示類(lèi)。</p><p>  datetime庫(kù)解析(datetime類(lèi))</p&g

117、t;<p>  datetime.datetime類(lèi)的使用方式是首先創(chuàng)建一個(gè)datetime對(duì)象,然后通過(guò)對(duì)象的方法和屬性顯示時(shí)間創(chuàng)建datetime對(duì)象的3種方法:</p><p>  datetime.now():返回一個(gè)datetime類(lèi)型,表示當(dāng)前日期和時(shí)間,精確到毫秒</p><p>  >>>from datetime import datet

118、ime</p><p>  >>>now=datetime.now()</p><p><b>  >>>now</b></p><p>  datetime.datetime(2018, 5, 13, 16, 49, 38, 627464)</p><p>  datetime.ut

119、cnow():返回一個(gè)datetime類(lèi)型,表示當(dāng)前日期和時(shí)間的UTC(世界標(biāo)準(zhǔn)時(shí)間)表示,精確到毫秒</p><p>  >>>from datetime import datetime</p><p>  >>>utcnow=datetime.now()</p><p><b>  >>>utcno

120、w</b></p><p>  datetime.datetime(2018, 5, 13, 8, 53, 59, 788612)</p><p>  直接使用datetime()構(gòu)造一個(gè)日期和時(shí)間對(duì)象:datetime(Y,M,D,hour=0,minute=0,second=0,microsecond=0)</p><p>  >>>

121、;some=datetime(2018,5,13,17,0,0,0)</p><p><b>  >>>some</b></p><p>  datetime.datetime(2018, 5, 13, 17, 0)</p><p>  -創(chuàng)建datetime對(duì)象后,可利用該對(duì)象的屬性顯示時(shí)間(以上述“some”為例)<

122、;/p><p>  datetime類(lèi)的常用屬性</p><p>  datetime類(lèi)的常用時(shí)間格式化方法</p><p>  strftime()方法用于輸出特定格式時(shí)間</p><p>  >>>some=datetime(2018,5,13,17,0,0,0)</p><p>  >>

123、>some.strftime("%Y年%m月%d日,%H時(shí)%M分%S秒")</p><p>  '2018年05月13日,17時(shí)00分00秒'</p><p>  >>>print('今天是{0:%Y}年{0:%m}月{0:%d}日'.format(some))</p><p>  今天是2

124、018年05月13日</p><p>  5.5 代碼復(fù)用和模塊化設(shè)計(jì)</p><p>  當(dāng)代編程語(yǔ)言從代碼層面采用函數(shù)和對(duì)象兩種抽象方式,分別對(duì)應(yīng)面向過(guò)程和面向?qū)ο髢煞N編程思想</p><p>  函數(shù)是程序的一種基本抽象方式,它將一系列代碼組織起來(lái)通過(guò)命名提供其他程序使用,任何其他代碼只有輸入?yún)?shù)即可調(diào)用函數(shù),更新函數(shù)功能時(shí),所有被調(diào)用處的功能都被更新。<

125、;/p><p>  對(duì)象是程序的一中高級(jí)抽象方式,它將程序代碼組織為更高級(jí)的類(lèi)。對(duì)象包括表征對(duì)象特征的屬性和代表對(duì)象操作的方法。</p><p>  模塊化設(shè)計(jì)值通過(guò)函數(shù)或?qū)ο蟮姆庋b功能將程序劃分成主程序、子程序和子程序間關(guān)系的表達(dá)。</p><p>  模塊化設(shè)計(jì)的兩個(gè)基本要求:</p><p>  緊耦合:盡可能合理劃分功能塊,功能塊內(nèi)部耦合

126、緊密</p><p>  松耦合:模塊間關(guān)系盡可能簡(jiǎn)單,功能塊之間耦合度低</p><p><b>  5.6 函數(shù)的遞歸</b></p><p>  遞歸的定義:函數(shù)定義中調(diào)用函數(shù)自身的方式稱(chēng)為遞歸</p><p>  數(shù)學(xué)經(jīng)典遞歸案例——階乘</p><p>  n!=n(n-1)(n-2).

127、..(1)</p><p>  n!=1 (n=0)n!=n(n-1)! (otherwise)</p><p><b>  遞歸的兩個(gè)關(guān)鍵特征</b></p><p>  存在一個(gè)或多個(gè)基例,基例不需要再次遞歸,是確定的表達(dá)式</p><p>  所有遞歸鏈要以一個(gè)或多個(gè)基例結(jié)尾</p><p&g

128、t;<b>  遞歸的使用方法</b></p><p>  def fact(n):</p><p><b>  if n==0:</b></p><p><b>  return 1</b></p><p><b>  else:</b></p&g

129、t;<p>  return n*fact(n-1)</p><p>  num=eval(input('請(qǐng)輸入一個(gè)整數(shù):'))</p><p>  print(fact(abs(int(num))))</p><p>  使用遞歸一定要注意基例的構(gòu)建,否則遞歸無(wú)法返回</p><p>  5.7 科赫曲線(xiàn)繪制&

130、lt;/p><p>  科赫曲線(xiàn)屬于分形幾何分支,它的繪制過(guò)程體現(xiàn)了遞歸思想</p><p>  from turtle import *</p><p>  def koch(size,n):</p><p><b>  if n==0:</b></p><p><b>  fd(size

131、)</b></p><p><b>  else:</b></p><p>  for angle in [0,60,-120,60]:</p><p>  left(angle)</p><p>  koch(size/3,n-1) # 遞歸</p><p>  def main(s

132、ize,level):</p><p>  setup(600,600) # 設(shè)置主窗體大小</p><p>  speed(0) # 設(shè)置畫(huà)筆速度,(1~10)</p><p>  hideturtle() # 隱藏turtle箭頭</p><p><b>  penup()</b></p><p&

133、gt;  goto(-150,50)</p><p><b>  pendown()</b></p><p>  pensize(1) # 設(shè)置畫(huà)筆尺寸</p><p>  koch(size,level)</p><p>  right(120)</p><p>  koch(size,leve

134、l)</p><p>  right(120)</p><p>  koch(size,level)</p><p>  main(300,3)</p><p>  5.8 Python內(nèi)置函數(shù)</p><p>  Python提供68個(gè)內(nèi)置函數(shù)</p><p><b>  abs()

135、</b></p><p><b>  all()</b></p><p><b>  any()</b></p><p><b>  asci()</b></p><p><b>  bin()</b></p><p>

136、<b>  bool()</b></p><p><b>  chr()</b></p><p><b>  complex()</b></p><p><b>  dict()</b></p><p><b>  divmod()</b&

137、gt;</p><p><b>  eval()</b></p><p><b>  float()</b></p><p><b>  hash()</b></p><p><b>  hex()</b></p><p><

138、b>  id()</b></p><p><b>  input()</b></p><p><b>  int()</b></p><p><b>  len()</b></p><p><b>  list()</b></p&g

139、t;<p><b>  max()</b></p><p><b>  min()</b></p><p><b>  oct()</b></p><p><b>  open()</b></p><p><b>  ord()&l

140、t;/b></p><p><b>  pow()</b></p><p><b>  print()</b></p><p><b>  range()</b></p><p>  reversed()</p><p><b>  ro

141、und()</b></p><p><b>  set()</b></p><p><b>  sorted()</b></p><p><b>  str()</b></p><p><b>  tuple()</b></p>

142、<p><b>  type()</b></p><p><b>  zip()</b></p><p><b>  bytes()</b></p><p><b>  delattr()</b></p><p>  bytearray()<

143、;/p><p>  callable()</p><p>  classmethod()</p><p><b>  compile()</b></p><p><b>  dir()</b></p><p><b>  exec()</b></p&g

144、t;<p>  enumerate()</p><p><b>  filter()</b></p><p><b>  format()</b></p><p>  frozenset()</p><p><b>  getattr()</b></p>

145、;<p><b>  globals()</b></p><p><b>  hasattr()</b></p><p><b>  help()</b></p><p>  isinstance()</p><p>  issubclass()</p>

溫馨提示

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

評(píng)論

0/150

提交評(píng)論