資源簡介 第四章程序設計基礎一、選擇題1.Python程序中以下變量名正確的是( )A.a* B.age C.#b D.print2.判斷數值x是否在區間[a,b]內,下列表達式正確的是( )A.x >= a and x <= b B."a" <= x <= "b"C.a≤x≤b D.a <= x or x <= b3.有如下 Python 程序段,假設程序運行正常,圖A所示圖片是原始圖片,則推測程序運行結果圖片是( )from PIL import Imageimport numpy as npimport matplotlib.pyplot as pltchoicelist,choice=[50,128,188,255],256for i in choicelist:if ichoice=ifn='tiger02.jpg'img=np.array(Image.open(fn).convert('L'))rows,cols=img.shape #圖像尺寸分別賦值for i in range(rows): #依次取每個像素的坐標for j in range(cols):if (img[i,j]<=choice): #像素值小于等于指定值,賦值1,否則為0img[i,j]=0else:img[i,j]=1plt.figure("tiger128") #指定當前繪圖對象plt.imshow(img,cmap='gray') #顯示灰度圖像plt.axis('off') #關閉圖像坐標plt.show() #彈出包含了圖片的窗口A. B. C. D.4.下列Python變量名錯誤的是( )A._1 B.BA C.cds_11 D.11_abb5.有下列Python程序段:a=[3,7,8,2,19,10,16,12]n=len(a)for i in range(2):k=ifor j in range(i+1,n):if a[k]k=jif i!=k:a[i],a[k]=a[k],a[i]下列說法不正確的是( )A.程序段執行后,列表a中的元素為[19,16,8,2,3,10,7,12]B.代碼“for i in range(2):”等價于“for i in range(0,2):”C.程序段執行后,變量k的值為7D.將代碼“if i!=k:”修改為“if k>i:”,不會影響程序的運行結果6.有如下Python程序段:k=[29,38,78,17]m=k[0]for i in k:if i>m:m=iprint(m)該程序段執行后,輸出結果為( )A.29 B.38 C.78 D.177.有如下 Python 程序段:s=0for k in range(3,1,-1):if k <= 1 :x = 1if k <= 2 :x = 2if k <= 3 :x = 3s = s + xprint(s)執行該程序段后,輸出顯示的內容是( )A.9 B.8 C.6 D.38.有如下Python程序段:for i in range(50 ,1 ,—1 ):print(i)則輸出的最后一個元素值是( )A.50 B.-49 C.1 D.2二、簡答題9.判斷輸入的一個整數能否同時被3和7整除,若能,則輸出“Yes”;否則輸出“No”。10.編寫程序,根據輸入的年份(4位整數),判斷該年份是否是閏年。三、操作題11.水仙花數是指一個三位數,它的每個位上的數字的3次方之和就等于它本身,例如:1**3+5**3+3**3=153。這類三位數也被叫做自戀數、自冪數或者阿姆斯特朗數。[問題求解]設這個數存放于變量x中,變量g、s、b分別存放個位、十位、百位上的數。需得分離數字得到每位上的數,即將變量g、s、b表示為x的形式。請閱讀如下python程序,在空白處填寫適當的表達式或語句,使程序完整。print ("三位數之內的水仙花是:")for x in___(100,1000):b=x//100s=(x//10)___g=___If x=(b**3 +s**3+g**3):print(___)四、判斷題12.def塊中的代碼不是主程序的一部分,會跳過該段代碼.__( )__13.在Python中,s=s+5是錯誤的賦值語句。___( )___14.在循環中continue語句的作用是跳出循環的執行。__( )__15.Python中的“=”是賦值運算符,跟數學上的“=”意義不一樣。___( )___16.如果變量a=5,那么表達式10>a and a<3的結果為False。___( )___17.實時獲得鼠標的狀態并對鼠標單擊做出正確的響應,只有不斷地進行監聽、更新游戲狀態、重繪屏幕三個步驟的操作。 __( )__五、填空題18.以下程序引入Python的math模塊,使用math模塊下的floor函數對命令行輸入的實數進行取整n=input(“請輸入一個實數:”)n2= math. floor(float(n))print(n2)該程序段劃線處應填入的代碼為________。19.閱讀下列程序,寫出運行結果i = 0 sum = 0 t = 1 while sum < 10:i = i+ 1 t=t*i sum = sum + t print(sum)運行輸出結果是:_______________20.項目學習:解密盛唐時期詩人關系【項目情境】唐代詩人史傳有名有姓者不下千余人,他們組成了大大小小不同的朋友圈。有的因為詩風接近,如李白代表的浪漫主義、杜甫代表的現實主義、王維代表的田園山水、芩參代表的邊塞詩風;有的因為年齡大體相近,如盛唐時期的李白、杜甫、賀知章等;有的因為政見相近,如韓愈作為古文運動的領袖級人物,當時很多文人墨客以進入他的朋友圈為榮。在盛唐時期有這樣一個朋友圈,他們的友誼跨越數十年,詩人之間通過互動詩歌,表達抒發情感,是他們朋友圈的一種表現方式,用計算機來分析這個時代的唐詩,就會發現詩人之間有著你意想不到的千絲萬縷的關系。學校某研究性學習小組利用大數據分析技術,通過對詩詞分析,繪制盛唐時期幾位詩人(杜甫、李白、王維、孟浩然……)之間的社交關系網絡圖,試圖推測哪位詩人是同時代詩人的核心,哪位詩人的影響最大,從而更好地學習、理解唐詩。【項目準備】為完成項目,需要確定主題、目標、制訂規劃等各項工作。在此不一一展示。明確的主題—盛唐時期的詩人及詩詞分析和詩人社交關系網絡圖【項目實施】項目研究主要以詩人詩作為依據。具體實施過程如下:(一)明確需要采集的數據選擇合適的采集途徑、工具和方法。全唐詩一共四萬多首,分析采集相關數據的條件:①盛唐時期;②詩人、詩人之間經常稱呼對方的別名;③考慮到同名同姓的問題,因此還需要詩人的生卒年的信息。根據要求,完成答題。(1)全唐詩數量較多,一共四萬多首,來源分散,存儲在互聯網不同的服務器與各客戶終端。從大數據存儲與計算的角度來看,由此可知大數據具有____________的特征。(單選)A.精確讓位于模糊B.價值密度低C.分布式存儲D.變化速度快(2)網絡上如此海量的關于唐詩的數據,有文字、圖片、視頻、音頻等。這些數據種類和格式也不一致,表明各種____________數據共存于網絡中。(多選)A.結構化B.半結構化C.非結構化D.網狀結構(3)面對繁雜的數據,學習小組決定研究解密盛唐時期詩人關系,并利用計算機程序從網絡中采集詩人、別名等相關的文本數據,并以一定的數據結構存儲形成盛唐詩庫。存儲數據主要有兩種方式,一種是____________,一種是數據云存儲。你建議學習小組采用____________數據存儲方式,理由是___________________。(二)利用 Python程序采集、整理、分析數據。第一步,從互聯網中篩選出符合條件的詩人及詩作等文本,整理并形成盛唐詩庫;第二步,確定人物關系分析策略,即從唐詩庫中搜索、統計詩人或別名的引用次數,確定二人之間的疏密關系,規則是詩的標題和正文中只要提到過對方,那么兩者之間的引用關系加1,若一首詩中提到多次對方,只算一次引用;第三步,編寫程序并調試驗證。用爬蟲程序段(如下圖所示)采集數據。根據要求,完成答題。base_url=’http://www./shici/lis\ t?cate=%E5%94%90%E8%AF%97%E4%B8%89%E7%99%BE%E9%A6%96&p=’ import requests import parsel import re headers={ ‘User-Agent:’Mozilla/5.0(Windows NT 10.0;WOW64)AppleWebKit/537.36(KHTML, like Gecko) } for i in range(1,3): the_ url=base _url+str(i) response=requests get (the _url, headers=headers) html_ str=response. text html= parsel. Selector(html_str) title_url= html. xpath(’//div[@class="poem_ content"]’).extract() f=open("poet. txt","a" ) for poet in title_url: the_peom=urls=re findall(<div class="poem_content">(.* ?)’, poet) f write(str(the_ peom[0])) f. write("\n") f.close()(4)使用爬蟲程序獲取文本數據并形成唐詩庫文件,所使用的數據采集方法為____________(選填:系統日志采集法、網絡數據采集法其他數據采集方法)。閱讀程序可知每首詩存放于列表poem[]中(以唐詩“春曉”為例如下表),采集后的數據保存在poet.txt文件中,該文件是一個_________________(選填:數據庫文件、文檔文件、圖像文件、網頁文件)。該數據采集方法可以將非結構化數據從網頁中抽取出來,將其存儲為統一的數據文件,并以_______________________的方式存儲(選填:結構化、半結構化)Poem[0] Poem[1] Poem[2] Poem[3]“春曉” “唐” “孟浩然” “春眠不覺曉,……,花落知多少”。(5)以詩人甲、乙為例解密二人關系,完成答題。數據處理過程中要運用一定的分析方法對大量無序的數據進行整理、分析挖掘數據內在的結構和規律,從而提取有價值的、有意義的數據。數據分析一般包括特征探索、關聯分析、聚類與分類等。讓計算機搜索遍歷唐詩庫中有關甲、乙兩位詩人的詩文,統計兩位詩人或別名相互的引用次數,找尋二人之間的關聯。這是運用了__________________(選填:特征探索、關聯分析、聚類與分類)方法進行數據分析,也是__________________(選填:枚舉、二分查找、排序)算法思想去求解這一問題的體現。(6)編制計算機程序解決問題的過程中,__________________是編程的核心,是解決問題的方法和步驟。選用Python程序設計語言編寫程序,Python屬于__________________(選填:分析問題、設計算法、編寫程序、調試運行、機器語言、匯編語言、高級語言)。圖a示意,使用__________________(選填:自然語言、流程圖、偽代碼)進行算法描述,且運用循環控制結構嵌套了__________________控制結構,如果要跳出本次循環體的執行,應使用__________________語句實現跳轉。(7)閱讀程序(圖b示意),程序中以“#”開頭的語句,其作用是_______________,程序調試完成,通過“另存為”保存文件,文件后綴名為_____________。圖a import gushi #從txt文檔中讀取古詩 poems=gushi. readDatat()#用poems存儲所有的唐詩jia=input("請輸入詩人甲:") yi=input("請輸入詩人乙:") gx=0 for poem in poems:#逐一列舉:poem代表其中一首古詩 if jia in poem[2]and(yi in poem[0]or yi in poem[3]): gx=gx+1 #問題的解 print(jia,'"寫給",yi,"的古詩共",gx,"首") 圖b(三)分析數據進行可視化表達并推測盛唐時期詩人關系。(8)解密盛唐時期詩人關系。數據的可視化以易于理解的方式展示和詮釋數據之間的關系、趨勢與規律等,使人們更好地理解數據。從常用和實用的維度,數據可視化的呈現類型主要分為探索型和解釋型,其中_________型可以幫助人們發現數據背后的價值,_________型則把數據簡單明了地解釋給人們(選填:探索、解釋)。數據分析類型不同可視化呈現方式也不同,如關于趨勢的分析,可用_________類型的圖表呈現,關于比例的分析,可用_________類型的圖表呈現關于關系的分析,可用_________類型的圖表呈現。(9)解密盛唐時期詩人關系。學習小組選擇用網絡關系圖呈現盛唐時期詩人社會網絡關系(如圖所示)。圖中箭頭表示詩人之間的引用關系,如李白引用了賀知章,那么就有李白指向賀知章箭頭;箭頭的粗細程度則表示了詩人之間引用關系的強弱,如李白引用孟浩然的數量達4次,箭頭就要粗一些。________(10)解密盛唐時期詩人關系。觀察圖示,從繪制的盛唐的詩人社交關系網絡圖,嘗試推測哪位詩人是盛唐詩人的核心,哪位詩人的影響最大,請簡要闡述。(要求100字左右)________21.閱讀下列程序,寫出運行結果。def fib(m):n1=1 n2=1 for i in range(3,m +1): t = nl + n2 n1 = n2 n2 = t return t Print(fib(5))運行結果是:_______________22.運行下列程序,正確的結果是_________________s=0for i in range (1 5):s=s+iprint("i=",i,"s=",s)23.x=int(input(“請輸入第1個數:”))y=int(input(“請輸入第2個數:”))if x>y:print(x)else:print(y)程序運行后,鍵盤輸入8和6,其輸出結果為_________________試卷第頁,共頁參考答案:1.B2.A3.B4.D5.C6.C7.C8.D9.n=int(input("請輸入一個整數:"))if n%3==0 and n%7==0:print("Yes")else:print("No")10.x=int(input("請輸入一個年份(四位數):"))if x%400==0:print("{}年是閏年".format(x))elif x%4==0 and x%100!=0:print("{}年是閏年".format(x))else:print("{}年不是閏年".format(x))11. range %10 x% 10或x-b*100-s*10或其它同等答案 x12.對13.錯誤14.錯15.正確16.正確17.對18.import math19.3320. C ABC 數據本地存儲 云存儲 方便文件共享,只需聯網就可讀取文件,可以脫離本地計算機保存文件。 網絡數據采集法 文檔文件 結構化 關聯分析 排序 設計算法 高級語言 流程圖 判斷循環 break 解釋、注釋 .py 探索 解釋 折線圖、柱形圖、柱線混合圖餅狀圖、堆疊面截圖、百分比圓環圖、圈圖 散點圖、雷達圖、網絡關系圖、詞云圖、數據地圖、動態勢力圖、3D動態顯示圖 如局部圖b所示。由引用次數可知,從社交關系從深至淺來說,杜甫的好友依次是李白、孟浩然、王維;李白的好友是孟浩然、杜甫、賀知章;賀知章沒有好友;王維的好友只有孟浩然;孟浩然的好友只有王維。 如局部圖b所示。由被引用次數可知,李白的被引用次數是12,孟浩然的被引用次數是8,杜甫的被引用次數是3,王維的被引用次數是2,賀知章的被引用次數是2。故李白是是盛唐詩人的核心;從引用別人的次數來看,杜甫的引用別人的次數是15,李白的引用別人的次數是9,維的引用別人的次數是2,孟浩然的引用別人的次數是1,王賀知章的引用別人的次數是0。故杜甫的影響最大。21.522.i=4 s=1023.8 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫