計(jì)算機(jī)編程導(dǎo)論_第1頁(yè)
已閱讀1頁(yè),還剩31頁(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、計(jì)算機(jī)編程導(dǎo)論,課程建設(shè)組 編著,2013.3,第1章 順序程序設(shè)計(jì),1.5 順序程序設(shè)計(jì)基礎(chǔ)知識(shí)1.6 順序程序設(shè)計(jì)基礎(chǔ)知識(shí)的應(yīng)用,框圖復(fù)習(xí),框圖又稱(chēng)流程圖,是表達(dá)程序設(shè)計(jì)思想和程序設(shè)計(jì)步驟的一種直觀工具。,開(kāi)始,開(kāi)始框—用于流程的開(kāi)始,結(jié)束,結(jié)束框—用于流程的結(jié)束,,功能框—用來(lái)完成計(jì)算等功能,單分支判斷框—用于解決單分支問(wèn)題例子:if x>0: n=n+1,雙分支判斷框—用于解決雙分支問(wèn)題例子:if x&

2、gt;0:y=1+2*xelse:y=0print(' y=', y),循環(huán)框1—用于解決需要反復(fù)進(jìn)行的問(wèn)題。例子1:s=[1, 2, 3]for x in s:print(x)例子2:i=1s=0while i<=100:s=s+ii=i+1print(s),循環(huán)框2—用于解決需要反復(fù)進(jìn)行的問(wèn)題。i=1s=0while True:s=s+ii=i

3、+1if i>100:breakprint(s),輸入,輸出,輸入框—向程序輸入數(shù)據(jù)例子:x=input('x='),輸出框—程序向外輸出信息例子:print 's=', s,框圖直觀且易于修改,有利于人們表達(dá)出解決問(wèn)題的思想和方法。,1.5 順序程序設(shè)計(jì)基礎(chǔ)知識(shí),1.5.1 Python的對(duì)象模型對(duì)象是python語(yǔ)言中最基本的概念,在python中處理的每樣?xùn)|西都是對(duì)

4、象。python中有許多內(nèi)置對(duì)象可供編程者使用,有些內(nèi)置對(duì)象可直接使用,如數(shù)字、字符串、列表、del等;有些內(nèi)置對(duì)象需要導(dǎo)入模塊才能使用,如正弦函數(shù)sin(x),隨機(jī)數(shù)產(chǎn)生函數(shù)random( )等。,常用內(nèi)置對(duì)象,1.5.2 python的變量和引用,1.變量的創(chuàng)建 x=3 創(chuàng)建了變量x2.引用 在python中從變量到對(duì)象的連接稱(chēng)為引用。>>>x=3,變量擁有自己的存儲(chǔ)空間,變量連接到對(duì)象

5、是該變量存儲(chǔ)了對(duì)象單元的內(nèi)存地址,并沒(méi)有存儲(chǔ)對(duì)象的值。,3. 共享引用 共享引用是指多個(gè)變量引用同一個(gè)對(duì)象。下面的語(yǔ)句使兩個(gè)變量都引用同一個(gè)對(duì)象3>>>a=3>>>b=a下面在windows中的idle中演示對(duì)象、變量和引用,1.5.3.1 整數(shù) 十進(jìn)制整數(shù)如,0、-1、9、123 十六進(jìn)制整數(shù),需要16個(gè)數(shù)字0、1、2、3、4、5、6、7、8、9、0、a、b、c、d

6、、e、f來(lái)表示整數(shù),為了告訴計(jì)算機(jī)這是一個(gè)十六進(jìn)制數(shù),必須以0x開(kāi)頭,如0x10、0xfa、0xabcdef 八進(jìn)制整數(shù),只需要8個(gè)數(shù)字0、1、2、3、4、5、6、7來(lái)表示整數(shù),為了告訴計(jì)算機(jī)這是一個(gè)八進(jìn)制數(shù),必須以0o開(kāi)頭,如0o35、0o11 二進(jìn)制整數(shù)、只需要2個(gè)數(shù)字0、1來(lái)表示整數(shù),為了告訴計(jì)算機(jī)這是一個(gè)二進(jìn)制數(shù),必須以0b開(kāi)頭如,0b101、0b100,1.5.3 數(shù)字,數(shù)字是python中最常用的對(duì)象。,1

7、.5.3.2 浮點(diǎn)數(shù) 浮點(diǎn)數(shù)又稱(chēng)小數(shù),如 15.0、0.37、-11.2、1.2e2、314.15e-21.5.3.3 復(fù)數(shù) 復(fù)數(shù)是由實(shí)部和虛部構(gòu)成的數(shù),如3+4j、0.1-0.5j,>>>a=3+4j>>>b=5+6j>>>c=a+b>>>c8+10j>>> c.real #復(fù)數(shù)的實(shí)部8.0>>

8、;> c.imag#復(fù)數(shù)的虛部10.0,1.5.4 字符串 用單引號(hào)或雙引號(hào)括起來(lái)的符號(hào)系列稱(chēng)為字符串,如'abc'、'123'、'中國(guó)'、"Python" 空串表示為''或 "",字符串合并>>> a='abc' + '123‘2. 字符串格式化

9、把對(duì)象按格式要求轉(zhuǎn)換為字符串。>>>a=3.6674>>>'%7.3f' % a ' 3.667',3. 轉(zhuǎn)義字符 轉(zhuǎn)義字符可表示所有字符 如' \n '是換行符' \x41 ' 、 ' \101 ' 、 ' A '都表示字符A,4. 字符串中字符的位置,字符串中字符的位置

10、如圖1-7所示。每1個(gè)字符都有自己的位置,有兩種表示方法,從左端開(kāi)始用非負(fù)整數(shù)0、1、2等表示,從右端開(kāi)始則用負(fù)整數(shù)-1、-2等表示。,5. 字符串的截取 截取就是取出字符串的子串。截取有兩種方法,一種是索引 s[index]取出一個(gè)字符;另一種是切片s[[start] : [end]]取出一片字符。 請(qǐng)看書(shū)上的例子6. 字符串的比較 字符串的比較是比較對(duì)應(yīng)位置上的編碼 請(qǐng)看書(shū)上的例子7. 字

11、符串的分離如,>>> s='apple,peach,banana,pear'>>> li=s.split(',')>>> li[' apple ', ' peach ', ' banana ', ' pear '],8. 字符串查找字符串查找是在字符串中查找子串,方法為s.f

12、ind(sub[,start[,end]]),sub是要查找的子串,start是查找的開(kāi)始位置,end是查找的結(jié)束位置。找到則返回子串在主串的位置,找不到則返回-1。演示如下:>>> s='banana,hi,pear'>>> n=s.find('Hi')>>>n-1>>> m=s.find('hi')&g

13、t;>>m7下面取出子串'hi'>>>s2=s[m:m+2]>>>s2'hi',1.5.5 操作符和表達(dá)式 請(qǐng)看表1-4,1.5.6 常用內(nèi)置函數(shù) 請(qǐng)看表1-5,1.5.7 對(duì)象的刪除Python中刪除對(duì)象用del語(yǔ)句。del用來(lái)刪除一個(gè)對(duì)象,并釋放對(duì)象所占資源。del的用法演示如下:>>

14、;>a=[1, 2, 3]>>>del a[1]>>>a[1, 3]>>>x=5>>>x5>>>del x #此后x就不存在了,1.5.8 輸入輸出用Python進(jìn)行程序設(shè)計(jì),輸入是通過(guò)input( )函數(shù)來(lái)實(shí)現(xiàn)的,imput( )的一般格式為:x=input('提示:') 該函數(shù)返回輸入的對(duì)象

15、。 在Python3.2.3中,輸入的任何東西都是一個(gè)字符串,因而當(dāng)不需要字符串時(shí),需要用eval( )函數(shù)轉(zhuǎn)換,在Python2.7.3中輸入的東西不會(huì)變成串,因而不需要轉(zhuǎn)換。 在Python程序設(shè)計(jì)中,輸出是通過(guò)print語(yǔ)句來(lái)完成的,如:>>>print 1+23>>>print 1, 2, 31 2 3Python3.2.3 輸出任何東西時(shí),都必須加( ),如pri

16、nt(1),,,1.5.9 模塊的導(dǎo)入 常用的是 import 模塊名 如: >>>import math >>>math.sin(0.5) #求0.5的正弦 >>>import random >>>x=random.random( ) #獲得[0,1) 內(nèi)的

17、隨機(jī)小數(shù) >>>y=random.random( ) >>>n=random.randint(1,100) #獲得[1,100]上的隨機(jī)整數(shù),1.7 順序程序設(shè)計(jì)基礎(chǔ)知識(shí)的應(yīng)用,【例1-3】任意輸入三個(gè)英文單詞,按字典順序輸出。,分析:三個(gè)單詞輸入后,需要比較兩個(gè)字符串的大小,必須時(shí)交換兩個(gè)字符串。,#Exp1_3.pys=input('x,y,z=')x, y

18、, z=s.split(',') #把字符串用逗號(hào)進(jìn)行分離,返回子串構(gòu)成的列表if x>y: x, y=y, x #交換x, y的值 if x>z: x, z=z, xif y>z: y, z=z, yprint(x, y, z),輸入及程序運(yùn)行結(jié)果:x, y, z=‘bin,oct,hex’bin hex oct,【例1-4】輸入一個(gè)二元一次方

19、程組,解方程組。,分析:根據(jù)代數(shù)知識(shí),二元一次方程組的解是由方程組的4個(gè)系數(shù)和2個(gè)常數(shù)決定的。用加減消元法,把方程組等號(hào)左端區(qū)域變成對(duì)角形,從而得到解。,從,變?yōu)?圖1-11 加減消元法解二元一次方程組,#Exp1_4.py a=[[0, 0, 0], [0, 0, 0]] #定義一個(gè)列表s=(input('請(qǐng)輸入第1個(gè)方程的3個(gè)數(shù):'))a[0][0], a[0][1], a[0][2]=eval(s)s=

20、(input('請(qǐng)輸入第2個(gè)方程的3個(gè)數(shù):'))a[1][0], a[1][1], a[1][2]=eval(s)#第1行乘以-a[1][0]/a[0][0]加到第2行d=-a[1][0]/a[0][0]a[1][0]=a[1][0]+d*a[0][0]a[1][1]=a[1][1]+d*a[0][1]a[1][2]=a[1][2]+d*a[0][2]#第2行乘以-a[0][1]/a[1][1]加到第1行

21、d=-a[0][1]/a[1][1]#a[0][0]=a[0][0]+d*a[1][0]a[0][1]=a[0][1]+d*a[1][1]a[0][2]=a[0][2]+d*a[1][2]print('x=', a[0][2]/a[0][0])print('y=', a[1][2]/a[1][1]),輸入及程序運(yùn)行結(jié)果:請(qǐng)輸入第1個(gè)方程的3個(gè)數(shù):1,2,3請(qǐng)輸入第2個(gè)方程的3個(gè)數(shù):4,9,7

22、x= 13.0y= -5.0,1.8 代碼塊的縮進(jìn)python程序是依靠代碼塊的縮進(jìn)來(lái)體現(xiàn)代碼之間的邏輯關(guān)系的,縮進(jìn)結(jié)束就表示一個(gè)代碼塊結(jié)束了。,【例1-5】 解決行列式的輸出的問(wèn)題#Exp1_5.pya=[[111, 2, 30], [4, 50, 6], [7, 8, 9]],#Exp1_5.pya=[[111, 2, 30], [4, 50, 6], [7, 8, 9]]s1=''print(&

23、#39;______________1________________')for x in a:s=''for y in x:s1='%6d' % ys=s+s1print(s),s1=''print '______________1________________'for x in a:s=''for y i

24、n x:s1='%6d' % ys=s+s1print s,print '______________2________________'i=j=0while i<3:j=0s=''while j<3: s1=str(a[i][j])s1=s+(s1+' '*(6-len(s1)))j=j+1print s

25、i=i+1print '\n用了兩種方法\n',程序運(yùn)行結(jié)果:______________1________________ 111 2 30 4 50 6 7 8 9______________2________________111 2 30 0 34 50 6 1 37 8

溫馨提示

  • 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)論