版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
實(shí)驗(yàn)?zāi)夸泴?shí)驗(yàn)?zāi)?實(shí)驗(yàn)1PYTHON基礎(chǔ)練 實(shí)驗(yàn)1‐1Python的變量與運(yùn)算 實(shí)驗(yàn)任務(wù)與目 實(shí)驗(yàn)背景知 變 實(shí)驗(yàn)內(nèi)容與步 知識(shí)延伸與思 實(shí)驗(yàn)1‐2PYTHON的數(shù)據(jù)輸入與輸 實(shí)驗(yàn)任務(wù)與目 實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi)容與步 知識(shí)延伸與思 實(shí)驗(yàn)2PYTHON三種控制結(jié) 實(shí)驗(yàn)2掌握Python三種控制結(jié) 實(shí)驗(yàn)任務(wù)與目 實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi)容與步 4知識(shí)延伸與思 實(shí)驗(yàn)3PYTHON函數(shù)練 實(shí)驗(yàn) Python函數(shù)練 實(shí)驗(yàn)任務(wù)與目 實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi)容1與步 實(shí)驗(yàn)內(nèi)容2與步 知識(shí)延伸與思 實(shí)驗(yàn)4列表、元組和字 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)步 知識(shí)延伸與思 實(shí)驗(yàn)4‐2常用數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)算法的實(shí) 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)5類(lèi)的定義和棧、隊(duì)列的實(shí) 實(shí)驗(yàn)5‐1類(lèi)的定義和棧、隊(duì)列的實(shí) 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)5‐2繼 實(shí)驗(yàn)任務(wù)與目的:理解繼承的含 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)5‐3多 實(shí)驗(yàn)任務(wù)與目的:關(guān)于多 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)6操作系統(tǒng)多線程編 實(shí)驗(yàn)6操作系統(tǒng)多線程編 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)7文件操 實(shí)驗(yàn)7文件操 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 2‐3、文件的....................................................................................................................................................... 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)8數(shù)據(jù) 實(shí)驗(yàn)8數(shù)據(jù)庫(kù)操 MySQL服務(wù)器的啟動(dòng)與關(guān) 2.實(shí)驗(yàn)背景知 使用Python進(jìn)行MySQL數(shù)據(jù)庫(kù)編程的步 使用PYTHON進(jìn)行MySQL數(shù)據(jù)庫(kù)編 知識(shí)延伸與思 實(shí)驗(yàn)9計(jì)算機(jī)網(wǎng) 實(shí)驗(yàn)9‐1網(wǎng)絡(luò)組網(wǎng)和WWW業(yè)務(wù)模 實(shí)驗(yàn)任務(wù)與目 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn)9‐2編制TCP/UDP程 實(shí)驗(yàn)?zāi)康呐c任 2.實(shí)驗(yàn)背景知 實(shí)驗(yàn)內(nèi) 知識(shí)延伸與思 實(shí)驗(yàn) 實(shí)驗(yàn)10MATPLOTLIB繪圖基 實(shí)驗(yàn)任務(wù)和目 繪圖中常用的numpy函 2D圖的畫(huà) 3D繪圖方 知識(shí)延伸與思 參考書(shū) 實(shí)驗(yàn) Python基礎(chǔ)練實(shí)驗(yàn)1-1Python的變量與運(yùn)算符實(shí)驗(yàn)任務(wù)與目的pythonpython實(shí)驗(yàn)背景知識(shí)int整數(shù)#float#真值( j變量是標(biāo)識(shí)符的例子。標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)某樣?xùn)|西的名字。在命名標(biāo)識(shí)符的時(shí)候,你要‘‘標(biāo)識(shí)符名稱(chēng)是對(duì)大小寫(xiě)敏感的。例如,mynamemyName中的小寫(xiě)n和后者中的大寫(xiě)N。i、my_name、name_23a1b2_c32things、thisisspacedout和my-nameX+Y,X-實(shí)驗(yàn)內(nèi)容與步驟逐一將這四組練習(xí)依次 運(yùn)行界面內(nèi)輸入且運(yùn)行,注意觀察和記錄運(yùn)行結(jié)果13>>>print >>>print >>>print >>>print>>>print4.5/1.5#浮點(diǎn)數(shù)>>>print 乘>>>print>>>print 求余>>>print>>>print >>>print>>>print>>>print>>>printa”+”b字符2 4>>>print>>>print>>>print >>>print3<3,>>>print>>>print4>5, >>>print5in>>>print>>>printTrueand >>>printTrueand>>>print>>>printTrueor>>>printx>=0and知識(shí)延伸與思考2、作為算術(shù)運(yùn)算,浮點(diǎn)數(shù)與整數(shù)進(jìn)行混合運(yùn)算時(shí),python對(duì)結(jié)果的數(shù)據(jù)類(lèi)型做怎樣的處3、print“a”+”b”命令行使我們看到+號(hào)的不同用途,如何解釋+號(hào)表現(xiàn)出的功能呢?4、在第四組練習(xí)中我們注意到常用的關(guān)系運(yùn)算和邏輯運(yùn)算的結(jié)果都是邏輯值,這是幾乎已是,可是你想過(guò)沒(méi)有為什么要這樣?5、假如你把第一行命令print5==6print5=6會(huì)是什么結(jié)果?由這樣的結(jié)果,你又如實(shí)驗(yàn)1- PYTHON的數(shù)據(jù)輸入與輸實(shí)驗(yàn)任務(wù)與目的任務(wù):掌握Python的數(shù)據(jù)輸入和輸出方法。實(shí)驗(yàn)背景知識(shí)、2、鍵盤(pán)輸入;Python有關(guān)鍵盤(pán)輸入有兩種形a=input('pleaseinputdata:') a=raw_input('pleaseinputdata:')#一律作為字符型數(shù)據(jù)3、利用隨機(jī)函數(shù)產(chǎn)生隨機(jī)數(shù):在利用python為我們提供的隨機(jī)函數(shù)前,首先需令importrandom#功能是打開(kāi)函數(shù)4、常用的幾種產(chǎn)生隨機(jī)數(shù)的表達(dá)式如下:x=random.randint(60,85)#指定范圍的隨機(jī)整數(shù) >>>printa,b,c#顯示a、b、c的內(nèi)容,固定間隔一個(gè)空>>>print >>>print >>>print >>>print >>>printrightjustifyint_x8dint_x#字符串與數(shù)字相互間隔8,右對(duì)齊輸出實(shí)驗(yàn)內(nèi)容與步驟 x=input("giveadatatovariabletoxfordigital:print y=raw_input("giveadatatovariabletoyforstring:print x=input("giveadatatovariabletox:printy=raw_input("giveadatatovariabletoy:print #算術(shù)運(yùn)算必須將raw_inputprint"floattransfertointforz:print"stringlink:y=raw_input("giveyacharecter:printprintprint"ASCIIofyisprint print print print print#output printint_xd printint_xx\n printrightjustifyint_x8d printleftjustifyint_x8d)\n printleftjustifyint_x8d printrightjustifyint_x8d\n printprintfloat_xf print"float_x=%e\n"% printprint"int_x=%.8d"%print"float_x=%.5f"%print"(%.17s)"%print"%.15s"%print"(%.5s)"%#精度為8#精度為小數(shù)有效位517知識(shí)延伸與思考1 直接賦值語(yǔ)句的應(yīng)用場(chǎng)合是什么2input()和raw_input()在應(yīng)用時(shí)大多數(shù)情況下,程序員偏愛(ài)raw_input(),原因?yàn)楹??、關(guān)于可否上網(wǎng)搜索一下,還有那些計(jì)算機(jī)語(yǔ)言也有這樣的轉(zhuǎn)義符?4 有關(guān)字符串的輸出格式限定方式,Python是否提供了更好的方法呢5、像Import 了解它所能提供的函數(shù)。但對(duì)于x=random.random()命令行,令我們?nèi)绾握_的認(rèn)識(shí)函7、有如下的字符串及其顯示命令,分析第二命令行的功能,解釋第二、三顯示命令的相同>>>print"s.ljust(10)",s.ljust(10),”len=”,>>>print"(%.10s)"%s,”len=”, 解釋下面的語(yǔ)句中表現(xiàn)出的運(yùn)算符的優(yōu)先次序,并說(shuō)出結(jié)果??上仍?Python上運(yùn)行這條命令,然后根據(jù)顯示的結(jié)果分析運(yùn)算符的優(yōu)先次序。>>>>>>9pythonCC++的輸入與輸出語(yǔ)句做一個(gè)類(lèi)比的話,對(duì)10 import請(qǐng)網(wǎng)上搜索常用的Python函數(shù)庫(kù)有哪幾種?在每一種函數(shù)庫(kù)中選擇記錄你認(rèn)為比實(shí)驗(yàn) PYTHON三種控制結(jié)實(shí)驗(yàn)2掌握PYTHON實(shí)驗(yàn)任務(wù)與目的目的:認(rèn)識(shí)程序控制結(jié)構(gòu)的類(lèi)型任務(wù):學(xué)習(xí)條件、循環(huán)結(jié)構(gòu)的用法,掌握一定的程序設(shè)計(jì)方法。實(shí)驗(yàn)背景知識(shí)一個(gè)完整的程序結(jié)構(gòu),不論其復(fù)雜性如何,就其功能而言無(wú)外分三個(gè)部分。數(shù)據(jù)輸出順序結(jié)構(gòu)指命令的執(zhí)行過(guò)程是依次逐條進(jìn)行的。譬如a=input('pleaseinput ')#數(shù)據(jù)輸入>>>b=input('pleaseinput #數(shù)據(jù)處理→print #運(yùn)算結(jié)果輸出If條件表達(dá)式:命令系列---條件不成立時(shí)可預(yù)測(cè)循環(huán)語(yǔ)法形式For循環(huán)變量in 要點(diǎn)1:for語(yǔ)句行結(jié)束符是冒號(hào):。要點(diǎn)2:循環(huán)體必須用縮進(jìn)來(lái)表現(xiàn)。 約束條件:#注意冒號(hào)的必要性 實(shí)驗(yàn)內(nèi)容與步驟在Python編程環(huán)境中,編寫(xiě)程序運(yùn)行輸出前面n個(gè)那契數(shù)列,n由用戶(hù)輸入,當(dāng)輸入的數(shù)據(jù)n不是正整數(shù)的時(shí)候給予提示,當(dāng)n是正整數(shù)的是輸出前n個(gè)那契數(shù)。該數(shù)列由下面的遞推關(guān)系決定:F0=0,F1=1Fn+2=Fn+Fn+1(n>=0)在本實(shí)驗(yàn)中要用到python的控制循環(huán)結(jié)構(gòu)和選擇結(jié)構(gòu)。#coding=utf-#f1,f2=0,ifn>0andn==int(n):print那契數(shù)列whilex< (14)print("輸入的不是程序分析1#coding=utf-8UTF-8決PY第2行:#號(hào)開(kāi)頭的語(yǔ)句是注釋語(yǔ)句。第3行:變量f1、f2分別表示那契數(shù)列中的前兩項(xiàng),初始值是0、第4行:x表示數(shù)列中的每個(gè)那契5ifn>0andn==int(n)n是否正整數(shù),如果成立就執(zhí)行while第14行:else:當(dāng)if條件不成立時(shí)的分支,所執(zhí)行語(yǔ)句僅給出輸入的數(shù)據(jù)不是第8行:while循環(huán):x<n時(shí),執(zhí)行循環(huán)體內(nèi)令,當(dāng)“x<n”不成立的時(shí)候退出循環(huán)循環(huán)體內(nèi)程序的功能3=+通過(guò)前兩個(gè)數(shù)相加得到那契數(shù),并打印輸出程序的運(yùn)行結(jié)果如下4知識(shí)延伸與思考用隨機(jī)數(shù)函數(shù)產(chǎn)生成績(jī),然后根據(jù)數(shù)據(jù)所在范圍劃定等級(jí)。成績(jī)等級(jí)制范圍[90~100]為A,[80~89B,[70~79C,[60~69D,[59,0E)。盡你所能,寫(xiě)出各種能夠完成此Cpython量。順便python分支語(yǔ)句的最大特點(diǎn)。編寫(xiě)一個(gè)程序,求s=1+2+3+… 累加和??紤]要求做以?xún)?nèi)的偶數(shù)累加和或奇數(shù) 編寫(xiě)一個(gè)程序,求累加和,當(dāng)數(shù)據(jù)項(xiàng)小于0.1c=3+3實(shí)驗(yàn) PYTHON函數(shù)練實(shí)驗(yàn) PYTHON函數(shù)練實(shí)驗(yàn)任務(wù)與目的目的:理解函數(shù)的本質(zhì),熟悉常見(jiàn)內(nèi)部函數(shù),包括數(shù)算、IO操作函數(shù)等。掌握函數(shù)的任務(wù)詳細(xì)描述:num是否素?cái)?shù)isprime(num),如果是返回True,否則返回定義一個(gè)函數(shù)getfactor(num)求出num的所有因子并輸出輸入一個(gè)數(shù),調(diào)用函數(shù)isprimegetfactor實(shí)驗(yàn)背景知識(shí) 有反饋值的函數(shù) function_nameReturn反饋值的表達(dá)式或變量無(wú)反饋值的函數(shù) Return(可以沒(méi)有)1、函數(shù)主體程序和return2 函 行最后一定有冒號(hào):,否則出一般的計(jì)算機(jī)語(yǔ)言中規(guī)定傳遞參數(shù)傳遞數(shù)據(jù)有兩種方式:傳值;傳。但Python認(rèn)定所有的函數(shù)的變量名空間都是局部的(私有的),因此兩個(gè)函數(shù)間不能變量互訪。當(dāng)需要進(jìn)行數(shù)據(jù)傳輸時(shí),可使用python的列表、元組和字典),只有此時(shí)Python的默認(rèn)傳輸方式是傳。遞歸是數(shù)學(xué)上分治法的基礎(chǔ)。遞歸算法是計(jì)算機(jī)程序設(shè)計(jì)中常用的算法之一,簡(jiǎn)單的描述遞歸就是:有這樣一組語(yǔ)句,它們的功能與表達(dá)式完全一致且能夠收斂于一個(gè)最簡(jiǎn)語(yǔ)句,于是將這一過(guò)程創(chuàng)建于函數(shù)中,再利用函數(shù)的自身調(diào)用完成運(yùn)算。 中,也可以將庫(kù)文件存在Python安裝下的 中尋找,如果沒(méi)有則自動(dòng)進(jìn)入lib 當(dāng)建立函數(shù)庫(kù)后,調(diào)用的語(yǔ)句方式如下:import 實(shí)驗(yàn)內(nèi)容1與步驟在PythonIDLE集成環(huán)境中New一個(gè)新的源程序文件,并輸入如下源代碼,并把此源碼保存為文件test3.py文件。returncount=num/forforninrange(2,count+1):ifnum%n==0:printa=int(raw_input("inputanum:"))ifIs_prime(a):print("not注:前面部分是函數(shù)定義,后面是對(duì)輸入的數(shù)據(jù)進(jìn)行修正并調(diào)用函數(shù)判斷、輸出因子。在python Run->runmodule,執(zhí)行界面如下: 思路:如果一個(gè)數(shù)n在[2,n/2]之間有因子就表示這個(gè)數(shù)不是素?cái)?shù) 使用了循環(huán)for語(yǔ)句,range(2,b+1,1)表示判斷范圍在[2,b+1]之間,步長(zhǎng)是1 TrueFalse,F(xiàn)alse0True 思路:一個(gè)數(shù)n的因子在[2,n/2]之間,如果是因子就輸出輸入 設(shè)置輸入,輸入都是作為字符串處理; 其他方法分析。實(shí)驗(yàn)內(nèi)容2與步驟迭代算法驗(yàn)#-*-coding:UTF-8-*#迭代(判斷一個(gè)整數(shù)是否為素?cái)?shù)n=71 nj=2while#-*-coding:UTF-8-*#迭代(判斷一個(gè)整數(shù)是否為素?cái)?shù)n=71 nj=2whilea=n%jprintn,"非素?cái)?shù)"j=j+1printn,"是素?cái)?shù)遞歸算法驗(yàn)#-*-coding:UTF-8-*-#遞歸( #那契數(shù)列函數(shù)deffac(n):ifreturn1ifn==2:return1returnfac(n-1)+fac(n-#主程序題目 那契數(shù)列的遞#-*-coding:UTF-8-*-#遞歸( #那契數(shù)列函數(shù)deffac(n):ifreturn1ifn==2:return1returnfac(n-1)+fac(n-#主程序xx=xprint知識(shí)延伸與思考創(chuàng)建素?cái)?shù)函數(shù),為其輸入一個(gè)正整數(shù),判斷其是否為素?cái)?shù)。(文件名為”函數(shù)-素創(chuàng)建完數(shù)函數(shù),為其輸入一個(gè)正整數(shù),判斷其是否為完數(shù)。(文件名為”函數(shù)-完做一個(gè)函數(shù),可計(jì)算n!,并依次輸出1~20的階乘方 1:用迭代方法完成,文件名為迭代-階乘方 2:用遞歸函數(shù)方法完成,文件名為遞歸-階乘另創(chuàng)建一個(gè)調(diào)用文件,文件名為me_main.py。在調(diào)用文件中分別調(diào)用這三個(gè)函數(shù),以Python主調(diào)方主調(diào)方被調(diào)實(shí)驗(yàn) 列表、元組和字實(shí)驗(yàn)4-1PYTHON實(shí)驗(yàn)任務(wù)與目的理解Python常用的內(nèi)建數(shù)據(jù)類(lèi)型:列表、元組、字典及區(qū)別基本操作訓(xùn)練 的定義、增添、插入、搜索、刪除、排Python程序:①自作朋友電郵聯(lián)系程序,可以添加、刪除聯(lián)系人②模擬在網(wǎng)預(yù)備知識(shí):字符串的查找、替換、截取等基本操作2.實(shí)驗(yàn)背景知識(shí)概念辨析數(shù)據(jù)結(jié)構(gòu)用來(lái)一組相關(guān)數(shù)據(jù)。在Python中有三種“內(nèi)建”的數(shù)據(jù)結(jié)構(gòu)(列表、元組和①列表List:是處理一組有序項(xiàng)目的數(shù)據(jù)結(jié)構(gòu),即你可以在一個(gè)列表中一個(gè)序列的項(xiàng)shoplist=['apple','mango','carrot',②元組Tuple:元組和列表十分類(lèi)似,不同在于元組和字符串一樣是“不可變的”,即你不zoo=('wolf','elephant','Matsumoto':'matz@','Larry':'Spammer': }基本操作①字符串操作(預(yù)備知識(shí)字符串(基本數(shù)據(jù)類(lèi)型)Python(有關(guān)“對(duì)象”概念請(qǐng)參閱在print 4print print print 2printwords[- printwords[- 2 printwords.find('E',0,len(words)) wordsR=words.rece('one','body') print②列表、元組、字典操作):字典(Dict):Keys()、Values()、以上數(shù)據(jù)類(lèi)型的部分用法請(qǐng)參閱3.實(shí)驗(yàn)步驟,更詳細(xì)的用法,請(qǐng)參與Python幫助棧與隊(duì)列堆棧:限定只能在表的一端進(jìn)行插入和刪除操作的線性表。操作順序:先進(jìn)后出。Python中可以用列表(List)來(lái)作為棧和隊(duì)列的結(jié)構(gòu)。因此,在List上同樣可以使用棧和隊(duì)列的操作。 作為棧時(shí)對(duì)應(yīng)的兩個(gè)方法:append()、 (相當(dāng)于棧操作的Push和Listappend()、popleft()(相當(dāng)于隊(duì)列操作的Inqueue實(shí)驗(yàn)步List(tuple)基本操作>>>li=>>>li=["a","b","mapreduce","z",["a","b","mapreduce","z",'hadoop向list增加元素['a','b','mapreduce','z',['a','b','mpilgrim','z','example',>>>li.insert(2,['a','b','new','mapreduce','z','hadoop',['a','b',['a','b','new','mapreduce','z',''hadoop',File ctiveinput>",line1,inValueError:list.index(x):xnotin從list中刪除元素['a','b','new','mapreduce','z','hadoop',['a','b','new','mapreduce','hadoop',File"<in ctiveinput>",line1,in<module>ValueError:list.remove(x):xnotin['a','b','mapreduce',Listpython內(nèi)置功能,自身含有sort比較,而字符的大小是根據(jù)字符對(duì)應(yīng)ascii碼的大小。>>>>>>str_list=['spring','summer','autumn',>>>>>>tuple操作與listPython contact_using_dict.py文件。#Filename: #'ab'isshortforaddressbookdef#Addingakey/valuepairifflag1=='1':=raw_input('Inputnewaname:')newce=raw_input('Inputnewa ]=newcereturn#Deletingakey/valuepairelifflag1=='2':cn=raw_input('Inputadeletingname:')ifcninab:#ORab.has_key('Guido')return1return0ifflag2==1:print'\nThereare%dcontactsintheaddress-book\n'%len(ab)forname,addressinab.items():print'Contact%sat%s'%(name,address)print'\n'#ab={ :'wangxy@',#定義字典ab :'hehg@','Matsumoto':'matz@', :'s }x=nameaddprint(1,abquit:')action=adddelc(adn,ab(akey/valuepair)x=nameaddprint(action,ab)#調(diào)用自定義函數(shù)打印輸出字典程序的二次運(yùn)行結(jié)果如下:4知識(shí)延伸與思考思考:如何保存修改的內(nèi)容,如新增的聯(lián)系人 (2-2)自建一個(gè)文件夾,存入一定數(shù)量的文件。在PythonIDLE集成環(huán)境中新建源程序文件,輸入如下源代碼,最后將源碼保存在自建的文件夾中,取名為importosfornameinfilenames:ifname<>"p2.py":注 磁盤(pán)上的文件名,導(dǎo)入OS模塊o.getcd()可以返回一個(gè)表示當(dāng)前工作文件夾的文件或文件夾的字符串。如果文件夾內(nèi)有文件ile1.pyile2.pyile3.py,則返回值是['ile1.py','ile2.py','file3.py']循環(huán)用in關(guān)鍵名,并將filenames中的元素依次賦給局部變量namel=len(name)-name.find(".")- 語(yǔ)句用于求取擴(kuò)展文件名的長(zhǎng)度,即包含幾個(gè)字符打印輸出時(shí),去掉了printfilenames.py文件;filenames.index(name)通過(guò)返回列表思考題:如何刪除filenames列表中的printfilenames.py?如何將去掉擴(kuò)展名的文件名存入filenames列表,同時(shí)又能打印出原文件名(包含擴(kuò)展名)?程序的一次運(yùn)行結(jié)果如下:知識(shí)延伸與思考闡述List、tuple、diction自己動(dòng)手查查幫助,你會(huì)發(fā)現(xiàn)List、tuple、dict這三種數(shù)據(jù)類(lèi)型會(huì)有的用途 。內(nèi)容包括:、、、 模擬輸出歌曲任務(wù)描述如下:①可以輸出包含歌曲名、歌手名、點(diǎn)播次數(shù)的歌曲信息;②可以根據(jù)點(diǎn)播次數(shù)輸出Top5榜;③可以按歌手名獲取其所有歌曲名目和點(diǎn)播次數(shù)。限定條注:上述習(xí)題(2)可以分組協(xié)作完自建一個(gè)文件夾,存入一定數(shù)量的文件。在PythonIDLE集成環(huán)境中新建源程序文件,輸入如下源代碼,最后將源碼保存在自建的文件夾中,取名為importosfornameinfilenames:l=len(name)-name.find(".")-ifname<>"p2.py":ifname<>"p2.py":注為磁盤(pán)上的文件名,導(dǎo)入OS模塊內(nèi)有文件file1.pyfile2.pyfile3.py,則返回值是['file1.py','file2.py','file3.py']循環(huán)用in關(guān)鍵名,并將filenames中的元素依次賦給局部變量namel=len(name)-name.find(".")- 語(yǔ)句用于求取擴(kuò)展文件名的長(zhǎng)度,即包含幾個(gè)字符printfilenames.py文件;filenames.index(name)通過(guò)返回列表思考題:如何刪除filenames列表中的printfilenames.py?如何將去掉擴(kuò)展名的文件名存入filenames列表,同時(shí)又能打印出原文件名(包含擴(kuò)展名)? /810664/165905程序的一次運(yùn)行結(jié)果如下:實(shí)驗(yàn)4-2實(shí)驗(yàn)任務(wù)與目的編制理論算法部分排序、搜索等偽代碼為Python任務(wù)描述將下面排序(冒泡排序)、查找(折半查找)的偽代碼轉(zhuǎn)換 代碼2.實(shí)驗(yàn)背景知識(shí)式表述出來(lái)。請(qǐng)轉(zhuǎn)換成Python代碼。實(shí)驗(yàn)內(nèi)題目將2,12,5,56,34,78這幾個(gè)數(shù)字用冒泡排序方式按從小到大排列。(編寫(xiě)的程序用”冒泡排序.py”名稱(chēng)保存開(kāi)開(kāi)將i從2到n枚舉將jnia[ja[j-1a[ja[j-1a[j-1結(jié)折半查找算法實(shí)題目:將2,5,12,34,56,78,1,32,10,45,561,1023,19,67這幾個(gè)數(shù)字先排序(用上面的冒泡排序、或直接用.sort()方法),然后用”折半查找”進(jìn)行定位。假設(shè)查找數(shù)據(jù)為32。(編寫(xiě)的程序用”折半查找.py”名稱(chēng)保存注:下面有兩段折半查找的偽代碼,前一段是更貼近自然語(yǔ)言,后一段更貼近計(jì)算機(jī)語(yǔ)言開(kāi)開(kāi)a,和待查找數(shù)字設(shè)置初始查找區(qū)間:low=1;/*n為數(shù)組長(zhǎng)度測(cè)試查找區(qū)間 high]是否存在,若不存在,則查找失??;否取中間點(diǎn)mid=(low+high)/2,比較key與a[mid若key<a[mid],high=mid-1,查找在左半?yún)^(qū)間進(jìn)行,轉(zhuǎn)向若key>a[mid],low=mid+1,查找在右半?yún)^(qū)間進(jìn)行,轉(zhuǎn)向若key=a[mid],查找成功,返回記錄在數(shù)組中的位置結(jié)InputInputa, /*將a的元素從小到大排序*/Set[top,but] Setfound Whiletop>=botandnotfoundMid<-(top+bot)/2Case1:key<a[mid],top<-mid-1Case2:key>a[mid],but<-mid+1Case3:key=a[mid],found=1Outputmid 知識(shí)延伸與思考1:編寫(xiě)順序查找程序(如果待查找的數(shù)字在數(shù)組中有重復(fù),要求輸出所有重復(fù)的題目2:編寫(xiě)選擇排序算法。(以文件名”選擇排序.py”保存defdefunion(a #a和bforforeinifenotina:實(shí)驗(yàn) 類(lèi)的定義和棧、隊(duì)列的實(shí)實(shí)驗(yàn)5-1類(lèi)的定義和棧、隊(duì)列的實(shí)現(xiàn)實(shí)驗(yàn)任務(wù)與目的理解類(lèi)與對(duì)象。棧、隊(duì)列2.實(shí)驗(yàn)背景知識(shí)面向過(guò)程的面向?qū)ο蟮摹本幊虒?duì)象可以使用普通的屬于對(duì)象的變量數(shù)據(jù)。屬于一個(gè)對(duì)象或類(lèi)的變量被稱(chēng)為“域”。對(duì)象也可以使用Self參數(shù):類(lèi)的方法與普通的函數(shù)只有一個(gè)特別的區(qū)別——它們必須有一個(gè)額外的第一個(gè)參數(shù)名稱(chēng),但是在調(diào)用這個(gè)方法的時(shí)候你不為這個(gè)參數(shù)賦值,Python會(huì)提供這個(gè)值。這個(gè)特別的變量指對(duì)象本身,按照慣例它的名稱(chēng)是self。 def sayHiprint o,howarep #實(shí)例化一個(gè)對(duì)象 #調(diào)用了sayHiprint #將對(duì)象pPython的構(gòu)造函數(shù)是init(),析構(gòu)函數(shù)是del() population init(self #構(gòu)造函數(shù),其中=print'創(chuàng)建了%s,目前有%s人'%(, del(self): print'刪除了%s,目前有%s人' p1= ('') #自動(dòng)調(diào)用init()方法p2= ('') #自動(dòng)調(diào)用init()方法delp1 #自動(dòng)調(diào)用del()方法del #自動(dòng)調(diào)用del()方法有兩種類(lèi)型的“域”:類(lèi)的變量和對(duì)象的變量,它們根據(jù)是類(lèi)還是對(duì)象擁 類(lèi)的變量:()對(duì)象的變量:實(shí)驗(yàn)內(nèi)(1)基本操作:在Python環(huán)境中輸入如下源代碼,并把此源碼保存為文件classdefclassdefinit(self,name, defprintdefupdatename(self,name1):def=1 程序的一次運(yùn)行結(jié)果如下:classdefinit(self,sizeclassdefinit(self,size=16):self.stack=[]self.size=sizeself.top=-1self.size=sizedefreturndefisFull(self):ifself.top+1==self.size:returnTruedeftop(self):ifdefpush(self,obj):ifself.top+=1defififself.top-=defshow(self):程序的一次運(yùn)行結(jié)果如下:知識(shí)延伸與思考2實(shí)驗(yàn)5-2繼承實(shí)驗(yàn)任務(wù)與目的:理解繼承的含義在掌握類(lèi)的基本設(shè)計(jì)基礎(chǔ)上,理解類(lèi)的繼承關(guān)系。2.實(shí)驗(yàn)背景知識(shí)實(shí)驗(yàn)內(nèi)classclassdefinit(self,ID,name):defprintID(self):defprintname(self):定義類(lèi)Undergraduate,繼承并擴(kuò)展類(lèi)definit(self,ID,name,age,mark):Student.init(self,ID,name)defprintage(self):defprintmark(self): 創(chuàng)建對(duì)象實(shí)例 Wang=UndergraduateWang=Undergraduate 調(diào)用對(duì)象的方法觀察子類(lèi)Undergraduate,其不僅具有父類(lèi)Student的屬性ID和name,還定義了新的agemarkprintIDprintname知識(shí)延伸與思考假定根據(jù)學(xué)生的3門(mén) 課程的分?jǐn)?shù)決定其是否可以拿到 ,對(duì)于本科生,如果3門(mén)課程定義一個(gè)父類(lèi)Student描述學(xué)生的共同特征定義一個(gè)描述本科生的子類(lèi)Undergraduate,該類(lèi)繼承并擴(kuò)展Student定義一個(gè)描述的子類(lèi)Graduate,該類(lèi)繼承并擴(kuò)展Student類(lèi)分別創(chuàng)建本科生和這兩個(gè)類(lèi)的對(duì)象實(shí)例,并輸出相關(guān)信息實(shí)驗(yàn)5-3多態(tài)實(shí)驗(yàn)任務(wù)與目的:關(guān)于多2.實(shí)驗(yàn)背景知識(shí)多態(tài)的形式實(shí)驗(yàn)內(nèi)classclassifusername=="":elifpassword=="":print" Python在類(lèi)當(dāng)中就是通過(guò)類(lèi)似logon(self,username="",password="")這樣的帶缺省值的logon(selflogon(self,username),logon(self,username,password)等不:def:defprint classMe( defprint"Ieating..."m=Me()m.eat()#printmessageis"I .eat(m)#callparentclass'seatmethod,printmessageiseating.觀察子類(lèi)Me,其父類(lèi) 定義了成員函數(shù)eat(self),子類(lèi)也定義了該函數(shù)。即父類(lèi)和類(lèi)覆蓋父類(lèi)),通過(guò)“父類(lèi)類(lèi)名.父類(lèi)方法(子類(lèi)對(duì)象)”的方式可以父類(lèi)被覆蓋的方法。知識(shí)延伸與思考什么是多態(tài)?面向?qū)ο蟪绦蛟O(shè)計(jì)為什么要引進(jìn)多態(tài)的特性?使用多態(tài)有什么優(yōu)點(diǎn)重載(overload)和覆蓋(override)的區(qū)別是什么?對(duì)于x=3+6和y=”bxvc”+”sjb”,如何解釋+號(hào)的作用(王增加classdefclassdefreturn5classbb(aa):defreturn3defgetNum(cc):printcc.get()實(shí)驗(yàn) 操作系統(tǒng)多線程編實(shí)驗(yàn) 實(shí)驗(yàn)任務(wù)與目的編制并運(yùn)行一個(gè)多線程程序:模擬一個(gè)人并發(fā)制作“醋溜白菜”和“青椒牛肉”過(guò)程。從任務(wù)描述windows7、Linux和“線程”的處理單元(11)。線程是處理機(jī)調(diào)度的基本單元,這些“線程”按照時(shí)間片輪轉(zhuǎn)輪流使用CPU以并發(fā)方式完成各自任務(wù)。本任務(wù)要模擬兩個(gè)線程:一假設(shè)你是一個(gè)廚師(CPU),同一時(shí)刻只能處理一件事情。你也包含三個(gè)階段:牛肉、切青椒和牛肉、炒牛肉。假定上述兩個(gè)不同執(zhí)行線程的每個(gè)制作階段的執(zhí)行時(shí)間都為 秒。即洗白菜、炒白菜、切白菜、洗牛肉、切牛肉、炒牛肉等階段所消耗廚師的時(shí)間為 4秒鐘。2.實(shí)驗(yàn)背景知識(shí)線程是進(jìn)程的細(xì)化,猶如CPU的指令系統(tǒng)下還有微指令。線程也被稱(chēng)為輕量級(jí)進(jìn)程(LightweightthreadingJava(Lock)和條件變量(Condition)在Java基本行為(每一個(gè)對(duì)象都自帶了鎖和條件變量),而在PythonJavaThread的部分功能被Python在threading中以模塊方法的形式提供。Thread、Lock、Rlock、Condition、[Bounded]Semaphore、Event、Timer、被某個(gè)線程擁有。擁有RLock的線程可以再次調(diào)用acquire(),釋放鎖時(shí)需要調(diào)用release(),這里需要成功調(diào)用acquire()/release(),計(jì)數(shù)器將+1/-1,為0時(shí)鎖處于未鎖定狀態(tài)。實(shí)驗(yàn)內(nèi)在PythonIDLE集成環(huán)境中New一個(gè)新的源程序文件,并輸入如下源代碼,并把此源碼保存為文件multi-thread-lock.py文件。importimportfromtimeimportsleep,ctimelock=threading.RLock()defcookingCabbage():printn做醋溜白菜開(kāi)始at:ctime(),\n"print'洗白菜at:',ctime(),"\n"print'切白菜atctime(),\n"print'炒白菜atctime(),\n"print'醋溜白菜出爐at:ctime\n"defcookingBeef():printn做青椒牛肉開(kāi)始at:ctime(),\n"print'洗牛肉at:',ctime(),"\n"print'切牛肉atctime(),\n"print'炒牛肉at:ctime(),printat:ctime\n"defprint'Mainstartat:',ctime(),t2=threading.Thread(target=cookingBeef)print'Maindoneat:',ctime(),ifname=='main':注 sleep(4)用來(lái)模擬線程執(zhí)行階段的執(zhí)行時(shí)間,在實(shí)際線程執(zhí)行過(guò)程中,它由不確定間的指令集合構(gòu)成。lock.acquire和lock.release為線程互斥鎖。打開(kāi)任務(wù)管理器觀察一個(gè)pythonw.exe的線程數(shù)目在執(zhí)行上述兩個(gè)線程過(guò)程期間的知識(shí)延伸與思考在上述程序中為什么要用lock.acquire和lock.release進(jìn)行線程互斥操作呢?如果把所有l(wèi)ock.acquire和lock.release語(yǔ)句去掉或者注釋掉(用#進(jìn)行注釋?zhuān)瑘?zhí)行用lock.acquire和lock.release搜索臨界區(qū)概念,以此評(píng)價(jià)進(jìn)程(線程)的應(yīng)用價(jià)值。實(shí)驗(yàn) 文件操實(shí)驗(yàn)7文件操作實(shí)驗(yàn)任務(wù)與目的詩(shī)人的詩(shī)(見(jiàn)素材文件),要求建立新的“E:\唐詩(shī)”,在“E:\唐詩(shī)”下建立“詩(shī)歌集”,然后把的兩首詩(shī)“靜夜思”和“望廬山瀑布”分別從“E:\詩(shī)歌集合”的“靜夜思.txt”文件和“望廬山瀑布.txt”文件讀出內(nèi)容,并寫(xiě)入到“E:\唐詩(shī)\詩(shī)歌集”下的“靜夜思.txt”和“望廬山瀑布.txt”文件中,然后結(jié)果是否正確。其目的是要求學(xué)生掌握、文件的建立,文件的讀寫(xiě)操作,從而對(duì)操作系統(tǒng)文件管理有正確的認(rèn)識(shí)。任務(wù)詳細(xì)描述:素材“詩(shī)歌集合”中包含四首唐宋詩(shī)歌,每首詩(shī)是一個(gè)獨(dú)立的txt文件。即:靜夜思.(),望廬山瀑布.txt(),春曉 ),鹿柴 ),示兒.txt()通過(guò)python文件操作相關(guān)函數(shù)生成“E:\唐詩(shī)” “E:\唐詩(shī)\詩(shī)歌集通過(guò)python文件操作相關(guān)函數(shù)把“E:\詩(shī)歌集合” 中的兩首的詩(shī)“靜夜思.txt”文件和“望廬山瀑布.txt”文件內(nèi)容分別讀出并寫(xiě)入到“E:\唐詩(shī)\詩(shī)歌集” 檢查相 和文件內(nèi)容,確認(rèn)是否正確2.實(shí)驗(yàn)背景知識(shí)2-1在python中,文件操作使用os模塊。對(duì)于文件的操作一般包含三個(gè)步驟——打開(kāi)文件(open),操作文件(readwrite,readlineclose)。Pythonpython相關(guān)編程書(shū)籍、資料或者使用手冊(cè)等。文件的打開(kāi)或創(chuàng)建可用內(nèi)部函數(shù)open(),該函數(shù)可以指定文件名、打開(kāi)模式、緩沖區(qū),語(yǔ)文件變量名=open(文件名,[打開(kāi)緩存模式,0表示不緩存,1表示緩存;open()返回一個(gè)文件對(duì)象,該對(duì)象可以對(duì)文件進(jìn)行。2-2write(s):把字符串s的內(nèi)容寫(xiě)入文本文件。 ines(sequenceOfstrings):把字符串列表寫(xiě)入文本文件,不會(huì)添加換行符。2-3、文件的readlines():把文本文件中的每行作為字符串插入列表中,返回該列表。2-4、文件指針的移動(dòng)文件的最小單位是字節(jié),文件指針指定了讀寫(xiě)的位置。在”r”、”r+”、”w”、”w+”模式下,剛打開(kāi)文件時(shí),文件指針指向開(kāi)始處。隨著讀寫(xiě)的進(jìn)行,指針自動(dòng)移動(dòng)。在”a”、”a+”模式下,剛打開(kāi)文件時(shí),文2-5 的操 listdir(path):查看指定路徑下的 實(shí)驗(yàn)內(nèi)把原始素材文 到“E:\詩(shī)歌集合 中,并且確認(rèn)上 首詩(shī)的正確性生成“E:\唐詩(shī)” “E:\唐詩(shī) 詩(shī)歌集 進(jìn)入用戶(hù)與Python解釋器的交互環(huán)境后,輸入如上圖所示語(yǔ)句來(lái)生成“E:\唐詩(shī)”和“E:\ “靜夜思.txt”文件的讀寫(xiě)。繼續(xù)在Python解釋器中輸入以下語(yǔ)句檢查在“E:\唐詩(shī)\詩(shī)歌集 下是否生成了靜夜思 文件,并且核對(duì)其內(nèi)容是否確Python檢查在“E:\唐詩(shī)\詩(shī)歌集”下是否生成了望廬山瀑布.txt文件,并且核對(duì)其內(nèi)容是提示:在python中,文件操作使用os模塊。對(duì)于文件的操作一般包含三個(gè)步驟——打開(kāi)文件(open),操作文件(readwrite,readlineclose)。Python請(qǐng)參考python相關(guān)編程書(shū)籍、資料或者使用手冊(cè)等。知識(shí)延伸與思考請(qǐng)根據(jù)“詩(shī)歌集合”中的詩(shī)歌按照不同朝代、不同詩(shī)人通過(guò)編寫(xiě)類(lèi)似程序進(jìn)行重新整理。例如按照唐詩(shī)、宋詩(shī)進(jìn)行區(qū)分。然后“唐詩(shī)”下有“詩(shī) 詩(shī)歌集”、“詩(shī)歌集”等,“宋詩(shī)”下有“詩(shī)歌集”等。然后把詩(shī)歌集中的詩(shī)歌寫(xiě)入到每個(gè)詩(shī)人的下。實(shí)驗(yàn) 數(shù)據(jù)實(shí)驗(yàn)8數(shù)據(jù)庫(kù)操作 服務(wù)器的啟動(dòng)與關(guān)閉MySQL服務(wù)器安裝完畢后,可隨時(shí)通過(guò)手工方式在本機(jī)上對(duì)其進(jìn)行啟動(dòng)和關(guān)閉。具體操作Windows“services.msc”,接著會(huì)彈出本地服務(wù)列.實(shí)驗(yàn)背景知識(shí)、MYSQL數(shù)據(jù)庫(kù)服務(wù)器的啟動(dòng)與關(guān)閉MySQLSQL又具有良好的跨平臺(tái)特性。MySQL數(shù)據(jù)庫(kù)服務(wù)器安裝完畢后,可隨時(shí)通過(guò)手工方式在本機(jī)上對(duì)其進(jìn)行啟動(dòng)和關(guān)閉。具體操作如下,在Windows開(kāi)始菜單最下方的搜索框內(nèi)輸入、使用PYTHON進(jìn)行MYSQL的連接對(duì)象,通過(guò)該連接對(duì)象數(shù)據(jù)庫(kù)。execute(SQL語(yǔ)句):執(zhí)行SQL語(yǔ)句 close():關(guān)閉數(shù)據(jù)庫(kù)連接選擇要對(duì)其進(jìn)行操作的數(shù)據(jù)庫(kù)cursor()函數(shù)創(chuàng)建的,它提供了一種對(duì)從表檢索出的數(shù)據(jù)進(jìn)行操作的靈活,其實(shí)際上是一種能從包括多條數(shù)據(jù)記錄的結(jié)果集中,每次提取一條記錄的機(jī)制。游execute(SQLSQL 關(guān)閉與MySQL數(shù)據(jù)庫(kù)服務(wù)器的連接使用PYTHON進(jìn)行MYSQL數(shù)據(jù)庫(kù)編編程步建立與MySQL執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)操作,包括對(duì)數(shù)據(jù)的添加、刪除、修改和查詢(xún)等關(guān)閉與MySQLprint"數(shù)據(jù)庫(kù)連接成功!"cur=conn.cursor()data=cur.fetchone()print"Databaseversion:%s"%dataDatabaseversion:創(chuàng)建表并且插入數(shù)print"數(shù)據(jù)庫(kù)連接成功!"cur=conn.cursor()cur.execute("CREATETABLEIFNOTEXISTSStudents(IdInt,Namecur.execute("INSERTINTOStudents(Id,Name)VALUES(1,'JackLondon')")cur.execute("INSERTINTOStudents(Id,Name)VALUES(2,'HonoredeBalzac')")cur.execute("INSERTINTOStudents(Id,Name)VALUES(3,'LionFeuchtwanger')")cur.execute("INSERTINTOStudents(Id,Name)VALUES(4,'E cur.execute("INSERTINTOStudents(Id,Name)VALUES(5,'TrumanCapote')")count=cur.execute("SELECT*FROMStudents")print"總共有"+str(count)+"條記錄"#使用fetchall函數(shù),將結(jié)果集(元組)存入rows里rows=forrowinrows: JackHonoredeLion Trumanprint"數(shù)據(jù)庫(kù)連接成功!"print"數(shù)據(jù)庫(kù)選擇成功!"cur.execute("SELECT*FROMStudents")#cur.rowcount用于獲取結(jié)果集的數(shù)目print"數(shù)據(jù)庫(kù)連接成功!"print"數(shù)據(jù)庫(kù)選擇成功!"cur.execute("SELECT*FROMStudents")#cur.rowcount用于獲取結(jié)果集的數(shù)目 元組)存入rows里rows=forforrowinprintrow["Id"],row["Name"]connMySQLdb.connect(host="localhost",user="root",passwd="jucc123456")print"數(shù)據(jù)庫(kù)連接成功!"printcur=conn.cursor()cur.execute("SELECT*FROMStudents")rows=cur.fetchall()desc=cur.descriptionprint"%s%3s"%(desc[0][0],desc[1][0])forrowinrows:print"%2s%3s"%rowconnMySQLdb.connect(host="localhost",user="root",passwd="jucc123456")print"數(shù)據(jù)庫(kù)連接成功!"printcur=conn.cursor()cur.execute("UPDATEStudentsSETName=%sWHEREId=%s",("GuydeMaupasant","4"))#使用cur.rowcount獲取影響了多少printNumberofrowsupdateddcur.rowcountcur.execute("SELECTcur.execute("SELECT*FROMStudents")#使用cur.rowcount獲取結(jié)果集的條數(shù)numrows=int(cur.rowcount)foriin#每次取出一行,放到rowid,name)row=cur.fetchone()知識(shí)延伸與思考100-100ScoresMark8(60以下為“Fail”,其余的為“Pass”。以本專(zhuān)業(yè)的實(shí)驗(yàn)數(shù)據(jù)建立數(shù)據(jù)庫(kù)及數(shù)據(jù)表,完成數(shù)據(jù)的查詢(xún)、插入與添加實(shí)驗(yàn) 計(jì)算機(jī)網(wǎng)實(shí)驗(yàn)9-1網(wǎng)絡(luò)組網(wǎng)和WWW實(shí)驗(yàn)任務(wù)與目標(biāo)使用PacketTracer5.3構(gòu)建一個(gè)模擬的IP網(wǎng)絡(luò),包含主機(jī)、交換機(jī)、DNS服務(wù)器、WEB服務(wù)器、網(wǎng)絡(luò)連接線等實(shí)體;并且WEB服務(wù)器為 瀏覽器輸入http ,能夠顯示主頁(yè)信息。并且通過(guò)PacketTracer的仿真環(huán)境任務(wù)詳細(xì)描述:本實(shí)驗(yàn)要求學(xué)生跟隨老師一起完成。擬采用,老師通過(guò)投影展示組網(wǎng)結(jié)構(gòu)的組建過(guò)程,學(xué)生跟隨老師一起完成。掩碼、DNS服務(wù)器地址、相關(guān)網(wǎng)絡(luò)服務(wù)等。修改JNUWEB服務(wù)器相關(guān)主頁(yè)網(wǎng)頁(yè)內(nèi)容,使之在是顯示“JNU”或者“Jinan在客戶(hù)端主機(jī)的“桌面”仿真環(huán)境中“命令提示符”環(huán)境下通過(guò)“”命令來(lái)測(cè)試網(wǎng)絡(luò)的連通情況,確保主機(jī)和DNS服務(wù)器、JNUWEB服務(wù)器的連通。在客戶(hù)端主機(jī)的“桌面”仿真環(huán)境中的“WEB瀏覽器”工具中輸入 ”,觀察是否出現(xiàn)JNUWEB服務(wù)器主頁(yè),并適當(dāng)修改主頁(yè)網(wǎng)頁(yè)文件中的部分內(nèi)容在PacketTracer的網(wǎng)絡(luò)模擬場(chǎng)景中,對(duì)網(wǎng)絡(luò)通信過(guò)程進(jìn)行“自動(dòng)捕獲/”操作,2.實(shí)驗(yàn)背景知識(shí)絡(luò)中的硬件資源,如磁盤(pán)空間、 ,繪圖儀等,也包括軟件資源,如程序、數(shù)據(jù)等。如網(wǎng)(MetropolitanAreaNetWork,MAN)和廣域網(wǎng)(WideAreaNetwork,WAN)。互聯(lián)網(wǎng):一個(gè)虛擬的網(wǎng)絡(luò),本質(zhì)上是各種局域網(wǎng)的互聯(lián)。(王增加網(wǎng)絡(luò)協(xié)議和三個(gè)要素網(wǎng)絡(luò)協(xié)議有三個(gè)要素:語(yǔ)義、語(yǔ)法和時(shí)序。語(yǔ)義是解釋控制信息每個(gè)部分的意義。它規(guī)定了需要發(fā)出何種控制信息,以及完成的動(dòng)作與做出什么樣的響應(yīng);語(yǔ)法是用戶(hù)數(shù)據(jù)與控制信息的結(jié)構(gòu)與格式,以及數(shù)據(jù)出現(xiàn)的順序;時(shí)序是對(duì)發(fā)生順序的詳細(xì)說(shuō)明,也可稱(chēng)為“同步”。我們可以形象地把這三個(gè)要素描述為:語(yǔ)義表示要做什么,語(yǔ)法表示要怎么做,時(shí)序表示做的順序。三大計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議為有效的計(jì)算機(jī)網(wǎng)絡(luò)通信方法。局域網(wǎng)中最常見(jiàn)的三個(gè)協(xié)議是微軟的NetBEUI、Novell的IPX/SPX和跨平臺(tái)TCP/IP。NetBEUI(NetBiosEnhancedUserInterface):是由IBM開(kāi)發(fā)的非路由協(xié)議,用于攜帶NetBIOSNetBEUIIPX/SPX(workPacketExchange/SequencesPacketExchange)NovellNetBEUI形成鮮明區(qū)別的是IPX/SPX合于大型網(wǎng)絡(luò)使用。當(dāng)用戶(hù)端接入NetWare服務(wù)器時(shí),IPX/SPX及其兼容協(xié)議是最好的選擇。但在非Novell網(wǎng)絡(luò)環(huán)境中,一般不使用IPX/SPX。IPX協(xié)議是最底層網(wǎng)絡(luò)協(xié)議,主要用來(lái)控制局域網(wǎng)內(nèi)或局域網(wǎng)之間數(shù)據(jù)包的尋址和路由,只據(jù)包時(shí),如果接收節(jié)點(diǎn)在同一網(wǎng)段內(nèi),通過(guò)IPX協(xié)議就直接按該節(jié)點(diǎn)的ID將數(shù)據(jù)傳給它;如果在使用過(guò)程中,網(wǎng)絡(luò)管理員可以通過(guò)使用相應(yīng)的IPX路由命令,比如“routingipxadd/setstaticroute”IPXIPX“routingipxsetglobal”表示配置全局IPX路由設(shè)置。SPXXeroxSPP(SequencesPacketProtocol,順序包協(xié)議)協(xié)議,是即糾錯(cuò)。SPX協(xié)議一般和上面介紹的IPX協(xié)議組合成IPX/SPX協(xié)議來(lái)使用,多用于Netware網(wǎng)TCP/IP(TransmissionControlProtocolProtocol):是因特網(wǎng)最基本的協(xié)議、因特IPTCPTCP/IP實(shí)驗(yàn)內(nèi)和老師一起通過(guò)PacketTracer此網(wǎng)絡(luò)包含:PC型客戶(hù)端主機(jī)1臺(tái)、便攜型客戶(hù)端主機(jī)1臺(tái)(用于DNS服務(wù)器、JNUWEB),Cisco2950241DNS1(DNS),JNUWEB服務(wù)器1臺(tái)(用于提供WWW服務(wù))。PC客戶(hù)端主機(jī)——IP”,子網(wǎng)掩碼為“”,DNS便攜型客戶(hù)端主機(jī)——IP”,子網(wǎng)掩碼為“”,DNSJNUWEB服務(wù)器——IP地址為“”,子網(wǎng)掩碼為“”,DNSDNS服務(wù)器——IP”測(cè)試網(wǎng)絡(luò)連通情況通過(guò)PC客戶(hù)端主機(jī)“桌面”環(huán)境下的“命令提示符”工具下的 例如:通過(guò)“ 來(lái)測(cè)試和DNS服務(wù)器的連通性;通過(guò)“ 確保所有節(jié)點(diǎn)的連通性沒(méi)有問(wèn)題JNUWEB服務(wù)器的WWWJNUWEBhttp服務(wù)”來(lái)設(shè)置和啟動(dòng)JNUWEBWWW并且適當(dāng)修改其網(wǎng)頁(yè)內(nèi)容,把其中的Cisco字樣改為JinanUniversity字樣。DNSDNSDNSDNSDNSDNS入通過(guò)便攜客戶(hù)端進(jìn)行WEB訪問(wèn)驗(yàn)證。在便攜客戶(hù)端的WEB瀏覽器工具中輸入 如出現(xiàn)如上圖所示內(nèi)容, 服務(wù)成功,否則進(jìn)一步排查問(wèn)題實(shí)時(shí)觀察數(shù)據(jù)分組 況和分析數(shù)據(jù)分組可以通過(guò)“OSIPDUPDU知識(shí)延伸與思考個(gè)WWW業(yè)務(wù)數(shù)據(jù)分組交換的完整過(guò)程,并進(jìn)行討論。詳細(xì)描述客戶(hù)機(jī)從WEB瀏覽器輸入U(xiǎn)RL到獲得WEB主頁(yè)文件過(guò)程中所轉(zhuǎn)發(fā)的分組、分組的次序、類(lèi)似本實(shí)驗(yàn),請(qǐng)通過(guò)PacketTracere-mailftpIP協(xié)議的格式中TTL的含義是什么?在平時(shí)的網(wǎng)絡(luò)生活中是否見(jiàn)過(guò)TTL的應(yīng)用?采用DHCP動(dòng)態(tài)地址分配在網(wǎng)絡(luò)管理上的優(yōu)勢(shì)實(shí)驗(yàn)9-2編制TCP/UDP實(shí)驗(yàn)?zāi)康呐c任務(wù)UDPUDPecho通過(guò)簡(jiǎn)單網(wǎng)絡(luò)程序的編制理解socket編程的基本原理,深刻理解“端口”的概念,理解“服務(wù)任務(wù)詳細(xì)描述:分別為服務(wù)器和客戶(hù)端編制不同的python程序文件(傳輸層使用UDP協(xié)議,服務(wù)器端口為21567),服務(wù)器程序?yàn)閡dpServer.py,客戶(hù)機(jī)程序?yàn)閡dp 和udpServer通過(guò)windows的“命令行”界面,使用python.exe命令解釋器執(zhí)行1個(gè)udpServer.py程序和執(zhí)行多個(gè)udp .py程序,模擬多個(gè)客戶(hù)端程序向服務(wù)器發(fā)送消息,2.實(shí)驗(yàn)背景知識(shí)TCP/IP協(xié)議不是TCP和IP這兩個(gè)協(xié)議的合稱(chēng),而是指因特網(wǎng)整個(gè)TCP/IP協(xié)議族。從協(xié)議分層模型傳輸層、TCPUDPProtocol)和用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP(UserDatagramprotocol),如下圖所示。圖:TCP/IP層的TCP與TCPTCP連接的所以只能用于端到端的通訊。TCP提供的是一種可靠的數(shù)據(jù)流服務(wù)。所以可以實(shí)現(xiàn)廣播發(fā)送。UDP圖:TCP報(bào)文首部固定部分各字段的意義如下源端口/目的端口 地址。用于將若 協(xié)議向下復(fù)用首部長(zhǎng)度:?jiǎn)挝粸?2位(雙字);控制字段緊急比特(URG):URG=1確認(rèn)比特 時(shí)表示確認(rèn)序號(hào)字段有意義復(fù)位比特(RST):RST=1表示出現(xiàn)嚴(yán)重差錯(cuò),必須釋放連接,重建;同步比特(SYN):SYN=1,ACK=0表示連接請(qǐng)求消息。SYN=1,ACK=1表示同意建立終止比特(FIN):FIN=1時(shí)表示數(shù)據(jù)已發(fā)送完,要求釋放連接;檢查和:12B的偽首部首部數(shù)據(jù);選項(xiàng):長(zhǎng)度可變。TCP只規(guī)定了一種選項(xiàng),即最大報(bào)文段長(zhǎng)度;TCP提供的服務(wù)有:端到端的面向連接的服務(wù),完全可靠性,全雙工通信,流接口,應(yīng)用程序?qū)?shù)UDP(UDPUDPUDPIPIP議,因?yàn)镮P協(xié)議是網(wǎng)絡(luò)層協(xié)議向?qū)犹峁o(wú)連接的服務(wù),而UDP是傳輸層協(xié)議,它向應(yīng)用層提供無(wú)連表。UDP用戶(hù)數(shù)據(jù)報(bào)只有8TCP20個(gè)字節(jié)的首部要短。由于UDP沒(méi)有擁塞控制,實(shí)驗(yàn)內(nèi)#-*-coding:UTF-8-*-fromsocketimport*fromtime#-*-coding:UTF-8-*-fromsocketimport*fromtimeimportctimeHOST PORT #服務(wù)器UDPBUFSIZE=ADDR=udpSerSock=socket(AF_INET,SOCK_DGRAM)whileprint'等待接收來(lái)自客戶(hù)機(jī)data,addr=udpSerSock.sendto('[%s]#把收到的消息回送給客戶(hù)機(jī)程 '...接收到客戶(hù)機(jī)的消息并且回送使用python自帶的IDLE程序編輯器或者任意文本編輯器(例如notepad)編制 服務(wù)器程序。程序源代碼如下:#-*-coding:UTF-8-*-fromsocketimport*HOST 器PORT #服務(wù)器UDPBUFSIZE=ADDRADDR=(HOST,whileifnotdata: #發(fā)送消息給服務(wù)器data,ADDR=udpCliSock.recvfrom(BUFSIZE) #從服務(wù)器接收消息ifnotdata:print 把udpServer.py和udp .py到某個(gè) ,例如:“E:\”,把 .py為3份不同文件名,分別為:udp 2.py和 通過(guò)python.exe執(zhí)行udpServer.py一次,執(zhí)行udpClent1.py,udpClent2.py,udpClent3.py各一次。假如python.exe在文件 運(yùn)行服務(wù)器程序 E:\>c:\Python27\python.exe運(yùn)行客戶(hù)端程序:E:\>c:\Python27\python.exeudp E:\>c:\Python27\python.exeudp 2.py,等待10秒鐘E:\>c:\Python27\python.exeudp 類(lèi)似下圖檢查知識(shí)延伸與思考把上述單機(jī)版的多客戶(hù)機(jī)、單服務(wù)器程序進(jìn)行適當(dāng)修改,使每個(gè)客戶(hù)機(jī)程序和服務(wù)器程序分別運(yùn)行在不同的電腦上。例如:把服務(wù)器程序運(yùn)行在機(jī)器A,3個(gè)不同的客戶(hù)端程序運(yùn)行在機(jī)器B、C和D。功能保持和上述一致。把本實(shí)驗(yàn)任務(wù)基于TCP重新實(shí)現(xiàn)其單機(jī)版本和多機(jī)版本上述習(xí)題可以分組協(xié)作完成。如何理解socket(AF_INET,SOCK_DGRAM)函數(shù)的功能?TCP/IP分層結(jié)構(gòu)中IP協(xié)議、TCP實(shí)驗(yàn) PYTHON和科學(xué)計(jì)實(shí)驗(yàn) MATPLOTLIB繪圖基實(shí)驗(yàn)任務(wù)和目的MATPLOTLIBmatplotlib是python最著名的繪圖庫(kù),它提供了一整套和 適合交互式地繪制圖。而且也可以方便地將它作為繪圖控件,嵌入GUI應(yīng)用程序中。Matplotlib是一個(gè)在python下實(shí)現(xiàn)的類(lèi)matlib的純python的庫(kù),旨在用python 的功
溫馨提示
- 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東省百校大聯(lián)考2024-2025學(xué)年高三上學(xué)期12月學(xué)情診斷地理
- 工作學(xué)習(xí)報(bào)告范文
- 2024-2025學(xué)年年八年級(jí)數(shù)學(xué)人教版下冊(cè)專(zhuān)題整合復(fù)習(xí)卷11.2.1 正比例函數(shù)(含答案)-
- 2025年濰坊貨運(yùn)準(zhǔn)駕證模擬考試
- 2025電影(電視)制版權(quán)轉(zhuǎn)讓合同
- 展會(huì)應(yīng)急預(yù)案展示
- 商業(yè)綜合體門(mén)禁系統(tǒng)改造合同
- 建筑工程銷(xiāo)售會(huì)計(jì)聘用樣本
- 農(nóng)業(yè)科技公司聘用合同
- 2025技術(shù)服務(wù)合同書(shū)(2)新
- 視覺(jué)傳達(dá)專(zhuān)業(yè)規(guī)劃發(fā)展
- 2024年01月11318社會(huì)統(tǒng)計(jì)學(xué)期末試題答案
- 統(tǒng)編版(2024版)七年級(jí)上冊(cè)道德與法治期末學(xué)情調(diào)研測(cè)試卷 3套(含答案)
- 計(jì)算機(jī)輔助設(shè)計(jì)智慧樹(shù)知到答案2024年青島城市學(xué)院
- 檔案管理制度
- 《客艙安全管理與應(yīng)急處置》課件-第7講 非法干擾行為
- 生態(tài)修復(fù)綠化施工方案
- 2024考研408真題+答案
- 醫(yī)生四頁(yè)簡(jiǎn)歷10模版
- 新一代無(wú)創(chuàng)產(chǎn)前篩查技術(shù)NIPT2.0臨床應(yīng)用策略專(zhuān)家共識(shí)
- 公路工程技術(shù)標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論