全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程-Python語(yǔ)言程序設(shè)計(jì)(2018年版)課后習(xí)題參考答案匯總_第1頁(yè)
全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)教程-Python語(yǔ)言程序設(shè)計(jì)(2018年版)課后習(xí)題參考答案匯總_第2頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

全國(guó)計(jì)算機(jī)等級(jí)考試?級(jí)教程——Python語(yǔ)?程序設(shè)計(jì)(2018年版)課后習(xí)題參考答案匯總?cè)鐦?biāo)題所?,由于嵩天?師的那本書(shū)的課后習(xí)題的?題部分缺少答案,于是下?的代碼是??在看書(shū)期間嘗試練習(xí)的結(jié)果,僅供同學(xué)參考。另外推薦MOOC上嵩天?師關(guān)于。祝學(xué)習(xí)愉快。#第2章第2題sen=input("print("\n".join(sen))#在print函數(shù)中,“\n”的轉(zhuǎn)義效果就很明顯#把?個(gè)字符串拆分成由字符組成的列表【不能變成集合,因?yàn)榧系脑挄?huì)?動(dòng)去重】的話是不是直接list()list1=list(sen)#第2章第3題#這道題涉及到把字符轉(zhuǎn)換為有效的可以計(jì)算的值#沒(méi)有那么復(fù)雜,eval可以?動(dòng)識(shí)別try:equ=eval(input("請(qǐng)輸??個(gè)合法的算式:"))#如果不是算式,可以檢驗(yàn)其是否合法嗎?except:print("輸?的公式不合法,請(qǐng)重新輸?,如1+3")equ=eval(input("請(qǐng)輸??個(gè)合法的算式:"))print(equ)#第2章第4題equ=eval(input("請(qǐng)輸??個(gè)?數(shù):"))#print("您輸?的?數(shù)的整數(shù)部分是:{}".format(round(equ)))#這個(gè)保留的是四舍五?的整數(shù)值,還不太準(zhǔn)確。#print("您輸?的?數(shù)的整數(shù)部分是:{:d}".format(equ))list1=str(equ).split(".")print(list1[0])#第25題n=eval(input("請(qǐng)輸?整數(shù)N:"))#請(qǐng)輸?整數(shù)N:8sum=0foriinrange(1,n+1):globalsumsum=print("1到N的求和結(jié)果:{}".format(sum))#1到N的求和結(jié)果:36#第3章第1題輸?該整數(shù)百位及以上的數(shù)字num=eval(input("請(qǐng)輸??個(gè)整數(shù):"))print("該整數(shù)百位及以上的數(shù)字是:{}".format(num//100))#第3章第2題string=input("請(qǐng)輸??個(gè)字符串(以空格分隔):")str=string.split("")#變成了?個(gè)listprint("\n".join(str))#注意斜杠的?向#第3章第3題這道題相對(duì)?較復(fù)雜不過(guò)不能我們或許可以定義?個(gè)字典week={"1":","2":"","3":"","4":"","5":"","6":"","7":""}dayinput((1-7):")print("今天是:{}".format(week.get(day)))#第3章第4題判斷回?數(shù)涉及到?個(gè)將數(shù)字反向排列的?法(之前好像有遇到過(guò))defnew=list(get)new=list(get)new.reverse()rev="".join(new)ifrev==get:print("輸?的這個(gè)數(shù)是回?數(shù)。")else:print("輸?的這個(gè)數(shù)不是回?數(shù)。")#將字符串反轉(zhuǎn)是Python中常常考察的題了getinput(請(qǐng)輸??個(gè)數(shù)(?于判斷是否為回?數(shù)reverse(get)#第3章第5題num=eval(input("請(qǐng)輸??個(gè)?進(jìn)制的整數(shù):"))print("其?進(jìn)制的形式為:{:b}".format(num))print("其?進(jìn)制的形式為:{:o}".format(num))print("其?六進(jìn)制的形式為:{:X}".format(num))#第4章第1題判斷是否為閏年#閏年的判斷標(biāo)準(zhǔn)是4100整除(2)能夠被四百整除?#判斷條件有點(diǎn)復(fù)雜,給它兩次機(jī)會(huì)。year=eval(input("請(qǐng)輸??個(gè)年份:"))defyeardeside(year):ifyear%400==0:print("該年份為閏年。")else:ifyear%4==0andyear%100!=0:#python這邊條件之間使?的參數(shù)是,andorprint("該年份為閏年。")else:print("該年份不為閏年。")yeardeside(year)#ftyear為?戶輸?的數(shù)值。#第4章第2題計(jì)算兩個(gè)整數(shù)之間的最?公約數(shù)和最?公倍數(shù)#最?公約數(shù)的計(jì)算?法:輾轉(zhuǎn)相除法#最?公倍數(shù)的計(jì)算?法:兩個(gè)數(shù)的乘積除以最?公約數(shù)#涉及到取余兩個(gè)數(shù)之中較?的那?個(gè)再除涉及到判斷的情況直到最后余零這時(shí)的被除數(shù)就是最?公約數(shù)a=eval(input("請(qǐng)輸??個(gè)較?的數(shù):"))b=eval(input("請(qǐng)輸??個(gè)較?的數(shù):"))cbbb的值在循環(huán)的過(guò)程中會(huì)發(fā)?改變daaa的值在循環(huán)的過(guò)程中會(huì)發(fā)?改變whilea%b!=0:r=a%ba=bb=rprint("這兩個(gè)數(shù)的最?公約數(shù)是:{}".format(b))print("這兩個(gè)數(shù)的最?公倍數(shù)是:{}".format((d*c)/b))#除法產(chǎn)?的結(jié)果為浮點(diǎn)數(shù)#第4章第3題統(tǒng)計(jì)不同字符的個(gè)數(shù),包括中英?字符,數(shù)字,空格和其他字符的個(gè)數(shù)#我感覺(jué)這題有點(diǎn)復(fù)雜,拿到要?個(gè)字符?個(gè)字符的判斷嘛#不?,我看到的?上的解決思路是這樣的,以輸?的那個(gè)序列為基準(zhǔn),在??則在原來(lái)的基礎(chǔ)上加?,不在??,則以??為第?個(gè)。#res相當(dāng)于是定義了?個(gè)字典,按照鍵去取值,默認(rèn)值為0,存在則取出相應(yīng)的值(兩種解決思路)#能不能按照值的??進(jìn)?排序輸出sen=input("請(qǐng)輸???字符:")defcount(sen):res={}#定義?個(gè)空的字典集res={}#定義?個(gè)空的字典集foriinsen:sen中的元素res[i]=res.get(i,0)+1(?然?然會(huì)想到的事情)itemslist(res.items()把沒(méi)有順序的字典轉(zhuǎn)換為有順序的列表items.sort(keylambdax:x[1],reverse=True)排序returnitems縮進(jìn)注意count(sen)#iinrange(10):word,countitems[i返回列表第?個(gè)元素,為?個(gè)鍵值對(duì)的元組print(word,count輸出的格式可適當(dāng)調(diào)整。????輸出#第4章第4題#主要考察異常處理的處理?式try:num=eval(input("請(qǐng)輸??個(gè)整數(shù):"))except:print("輸?錯(cuò)誤!請(qǐng)輸??個(gè)整數(shù)。")continue#結(jié)束本次循環(huán),繼續(xù)下?次循環(huán)#第4章第5題#?車(chē)門(mén)游戲#random庫(kù)對(duì)于這個(gè)隨機(jī)事件進(jìn)?預(yù)測(cè)#預(yù)測(cè)參賽者改變選擇和堅(jiān)持選擇獲勝的概率#主持?開(kāi)啟另?扇門(mén),露出門(mén)后??,更不更換(即??所指的是汽車(chē)還是??之間賭fromrandomimport*random庫(kù),隨機(jī)?成?組數(shù)(這組數(shù)的性質(zhì)由不同的函數(shù)所決定)arandint(1,3)?戶隨機(jī)指出另?扇門(mén)#1,23為車(chē)ifa3:rate=1/3print("不改變選擇獲勝的概率為{}".format(rate))else:rate=2/3print("改變選擇獲勝的概率為{}".format(rate))#這道題實(shí)際上就是通過(guò)多次抽樣得到勝利的次數(shù),?概率就是從抽樣這個(gè)過(guò)程中找到規(guī)律fromrandomimport*x=randint(5000,10000)#抽樣的次數(shù)change=0nochange=0foriinrange(1,x+1):a=randrange(1,4)#汽車(chē)所在的位置b=randrange(1,4)#?戶選的位置ifa==b:nochange=nochange+1#不改變計(jì)數(shù)為1,只有不改變才能獲勝else:change=change+1#改變計(jì)數(shù)為1,改變才能獲勝print("不更改選擇得到汽車(chē)的概率為{}".format(nochange/x))print("更改選擇得到汽車(chē)的概率為{}".format(change/x))#第52truefalsedefintprocess(num):#判斷整數(shù)類(lèi)型,異常判斷if(type(num)==type(1)):foriinrange(2,num):ifnum%i0如果存在可以整除的其余項(xiàng)?,則不予考慮returnFalseelse:i==num-1i==num-1returnTrueelse:print("輸?的參數(shù)不為整數(shù)!重新輸?!")#第5章第3題統(tǒng)計(jì)傳?字符串中的字母,數(shù)字,空格以及其他字符的個(gè)數(shù)defcount(str):res={}foriinres[i]=res.get(i,0)+1items=list(res.items())items.sort(key=lambdax:x[1],reverse=True)#排序returnitems#縮進(jìn)注意#第5章第4題打印200以?xún)?nèi)的所有素?cái)?shù)#素?cái)?shù):除了1和它本?再?zèng)]有其他因?的數(shù)defsushu(num):a=[1]foriinrange(1,num+1):forjinrange(2,i):ifi%j0如果存在可以整除的其余項(xiàng)?,則不予考慮breakelse:ifj==i-1:#遍歷到最后的,還是沒(méi)有遇到整除的a.append(i)#print("{0}以?xún)?nèi)的素?cái)?shù)為:{1}".format(num,"".join(str(a))))#str(a)這?我的還是很不準(zhǔn)確#這也就是上次出錯(cuò)的地?#似曾相識(shí),我是如何解決的呢?#?先把列表中的元素?點(diǎn)點(diǎn)取出來(lái),然后轉(zhuǎn)換為字符串,然后再?join拼接ls2=[str(i)foriina]#這?句代碼特別重要,把數(shù)列中的數(shù)值全部轉(zhuǎn)換為字符串b="".join(ls2)print(b)#第55#第31b#第42b#第n位數(shù)是第n-2次循環(huán)的b#所以最?到第n-2次循環(huán),n-2+1=n-1deffacci(n):a=1b=1foriinrange(1,n-1):c=bb=a=creturnb#第6章第1題:英?字符頻率統(tǒng)計(jì)(就是可能??段序列中有各種字符,僅僅是統(tǒng)計(jì)英?字符出現(xiàn)頻率的統(tǒng)計(jì))#這讓我想到了?perl語(yǔ)?處理堿基序列這塊(還是很神奇的啊)#它這個(gè)是在特定的范圍內(nèi)去統(tǒng)計(jì)頻率#=abc~Z,valuegetkeyvalue加?。defEngCount(str):va={"a":0,"b":0,"c":0,"d":0,"e":0,"f":0,"g":0,"h":0,"i":0,"j":0,"k":0,"l":0,"m":0,"n":0,"o":0,"p":0,"q":0,"r":0,"s":0,"t":0,"u":0,"v":0,"w":0,"x":0,"y":0,"z":0}ls=list(str)foriinls:ifva.get(i,"*")=="*":#這個(gè)判斷語(yǔ)句有問(wèn)題#后來(lái)修正了看出了問(wèn)題所在breakbreakelse:va[i]=va.get(i)+1items=list(va.items())items.sort(key=lambdax:x[1],reverse=True)#排序returnitems#在逐個(gè)遍歷的過(guò)程中EngCount("xshaxvhasvchasvhbxsabhsv")#第6章第2題統(tǒng)計(jì)中?字符出現(xiàn)的頻率(想把?叔的詩(shī)作弄下來(lái),然后去統(tǒng)計(jì)字頻,那?定很有趣)importosos.chdir("E:\\S-code\\Pythoncode")#設(shè)定新的?作?錄,test.txt?件要存放在這個(gè)?作?錄下os.getcwd()#查看現(xiàn)在的?作?錄'E:\\S-code\\Pythoncode'#顯?的是我們最新設(shè)定的,就代表設(shè)定成功f=open("pose.txt","rt")#test.txt為?件名,rt為讀取?件的?式sf.readlines(讀取?件,輸出結(jié)果為?個(gè)列表poseforlineins:ls=list(line)foriinls:ifiin",。、":breakelse:pose[i]=pose.get(i,0)+1items=list(pose.items())items.sort(key=lambdax:x[1],reverse=True)foriinrange(1,11):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))f.close()#這?雖然能夠?qū)Τ霈F(xiàn)的中?字符,但是如果能夠出現(xiàn)常?的詞語(yǔ)的搭配就更好了#詞云importjiebaf=open("pose.txt","r")txt=f.read()f.close()words=jieba.lcut(txt)counts={}forwordinwords:iflen(word)==1:continueelse:counts[word]=counts.get(word,0)+1items=list(counts.items())items.sort(key=lambdax:x[1],reverse=True)foriinrange(1,11):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))#第6章第3題隨機(jī)密碼的?成importrandomcodelist=["A","a","B","b","C","c","D","d","E","e",1,2,3,4,5,6,7,8,9,0]foriinrange(1,11):secret=random.sample(codelist,8)#把列表變成字符串new=[str(i)foriinsectet]#這?句代碼特別重要,把數(shù)列中的數(shù)值全部轉(zhuǎn)換為字符串print("{}".format("".join(new)))#第6章第4題重復(fù)元素判定defrep(ls):#逐個(gè)的遍歷列表各元素(這?就涉及到算法了)#在我印象中,算法是什么呢,就是解決問(wèn)題的?法,?這種解決問(wèn)題的?法可以通過(guò)不同的語(yǔ)?來(lái)實(shí)現(xiàn)#算法具體解決的是怎么做的問(wèn)題,就像解?道數(shù)學(xué)題有不同的思路foriinrange(0,len(ls)):#這?的嵌套循環(huán)是值得借鑒的forjinrange(i+1,len(ls)):ifls[i]==ls[j]:print("糟糕!有重復(fù)值!")breakelse:continuea=[1,2,3,1,1,5,3,5,4,6]rep(a)#第6章第5題利?集合的?重復(fù)性改編這道程序defrep(ls):#在命名變量的時(shí)候,不要和語(yǔ)?本?的關(guān)鍵字重復(fù),要不然程序會(huì)傻傻分不清#逐個(gè)的遍歷列表各元素(這?就涉及到算法了)#在我印象中,算法是什么呢,就是解決問(wèn)題的?法,?這種解決問(wèn)題的?法可以通過(guò)不同的語(yǔ)?來(lái)實(shí)現(xiàn)#算法具體解決的是怎么做的問(wèn)題,就像解?道數(shù)學(xué)題有不同的思路a=set(ls)#轉(zhuǎn)為集合blist(a集合再轉(zhuǎn)換為列表ifbls:print("安全!?重復(fù)值!")else:print("糟糕!有重復(fù)值!")a=[1,2,3,2]rep(a)#第7章第1題統(tǒng)計(jì)該字符在?件中出現(xiàn)的次數(shù)#發(fā)現(xiàn)定義?個(gè)函數(shù)真的要?便很多,到時(shí)候直接調(diào)?就?importosos.chdir("E:\\S-code\\Pythoncode")defcharcount(ch):word={ch:0}#定義?個(gè)字典,默認(rèn)值為零f=open("diary.txt","rt")p=f.readlines()foriinp:#讀取每??,存放在?個(gè)列表之中forjini:#再對(duì)每??的字符串進(jìn)?分解成字符ifj==ch:word[ch]=word.get(ch,0)+1count=word.get(ch,0)charcount("我")#第7章第2題?寫(xiě)字母轉(zhuǎn)?寫(xiě)?寫(xiě)字母轉(zhuǎn)?寫(xiě)(好?聊的要求,估計(jì)是看看我們熟不熟悉這部分操作吧)#這個(gè)函數(shù)也是逐個(gè)遍歷,逐個(gè)操作處理的過(guò)程#通過(guò)做這道題學(xué)會(huì)了?件另存為的操作,怎樣寫(xiě)??個(gè)新的?件中importosos.chdir("E:\\S-code\\Pythoncode")f=open("englishText.txt","r+")w=open("new.txt","a+")p=f.readlines()#每?被存儲(chǔ)為列表foriinp:#讀取每??,存放在?個(gè)列表之中forjini:#再對(duì)每??的字符串進(jìn)?分解成字符ifj.islower():#

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論