資源簡介 第 2 單 元 編程計算2.1計算機解決問題的過程計算機解決問題的一般過程:1.算法“算法”指解決問題的方法和步驟,是計算機為了解決問題而需要執行的有序的、無歧義的有限步驟的集合。2.算法的描述方法:(1)用自然語言描述算法自然語言是指人類日常生活中使用的語言,如漢語、英語等都是自然語言。特點:通俗易懂,但容易產生歧義,表示的含義往往不太嚴格。(2)用流程圖描述算法流程圖也稱程序框圖,是算法的圖形化表示方法。流程圖用一些圖形符號表示規定的操作,并用帶箭頭的流程線連接這些圖形符號,表示操作進行方向。特點:形象、直觀,更容易理解。常用流程圖符號及功能表示如下表:流程圖符號 名稱 功能起止框 表示算法的開始或結束輸入/輸出框 表示算法中數據的輸入或輸出處理框 表示算法中數據的運算處理判斷框 表示算法中的條件判斷流程線 表示算法中的運行方向連接符 表示流程圖的連續3.三種基本結構的流程圖算法的三種基本結構是順序結構、分支結構和循環結構。(1)順序結構是一種最簡單的基本結構,按照自上而下的先后順序依次執行程序語句。(2)分支結構也稱為選擇結構,是一種根據給定的條件進行判斷的結構。(3)循環結構是一種重復某一部分操作的結構。4.程序設計語言的發展程序設計語言經歷了從機器語言、匯編語言到高級語言的發展過程。(1)機器語言:由二進制的0、1代碼指令構成,能被計算機直接識別。特點:理解和記憶非常困難,并且容易出錯,編程效率極低。(2)匯編語言:是符號化的機器語言,采用英文助記符代替機器指令,比機器語言容易識別和記憶,從而提高了程序的可讀性。特點:是面向機器的語言,是為特定的計算機系統設計,屬于低級語言。(3)高級語言:更接近自然語言,不依賴于特定的計算機系統。特點:更容易掌握和使用,通用性更好,程序可讀性更強,也便于修改、維護。比較流行的高級語言有Java、C/C++及Python等。Python是一種面向對象的解釋型計算機程序設計語言,發明于1989年,具有簡單、免費、開源和可移植性等特點。簡單:Python是一種代表簡單主義思想的語言,它的這種偽代碼本質是其最大的優點之一。免費、開源:可以自由地發布這個軟件,閱讀它的源代碼,對它做改動,把它的一部分用于新的自由軟件中。可移植性:由于它的開源本質,Python已經被移植在許多平臺上,如Linux、Windows、Android等。1.用計算機程序解決問題的基本過程是( )。A.明確任務→建立表格→分析數據→形成報告B.確定主題→收集與選擇素材→規劃與設計→制作集成→評價修改C.需求分析→規劃與設計→素材的采集與加工→作品集成→發布與評價D.分析問題→設計算法→編寫程序→調試運行→檢測結果2.描述算法可以有多種方法,以下不是算法描述的方法( )。A.流程圖 B.程序代碼 C.自然語言 D.樹形圖3.將兩個變量互換的算法描述如圖所示,描述的方式是( )。兩個變量互換的算法:S1. 定義三個同種類型的變量x,y,zS2. 輸入x和yS3. 使z=x,即將x中的內容放入zS4. 使x=y,即將y中的內容放入xS5. 使y=z,即將z中的內容放入yS6. 輸出x和yA.偽代碼 B.流程圖 C.N-S圖 D.自然語言4.在用流程圖描述算法時,表示判斷的圖形符號是( )。A. B. C. D.5.農夫帶羊過河;農夫返回;農夫帶狼過河;農夫帶羊返回;農夫帶蔬菜過河;農夫返回;農夫帶羊過河。這是經典的“農夫過河”問題的可行算法。該算法的結構是( ) 。A.順序結構 B.選擇結構 C.分支結構 D.循環結構6.下圖所示的流程圖表達的是( )。A.順序結構 B.選擇結構 C.循環結構 D.跳轉結構7.計算機程序設計語言的發展一共經歷了三個階段,最早出現的編程加工語言是( )。A.自然語言 B.匯編語言 C.機器語言 D.高級語言8.高級語言更接近自然語言,并不特指某種語言,也不依賴特定的計算機系統,因而人們更容易掌握和使用,通用性也更好。以下選項中不屬于高級語言的是( )。A.Java語言 B.Python語言 C.匯編語言 D.VB語言9.關于Python語言的特點,以下選項中描述正確的是( )。A.Python語言不支持面向對象 B.Python語言是解釋型語言C.Python語言是編譯型語言 D.Python語言是非跨平臺語言10.Python文件的后綴名是( )。A..doc B..vbp C..py D..exe2.2做出判斷的分支1.利用賦值語句實現計算(1)常量:即在程序運行過程中值始終保持不變的量。所有的常數都是常量,可以是數字、字符串、布爾值、空值。(2)變量:即在程序運行過程中值允許改變的量。在Python中,變量的命名規則為:①必須是以字母或下劃線開頭,后面可以是字母、下劃線或數字;②變量的名字區分大小寫;③不能使用保留字。(3)運算符與表達式常用的算術運算符如下:算術運算符 ** * / // % + -功能 冪 乘 除 整除 取模 加 減算術表達式 a**b a*b a/b a//b a%b a+b a-b優先級 1 2 2 2 2 3 3表達式由一個或多個操作數通過運算符組合而成。通常分為數學表達式、關系表達式和邏輯表達式。注:Python中的算術運算存在著優先級順序,優先程度最高級別為1,級別數字越大,優先級越低。在同一個表達式中,如果有一個及以上的運算符,那么先執行優先級高的運算,同優先級的基本運算按照自左向右的順序執行。(4)數據類型為了便于數據的表示與處理,Python提供了整數、浮點數和字符串等常見的數據類型。float():根據一個字符串或整數創建一個新的浮點數(小數)。int():根據一個字符串或浮點數創建一個新的整數。str():根據一個數創建(也可以是任何其他類型)一個新的字符串。(5)賦值語句基本格式:變量=表達式功能:先計算右邊表達式的值,將表達式的值賦給左邊的變量。【例1】n=n+1 #先計算賦值號右邊的表達式n+1的值,再將這個值賦值給左邊的變量n。【例2】a=b=c=1 #數值1賦值給變量a,b,c。【例3】a,b,c=1,2,3 #數值1,2,3分別賦值給變量a,b,c。【例4】a,b=b,a #交換a,b兩個變量的值。【例5】c+=a #等效于c=c+a。常用的賦值運算符如下:賦值運算符 += -= *= **= /= //= %=賦值語句 a+=b a-=b a*=b a**=b a/=b a//=b a%=b等效于 a=a+b a=a-b a=a*b a=a**b a=a/b a=a//b a=a%b(6)輸入和輸出語句input():從鍵盤輸入數據。print():在屏幕上輸出數據,如有多個輸出項,可以使用“,”分隔。【例6】myname=input("請輸入myname:")print("hello",myname)2.利用分支語句實現計算當程序中需要根據不同的條件判斷來決定程序執行的走向時,可以使用if分支語句實現。if分支語句可以分為單分支和雙分支,基本格式如下: 單分支: if 條件: 語句或語句組雙分支: if 條件: 語句或語句組A else: 語句或語句組B分支語句的條件稱為關系表達式,關系表達式是用關系運算符連接起來的式子。常用的關系運算符如下:關系運算符 == > >= < <= !=功能 等于 大于 大于等于 小于 小于等于 不等于關系表達式 a==b a>b a>=b a<b a<=b a!=b常用的邏輯運算符如下:邏輯運算符 描述 用法 舉例not 非 not a not(2==3)的結果為Trueand 與 a and b 只有當兩個操作數都為True時,其結果才為True,如:(2<3)and(2>1)的結果為Trueor 或 a or b 只要有一個操作數為True,其結果為True,如:(2<3)or(1>2)運算符的優先級:(1)如果兩個或多個運算符出現在同一個表達式中,則要按照優先級確定運算順序。優先級高的運算符先運算,優先級相同的從左向右依次運算。(2)當表達式中出現“()”時,它的運算級別最高,應先運算“()”內的表達式;(3)運算符的優先級為:算術運算符>關系運算符>邏輯運算符;(4)在同類運算符中也要注意不同的優先級。例如,邏輯運算符not、and和or的優先級為: not>and>or。·多分支語句對于多分支語句的情況,Python語言通常使用if-elif-else語句來處理。格式如下:if 條件1: 語句或語句組Aelif 條件2: 語句或語句組B ……elif 條件n: 語句或語句組Nelse: 語句或語句組N+1·Python 格式化輸出 %s %f %d格式說明由%和格式字符組成,如%f,它的作用是將數據按照指定的格式輸出。格式說明是由“%”字符開始的。1.%d 有符號的十進制整數age=18print("我的年齡是%d" % age)輸出:我的年齡是182.%s字符串name ="lulu"print("我的名字是 %s" % name)輸出:我的名字是lulu3.%f 浮點數weight=49.9print("我的體重是%f" % weight)輸出:我的體重是 49.9000004.%.2f表示小數點后顯示的兩位小數位weight = 49.9print("我的體重是%.2f" % weight)輸出:我的體重是 49.90·round函數python的內置函數,用于數字的四舍五入s= 1.23567print(round(s,2)) #保留兩位小數輸出:1.241.下列選項中可以作為合法變量名的是( )。A.k-b B.3y C.Boy D.f(x)2.在Python中,以下表達式不正確的是( )。A.a= # *6 B.b= *** + @@@ C.c= | **3 D.d=3* ** 3.編寫Python程序時,表達式x=應寫成( )。A.x=a-b/2*a B.x=a-b/2aC.x=(a-b)/(2*a) D.(a-b)/2*a4.Python表達式3+4*5%2**3的運算結果是( )。A.3 B.23 C.15 D.75.下列語句中,在Python中非法的是( )。A.x=y=z=1 B.x,y=y,x C.x=(y=z+1) D.x+=y6.執行下列Python程序,a,b的值為( )。a,b=3,7a=a+bb=a-ba=a-bprint(a,b)A.10,-4 B.7,3 C.-4,-4 D.10,37.表達式3<5>2的運算結果為( )。A.False B.true C.True D.false8.表達式a%2==1 and a%5==0的含義可以描述為( )。A.能被5整除余1 B.能被2整除余1C.能被5整除的偶數 D.能被5整除的奇數9.以下流程圖中x為整型變量。若輸入9,算法執行結果是( )。A.PM B.Error C.AM D.WRONG10.下面的Python程序段運行后的輸出結果是( )。a=5b=8if (a>b): print(a,"是大數")else: print(b,"是大數")A.a是大數 B.b是大數 C.5是大數 D.8是大數2.3周而復始的循環在計算機中某些代碼的反復執行被稱為循環。循環三要素:循環變量、循環體、循環終止條件。1.列表列表在Python中的作用非常強大,它可以包含多個數據元素,同時它是一個有序的集合。列表就是用“[ ]”將數據集中存放,便于記錄和處理;用“[ ]”指出從哪里開始,到哪里結束;用逗號分隔列表中的各項;可以包含Python中能存儲的任何類型的數據。列表的使用方法:(1)建立列表:list=[5,10,15, a , b , c ,True](2)在列表末尾增加元素:list.append( False )(3)插入元素:list.insert(2, bc )(4)刪除元素:list.remove(10)或 del list[1](5)列表逆序:list.reverse()(6)獲取元素:list[索引號],如list[0](7)打印列表:print(list)(8)列表排序:list.sort()2.計數循環循環重復次數一定時,通常被稱為計數循環。在Python中,使用for語句來創建這類循環。for語句的基本格式如下: for 循環變量 in 列表:語句或語句組循環執行時,依次將列表中的元素賦給循環變量,并且執行循環體,直到元素被取完,循環結束。·range()函數格式:range(start,stop[,step])功能:默認從0開始,左閉右開,生成一個列表。參數說明:start:計數從 start 開始,默認從 0 開始,如:range(5)等效于range(0,5);stop:計數到 stop 結束,但不包括 stop,如:range(0,5)是[0,1,2,3,4],沒有5;step:步長,默認為1,如:range(0,5)等效于 range(0,5,1)。3.條件循環條件循環一般用于循環次數未知的情況。只有當循環條件成立時,才執行循環體。在Python中,使用while語句來創建這類循環。while語句的基本格式如下:while關系表達式:語句或語句組功能:判斷條件是否成立,如果成立,則執行循環語句或語句組,不斷重復,直到條件不成立,退出循環。注意:(1)有一類特殊的關系表達式,如數字0表示假,非0數字表示真。如果循環是以“while 1:”開頭,那么在不加干預的情況下程序就會陷入“死循環”,按快捷鍵Ctrl+C即可停止程序運行。(2)break語句可以用來終止循環語句,即循環沒有結束,也會停止執行循環語句,即跳出整個循環,可以用在while和for循環中。(3)continue 語句跳過當前循環的剩余語句,然后繼續進行下一輪循環,可用在while和for循環中。4.調試程序編寫程序時難免會出現錯誤,這時可以借助Python的調試器pdb。方法:在程序開頭加入語句“import pdb”,然后在適當的位置放一個“pdb.set_trace()”,就可以設置一個斷點,讓程序暫停運行,進入pdb調試環境。我們可以用命令“p”查看變量,用命令“c”繼續運行,用命令“q”退出程序。·循環嵌套:在一個循環中包含另一個循環。如利用雙重循環可實現輸出九九乘法表:for i in range(1,10):for j in range(1,i+1):print("{e:1}*{1:1}={2:2}".format(j,i,j*i),end="")print() #換行注:format()函數控制格式化的輸出。其中,“{0:1}”表示第0個參數,即j輸出長度為1個字符;“end=""”表示輸出結束后不換行。1.下列關于Python列表的描述中,錯誤的是( )。A.列表元素可以被修改 B.列表元素允許為空C.列表索引從下標0開始 D.列表元素的數據類型必須一致2.已知Python列表s=[ 長江 , 長城 , 黃山 , 黃河 ],那么s[-2]是( )。A. 長江 B. 長城 C. 黃山 D. 黃河 3.已知Python列表a=[ W , o , r , d ],依次執行如下操作后,列表a的值為( )。a.pop()a.append( l )a.append( d )A.[ W , o , r , d ] B.[ W , o , r , l , d ]C.[ o , r , d , l , d ] D.[ l , d , o , r , d ]4.下列Python程序段運行的結果是( )。for i in range(1,10):x=x+iprint(x)A.1+10的和 B.1+9的和C.1~9所有整數的和 D.1~10所有整數的和5.下列代碼的輸出結果是( )。for i in range(0,10,2):print(i,end=" ")A.0 2 4 6 8 B.2 4 6 8 C.0 2 4 6 8 10 D.2 4 6 8 106.下列代碼的輸出結果是( )。sum=1for i in range(10,0,-1):sum+=iprint(sum)A.1 B.56 C.67 D.56.07.下列關于Python循環結構的描述中,錯誤的是( )。A.break 用來結束當前當次語句,但不跳出當前的循環B.用循環遍歷的對象可以是字符串、混合的數據類型和range()函數等C.Python通過for、while等保留字構建循環結構D.continue只結束本次循環8.下列代碼的輸出結果是( )。for i in range(1,6):if i%4 == 0:continueelse:print(i,end =",")A.1,2,3, B.1,2,3,4,C.1,2,3,5, D.1,2,3,5,69.如下程序段a=2b=1while a >= b:b=a * ba=2 * a執行后,a,b的值分別為( )。A.4 2 B.16 64 C.8 8 D.2 110.輸入數字“12345”,下列代碼的輸出結果是( )。x=int(input("Enter a number: "))s=0while x!=0:s+=x%10x//=10print(s)A.12345 B.1234 C.15 D.1232.4可以復用的代碼在程序代碼中有許多功能是相似或完全相同的,這時可以考慮用代碼復用的方法提高程序的效率。這既可以減少重復編寫代碼的工作量,也可以使程序的結構更加清晰。常見方法:“函數”和“模塊”是代碼復用的常見方法。“函數”和“模塊”來源:Python自帶的內置函數和模塊;自己編寫一些函數或模塊;到代碼共享社區去下載。1.函數函數類型:系統函數和用戶自定義函數。(1)系統函數即函數庫中的標準函數,是程序設計語言或操作系統提供給用戶的一系列已經編制好的程序。如print()和input()函數都是系統函數。常見的系統函數包括數學運算類函數、數據轉換類函數、字符串操作類函數、輸入輸出函數、文件操作類函數等。(2)用戶自定義函數則是用戶自己編寫的一段程序。函數一般包括函數名、參數、返回值和函數體等四部分內容,其中函數名和函數體是必不可少的,參數和返回值可根據需要進行定義。自定義函數的基本格式:def函數名(參數1,參數2……):#函數說明語句或語句組return返回值參數是用來向函數傳遞值的,當有多個參數時,各個參數之間用逗號分隔開。函數執行完成后,由return語句將表達式返回給調用者,結束函數。函數的調用格式:變量=函數名(參數)2.發布代碼通過模塊發布代碼可以讓很多人共享你的程序。方法:(1)做好發布前的準備工作。在D:\創建一個文件夾mymodule,其中包含mymodule.py和setup.py兩個文件。mymodule.py是一個模塊文件,其內容就是自定義的函數;setup.py文件包含有關發布的元數據。(2)打開mymodule所在的目錄,構建發布文件。(3)將發布文件安裝到你的Python本地副本或在互聯網上發布你的代碼。3.導入模塊并使用已經構建發布的模塊或系統自帶模塊,必須先導入程序才能使用。導入模塊的語句格式:import 模塊名。·Python中提供了大量標準模塊,亦稱標準庫,如time模塊和random模塊。(1)time模塊可以獲取計算機的時鐘信息,包括日期和時間,也可以用于延時。time.time():返回當前時間的時間戳,即1970紀元后經過的浮點秒數。time.sleep(secs):參數secs是要暫停執行的秒數,如: time.sleep(2)表示延時2秒。time.asctime([t]):格式化顯示時間。(2)random模塊可以生成隨機數。random.random():用于生成一個0到1的隨機浮點數:0<=n<1.0。random.randint(a,b):用于生成一個指定范圍內的隨機整數,生成的隨機數n的取值范圍為:a<=n<=b。random.randrange([start,]stop[,step]):從指定范圍內,按指定基數遞增step的集合中獲取一個隨機數,如:random.randrange(1,10,2)即在生成的列表中[1,3,5,7,9]中獲取一個隨機數。1.Python語言中用來定義函數的關鍵字是( )。A.import B.def C.function D.return2.以下對于函數的定義選項中,錯誤的是( )。A. def vfunc(*a,b): B. def vfunc(a,b):C. def vfunc(a,*b): D. def vfunc(a,b=2):3.關于函數的參數,以下選項中描述錯誤的是( )。A.可選參數可以定義在非可選參數的前面B.一個元組可以傳遞給帶有星號的可變參數C.在定義函數時,可以設計可變數量參數,通過在參數前增加星號(*)實現D.在定義函數時,如果有些參數存在默認值,可以在定義函數時直接為這些參數指定默認值4.以下Python程序段,運行后輸出的值是( )。def factorial(n):s=1for i in range(2,n+1): s=s*ireturn stotal=factorial(4)print(total)A.24 B.4 C.44 D.165.運行下列程序后,函數f(4)的值為( )。def f(n):if n==1: return 1else: return n+f(n-1)A.1 B.3 C.6 D.106.下列代碼的輸出結果是( )。def fun(a,b) :t=aa=bb=tprint(a,b)# pow(x,y)返回x**y的值fun(pow(3,2),pow(2,3))A.3 2 B.2 3 C.8 9 D.9 87.關于python發布代碼及安裝使用代碼,下列說法中錯誤的是( )。A.創建一個文件夾mymodule,其中包含mymodule.py和setup.py(包含發布的元數據)兩個文件B.在DOS命令行中打開mymodule所在的目錄,使用“python setup.py sdist”命令構建發布文件C.已經構建發布的模塊必須先導入程序,然后才能使用。導入時只能使用語句“import mymodule”,不可以用“from mymodule import *”D.下載安裝,使用“python setup.py install”命令安裝到你的Python本地副本中8.以下關于模塊說法中,錯誤的是( )。A.一個xx.py就是一個模塊B.任何一個普通的xx.py文件都可以作為模塊導入C.模塊文件的擴展名不一定是.pyD.運行時會從指定的目錄搜索導入的模塊,如果沒有,會報錯異常9.Python中很多模塊必須導入后才能使用,下列選項中哪個可以導入模塊?( )A. import mymodule B. imput mymoduleC. def mymodule D. print mymodule10.想要在Python程序運行時產生一個隨機數,需要導入的模塊是( )。A.data B.random C. pygame D.turtle第2單元2.1 1.D 2.D 3.D 4.B 5.A 6.C 7.C 8.C 9.B 10.C2.2 1.C 2.C 3.C 4.D 5.C 6.B 7.C 8.D 9.C 10.D2.3 1.D 2.C 3.B 4.C 5.A 6.B 7.A 8.C 9.B 10.C2.4 1.B 2.A 3.A 4.A 5.D 6.C 7.C 8.C 9.A 10.B 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫