Python程序設(shè)計(jì)基礎(chǔ)李靜課后參考答案_第1頁
Python程序設(shè)計(jì)基礎(chǔ)李靜課后參考答案_第2頁
Python程序設(shè)計(jì)基礎(chǔ)李靜課后參考答案_第3頁
Python程序設(shè)計(jì)基礎(chǔ)李靜課后參考答案_第4頁
Python程序設(shè)計(jì)基礎(chǔ)李靜課后參考答案_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1章1.1程序設(shè)計(jì)語言是指書寫計(jì)算機(jī)程序的語言。程序設(shè)計(jì)語言(又稱編程語言)是人與計(jì)算機(jī)信息交流的工具,它提供了讓用戶按自己的需要編制程序的功能。1.2程序設(shè)計(jì)語言通??煞譃槿悾簷C(jī)器語言、匯編語言和高級(jí)語言。(1)機(jī)器語言機(jī)器語言是計(jì)算機(jī)系統(tǒng)能夠能直接接收、識(shí)別并執(zhí)行的程序設(shè)計(jì)語言。(2)匯編語言匯編語言是一種把機(jī)器語言符號(hào)化的語言。它采用一些有意義的縮寫字母及符號(hào)(稱為助記符)來表示機(jī)器語言中的指令和數(shù)據(jù)。(3)高級(jí)語言高級(jí)語言的語句更接近自然語言,因此用它編寫的程序易讀、易記、易維護(hù),且通用性強(qiáng),大大提高了程序設(shè)計(jì)效率。1.3根據(jù)翻譯方式的不同,可分為編譯方式和解釋方式兩類。編譯方式是用編譯程序?qū)⒃闯绦蛞淮涡缘胤g成等價(jià)的目標(biāo)程序后,再執(zhí)行該目標(biāo)程序。特點(diǎn)是:對(duì)源程序進(jìn)行編譯的過程比較長,程序的調(diào)試修改也比較麻煩,但編譯后得到的目標(biāo)程序執(zhí)行速度快,運(yùn)行效率高。解釋方式是用解釋程序?qū)⒃闯绦蛑饤l進(jìn)行翻譯,翻譯一條執(zhí)行一條,邊翻譯邊執(zhí)行。特點(diǎn)是:解釋執(zhí)行方式的運(yùn)行速度慢,效率低,但提供了人—機(jī)會(huì)話方式,易于調(diào)試修改程序。1.4Python作為一種通用性語言,主要特點(diǎn)有:簡潔易學(xué),集解釋性與編譯性于一體,多模式編程,可擴(kuò)展性和可嵌入性,可移植性,免費(fèi)開源,良好的編程生態(tài)等。1.5面向過程的程序設(shè)計(jì)和面向?qū)ο蟮某绦蛟O(shè)計(jì)兩大類。面向過程的程序設(shè)計(jì)(Procedure-OrientedProgramming)又稱為結(jié)構(gòu)化程序設(shè)計(jì),其基本思想就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn)。面向?qū)ο蟮某绦蛟O(shè)計(jì)(Object-OrientedProgramming,簡稱OOP)是一種計(jì)算機(jī)編程架構(gòu),它將對(duì)象作為程序的基本單元,將程序和數(shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴(kuò)展性。1.6Python提供交互式和文件式兩種程序運(yùn)行方式。交互式是指Python解釋器即時(shí)響應(yīng)用戶輸入的每條代碼,給出運(yùn)行結(jié)果。文件式是將Python程序?qū)懙揭粋€(gè)文件中去,Python解釋器批量解釋并執(zhí)行文件中的代碼。交互式通常用于少量代碼的調(diào)試,而文件式是最常用的程序設(shè)計(jì)方式。1.7PyCharm是由JetBrains開發(fā)的一種Python集成開發(fā)環(huán)境,適用于Python專業(yè)開發(fā)人員。PyCharm提供了一套完備高效的開發(fā)工具,如代碼分析、語法高亮、項(xiàng)目管理、智能提示、自動(dòng)完成、單元測試、版本控制等。它還提供了一些高級(jí)功能,用于支持Django框架下的專業(yè)Web開發(fā)等。Anaconda是一個(gè)面向數(shù)據(jù)科學(xué)的開源Python版本,其中包括Python、Conda以及很多已安裝好的工具包及其依賴包,如numpy、scipy、pandas等。目前,Anaconda已經(jīng)成為數(shù)據(jù)分析的標(biāo)準(zhǔn)環(huán)境。Anaconda解決了Python的兩大問題。一是提供了包管理功能,解決了Windows平臺(tái)安裝第三方包經(jīng)常失敗的問題;二是提供了環(huán)境管理的功能,解決了多版本Python并存切換的問題。1.8IPO(Input,Process,Output)是一種基本的程序編寫方法。它把一個(gè)程序設(shè)計(jì)分為輸入數(shù)據(jù)、處理數(shù)據(jù)和輸出數(shù)據(jù)三部分。輸入數(shù)據(jù):輸入是一個(gè)程序的開始,包括用戶手工輸入、隨機(jī)數(shù)據(jù)輸入、文件輸入、網(wǎng)絡(luò)輸入、內(nèi)部參數(shù)輸入等。處理數(shù)據(jù):程序?qū)斎霐?shù)據(jù)進(jìn)行處理,產(chǎn)生輸出結(jié)果。處理數(shù)據(jù)的方法又稱為算法,是程序設(shè)計(jì)的核心。根據(jù)要解決問題的不同,可采用不同的算法。輸出數(shù)據(jù):輸出是一個(gè)程序展示運(yùn)算成果的方式。程序的輸出包括屏幕顯示輸出、文件輸出、網(wǎng)絡(luò)輸出、操作系統(tǒng)內(nèi)部變量輸出等。1.9用計(jì)算機(jī)解決問題的一般步驟包括:分析問題、設(shè)計(jì)算法、編寫程序、測試調(diào)試等。第2章2.1關(guān)鍵字:=1\*GB3①=3\*GB3③=9\*GB3⑨=10\*GB3⑩eq\o\ac(○,11)合法標(biāo)識(shí)符:=2\*GB3②=6\*GB3⑥=7\*GB3⑦=8\*GB3⑧eq\o\ac(○,12)eq\o\ac(○,14)2.2=3\*GB3③=4\*GB3④=5\*GB3⑤=6\*GB3⑥2.3a1和a2和a3的平均值為512.4【1】#【2】#【3】'''【4】'''2.5【1】radius=50【2】kilometers=radius*2*3.14【3】print(kilometers)2.6print("*")print("***")print("****")2.7x=eval(input("請(qǐng)輸入第一個(gè)數(shù):"))y=eval(input("請(qǐng)輸入第二個(gè)數(shù):"))print(x,'+',y,'=',x+y)print(x,'*',y,'=',x*y)2.8F=eval(input("請(qǐng)輸入華氏溫度值:"))C=(F-32)*5/9print("轉(zhuǎn)換為攝氏溫度值為:",C)2.9r=eval(input("請(qǐng)輸入圓半徑:"))perimeter=2*3.14*rarea=3.14*r*rprint("圓面積為:",area,"圓周長為:",perimeter)2.10importturtleturtle.penup()turtle.goto(-50,35)turtle.pendown()turtle.write("(-50,35)")turtle.goto(50,-35)turtle.write("(50,-35)")turtle.done()2.11importturtleastt.penup()t.goto(-50,0)t.pendown()t.circle(50)t.penup()t.goto(50,0)t.pendown()t.circle(50)t.done()2.12importturtleastt.penup()t.goto(-50,0)t.pendown()t.fd(100)t.left(120)t.fd(100)t.left(120)t.fd(100)第3章3.1(1)(3.25*4-5.17/2)/(40-2.25)(2)9*(a/5-b/(a-5)**2)(3)–b+(b**2-4*a*c)**0.5(4)(2**4+7-3*4)/53.25.5float6-6423.1421785.05.0-1202.54.033.3'H''!''!''lo''Hello!P''lo!Pyth''!nohtyP!olleH''HloPto!''el''ython!''Hello!Python!'3.4、"hello!python!""HELLO!PYTHON!""Hello~Python~"2["Hello","Python",""]FalseTrueTrueFalseFalseFalse410True"Hello!Python!Python!""Hello!Python!Hello!Python!Hello!Python!"TrueTrueFalse3.5、"等級(jí)考試""等級(jí)考試""***等級(jí)考試***""{:>10}".format(s)"123.46""123.46""3.14e+00,3.14E+00,314.16%""11111111,255,377,ff"

3.6、35<=PM<=75PM>=75orPM<=35PM%3==0orPM%5==0PM%3==0andPM%5==0PM%3==0andPM%5!=0PMin[0,7,2,18,25,78]PMnotin[0,7,2,18,25,78](PM%4==0orPM%100==0)andPM%400!=0PM==400

3.7、【1】random.randint(0,100)【2】random.randrange(0,100)【3】random.randrange(1,100,2)【4】random.random()【5】random.uniform(0,1)【6】random.sample("abcdefghij",4)3.8、importmatha,b,c=eval(input("請(qǐng)輸入三角形三邊長:"))ifa+b<=cora+c<=borb+c<=a:print("任意兩邊和必須大于第三邊!")else:s=(a+b+c)/2area=math.sqrt(s*(s-a)*(s-b)*(s-c))print("三角形的面積為:{:.2f}".format(area))3.9、importrandomn=random.randint(100,999)a=n%10b=n//10%10c=n//100ifn==a**3+b**3+c**3:print("{}是水仙花數(shù)".format(n))else:print("{}不是水仙花數(shù)".format(n))3.10、n=eval(input("請(qǐng)輸入一個(gè)整數(shù),例如3145,代表3145秒:"))remainingSeconds=n#保存剩余秒數(shù),初始值就是輸入的秒數(shù)hour=remainingSeconds//(60*60)#整數(shù)里面包含的小時(shí)數(shù)remainingSeconds=remainingSeconds%(60*60)#去掉小時(shí)數(shù)剩余的秒數(shù)minute=remainingSeconds//60#剩余的秒數(shù)包含的分鐘數(shù)remainingSeconds=remainingSeconds%60#去掉分鐘數(shù)剩余的秒數(shù)second=remainingSecondsprint("{}秒相當(dāng)于{}小時(shí){}分{}秒!".format(n,hour,minute,second))3.11、total=eval(input("請(qǐng)輸入存款額(元):"))annualInterestRate=eval(input("請(qǐng)輸入年利率(如3.5):"))year=eval(input("請(qǐng)輸入存款年限:"))final=total*((1+annualInterestRate/100)**year)print("到期可得:{:2f}".format(final))3.12、height=eval(input("請(qǐng)輸入身高(米):"))weight=eval(input("請(qǐng)輸入體重(公斤):"))bmi=weight/pow(height,2)if18.5<=bmi<=23.9:print("BMI值為{},是標(biāo)準(zhǔn)體重。".format(bmi))else:print("BMI值為{},不是標(biāo)準(zhǔn)體重。".format(bmi))3.13、n=input("輸入字符串:")s=n[::-1]print("字符串{}的逆序字符串為:{}".format(n,s))3.14、s=input("請(qǐng)輸入一個(gè)字符串:")forcins:print(c)3.15、s=input("請(qǐng)輸入一個(gè)字符串:")c=input("請(qǐng)輸入想刪除的字符:")print(s.replace(c,''))3.16、s1=input("請(qǐng)輸入第一個(gè)字符串:")s2=input("請(qǐng)輸入第二個(gè)字符串:")iflen(s1)<len(s2):print("第一個(gè)字符串較小。")eliflen(s1)>len(s2):print("第二個(gè)字符串較小。")else:foriinrange(0,len(s1)):ifs1[i]<s2[i]:print("第一個(gè)字符串較小。")breakelifs1[i]>s2[i]:print("第二個(gè)字符串較小。")breakelse:print("兩個(gè)字符串相等。")第4章4.1elif、elsebreak、continue會(huì)嵌套循環(huán)for、while0,1,2,3201714118 55-1、1無限4.2sum=20s1=20s2=12s3=13wELCOMETOjINAN2468Thesumis44127500101201234.3temp=eval(input("請(qǐng)輸入溫度值:"))iftemp>=35:print("高溫天氣,注意防暑!")eliftemp>=10:print("溫度適宜,快樂生活!")else:print("低溫天氣,注意保暖!")4.4name=input('請(qǐng)輸入姓名:')age,score=eval(input('請(qǐng)輸入年齡,分?jǐn)?shù):'))ifage<=35andscore>=85:print('恭喜您入選集訓(xùn)隊(duì)!')else:print('很遺憾,請(qǐng)繼續(xù)努力!')4.5x=eval(input("請(qǐng)輸入一個(gè)實(shí)數(shù):"))ifx<0orx>=20:y=0elifx<5:y=xelifx<10:y=3*x-5elifx<20:y=0.5*x-2print("y=",y)4.6s=0i=1whilei<=100:s+=ii+=2print(s)sum=0foriinrange(2,101,2):sum+=iprint(sum)4.7s=input("請(qǐng)輸入一個(gè)字符串:")a=b=c=d=0forchins:ifch.isupper():a+=1elifch.islower():b+=1elifch.isnumeric():c+=1else:d=+1print("大寫字母{0}個(gè)\n小寫字母{1}個(gè)\n數(shù)字{2}個(gè)\n其他字符{3}個(gè)".format(a,b,c,d))4.8name=input("請(qǐng)輸入名字:")whilename!="":chi,math,eng=eval(input("請(qǐng)輸入語文,數(shù)學(xué),英語成績(以,分隔):"))s=chi+math+engprint("總分為:",s)name=input("請(qǐng)輸入名字:")else:print("執(zhí)行完畢!")4.9foriinrange(1,1000):sum=0ls=[]forfactorinrange(1,i):ifi%factor==0:sum+=factorls.append(factor)ifi==sum:print(i)foriteminls:print(item,end="")print()4.10num=input("輸入一個(gè)數(shù):")ifnum.isdigit():foriinrange(len(num)//2):ifnum[i]==num[len(num)-i-1]:continueelse:print(num,"不是回文數(shù)")breakelse:print(num,"是回文數(shù)")else:print("輸入的不是數(shù)字")4.11forxinrange(21):foryinrange(34):z=100-x-yifz%3==0and5*x+3*y+z//3==100:print("大雞={},中雞={},小雞={}".format(x,y,z))4.12importrandomnumber=random.randint(0,100)print("猜一個(gè)0~100之間的整數(shù)")guess=-1n=0whileguess!=number:n+=1guess=int(input("輸入你的猜測:"))ifguess==number:print("猜對(duì)了,這個(gè)數(shù)是",number)print("預(yù)測{}次,你猜中了".format(n))elifguess>number:print("太大了")else:print("太小了")4.13try:temp=eval(input("請(qǐng)輸入溫度值:"))iftemp>=35:print("高溫天氣,注意防暑!")eliftemp>=10:print("溫度適宜,快樂生活!")else:print("低溫天氣,注意保暖!")exceptNameError:print("輸入數(shù)據(jù)類型錯(cuò)誤!")4.14importrandomimportturtlecolor=["red","green","blue","purple"]foriinrange(50):r=random.randint(10,100)turtle.penup()turtle.pensize(2)turtle.pencolor(random.choice(color))turtle.goto(0,-r)turtle.seth(0)turtle.pendown()turtle.circle(r)turtle.done()4.15baseSalary=eval(input("請(qǐng)輸入基本工資:"))print("月銷售額\t\t年收入")forsaleAmountinrange(0,21000,2000):ifsaleAmount<3000:rate=0.05elif3000<=saleAmount<6000:rate=0.08elif6000<=saleAmount<10000:rate=0.12else:rate=0.15yearIncome=(baseSalary+saleAmount*rate)*12print("{}\t\t{}".format(saleAmount,yearIncome))第5章5.1defglobal(3,6,7)None10位置參數(shù)關(guān)鍵字參數(shù)*遞歸調(diào)用局部變量全局變量5.234515counter=4num=0counter=1num=01682074955.3importmathdefprintmess():print("Howdoyoudo!")deffun_min(a,b,c):returnmin(a,b,c)defarea(r):returnmath.pi*r*rdeffun_toupper(s):returns.upper()printmess()x,y,z=eval(input("請(qǐng)輸入三個(gè)數(shù):"))print("min=",fun_min(x,y,z))radius=eval(input("請(qǐng)輸入半徑:"))print("r={},area={:.2f}".format(radius,area(5)))c=input("請(qǐng)輸入一個(gè)字符串:")print(fun_toupper(c))5.4a=b=0foriinrange(10):x=eval(input("請(qǐng)輸入一個(gè)數(shù):"))ifx%2==0:b+=1else:a+=1print("奇數(shù)為{}個(gè),偶數(shù)為{}個(gè)。".format(a,b))5.5deffact(m):ifm==0orm==1:f=1else:f=m*fact(m-1)returnfs=0n=eval(input("請(qǐng)輸入n:"))forjinrange(1,n+1):s+=fact(j)print("1!+2!+...+{}!={}".format(n,s))5.6importmathdefisTriangle(a,b,c):ifa+b>canda+c>bandb+c>a:returnTrueelse:returnFalsedefcalReslut(a,b,c):peri=a+b+cp=(a+b+c)/2area=math.sqrt(p*(p-a)*(p-b)*(p-c))returnperi,areax,y,z=eval(input("請(qǐng)輸入三角形的三個(gè)邊長:"))ifisTriangle(x,y,z):perimeter,area=calReslut(x,y,z)print("area={:.2f}\nperimeter={:.2f}".format(area,perimeter))else:print("無法構(gòu)成三角形!")5.7importmathdefisTriangle(a=1,b=1,c=1):ifa+b>canda+c>bandb+c>a:returnTrueelse:returnFalsedefcalReslut(a=1,b=1,c=1):peri=a+b+cp=(a+b+c)/2area=math.sqrt(p*(p-a)*(p-b)*(p-c))returnperi,areaifisTriangle():perimeter,area=calReslut()print("area={:.2f}\nperimeter={:.2f}".format(area,perimeter))else:print("無法構(gòu)成三角形!")5.8defcalSum(*b):s=0forninb:s+=nreturnround(s/len(b),2)print(calSum(5))print(calSum(5,8))print(calSum(3,5,8,12,4))5.9defcalSum(n):t=ns=0whilet!=0:r=t%10s+=rt=t//10returnsn=eval(input("請(qǐng)輸入一個(gè)非負(fù)整數(shù):"))print("{}的各個(gè)數(shù)字之和為{}".format(n,calSum(n)))5.10defsortThree(a,b,c):ifa>b:a,b=b,aifb>c:b,c=c,bifa>b:a,b=b,areturna,b,cx,y,z=eval(input("請(qǐng)輸入三個(gè)數(shù)(以,分隔):"))a,b,c=sortThree(x,y,z)print("由小到大排序?yàn)椋?,a,b,c)5.11defprintNum(m):foriinrange(m,0,-1):print(i,end="")print()n=eval(input("請(qǐng)輸入一個(gè)正整數(shù):"))foriinrange(1,n+1):printNum(i)5.12defshuixianhua(a):a1=a%10a2=a//10%10a3=a//100ifa==pow(a1,3)+pow(a2,3)+pow(a3,3):returnTrueelse:returnFalseprint("水仙花數(shù)為:")foriinrange(100,1000):ifshuixianhua(i):print(i)5.13deffs(n):ifn==1orn==2:f3=1else:f1=f2=1foriinrange(3,n+1):f3=f1+f2f1=f2f2=f3returnf3n=eval(input("請(qǐng)輸入一個(gè)正整數(shù):"))print("fs[{}]={}".format(n,fs(n)))5.14importmathdefisPrime(n):ifn<=1:returnFalseforiinrange(2,int(math.sqrt(n))+1):ifn%i==0:returnFalsereturnTruen=eval(input("請(qǐng)輸入一個(gè)整數(shù),輸入0則結(jié)束:"))whilen!=0:ifisPrime(n):print("{}是質(zhì)數(shù)!".format(n))else:print("{}不是質(zhì)數(shù)!".format(n))n=eval(input("請(qǐng)輸入一個(gè)整數(shù),輸入0則結(jié)束:"))5.15defNum():globalii+=1returnidefmove(n,a,b,c):ifn==1:print(a,'->',c)Num()else:move(n-1,a,c,b)print(a,'->',c)move(n-1,b,a,c)Num()i=0n=eval(input("請(qǐng)輸入盤子的個(gè)數(shù):"))print('移動(dòng)步驟如下:')move(n,'A','B','C')print('移動(dòng)總次數(shù)為:',i)第6章6.1innotinFalse32'Python'[2,3,4][0,4,8,12,16][19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0][1,2,3,4,5,6][0,0,0,0,0][30,43,100,75,80][30,43,75,80,100]'f'[0,1,4,9,16,25,36,49,64,81](0,1,2,3,4)10[10,15,9,31]'n' 0 True6.2DADCBDCDBA6.3[30,1,2,1,0,40][30,43,1,2,1,0,40][30,43,1,2,1,0,40,1,43][30,43,2,1,0,40,1,43][30,2,1,0,40,1,43][30,2,1,0,40,1][0,1,1,2,30,40][40,30,2,1,1,0]6.4(1)s={'John':3,'Peter':7,'Susan':5}(2)s={'John':3,'Peter':7,'Susan':5}(3)3(4)['John','Peter','Susan'](5)[3,7,5](6)[('John',3),('Peter',7),('Susan',5)](7)True(8)3(9)5(10)s={'Peter':7}(11)s={}6.5defpickRepeat(lst):set_lst=set(lst)iflen(set_lst)==len(lst):returnFalseelse:returnTruemyData=eval(input('請(qǐng)輸入一組數(shù)據(jù)(用逗號(hào)隔開):'))myList=list(myData)x=pickRepeat(myList)print(x)6.6lst=[]print('請(qǐng)按提示輸入5個(gè)整數(shù)\n')foriinrange(5):num=eval(input('請(qǐng)輸入第{}個(gè)整數(shù):'.format(i+1)))lst.append(num)lst.sort(reverse=True)print(lst)6.7importstringimportrandomalpha=string.ascii_lettersnumbers=string.digitslst=list(alpha+numbers)foriinrange(20):result=random.choices(lst,k=4)forjinrange(len(result)):print(result[j],end='')print()6.8importstringdefcheck(pwd):ifnotisinstance(pwd,str)orlen(pwd)<8orlen(pwd)>15:return'Pleaseinputsuitablepassword!'level={1:'low',2:'middle',3:'high'}flag=[False]*3#標(biāo)識(shí)pwd是否含有數(shù)字、大小寫字母和標(biāo)點(diǎn)符號(hào)forchinpwd:ifu'\u4e00'<=ch<=u'\u9fff':return('PleaseinputEnglish!')ifnotflag[0]andchinstring.digits:flag[0]=Trueelifnotflag[1]andchinstring.ascii_letters:flag[1]=Trueelifnotflag[2]andchinstring.punctuation:flag[2]=Truereturnlevel.get(flag.count(True),'error')password=input('請(qǐng)輸入你8-15位的密碼:')print(check(password))6.9nums=input('請(qǐng)輸入數(shù)字列表:')numList=nums.split(',')maxList=[]max=0foriinrange(len(numList)):ifnumList.count(numList[i])>=max:max=numList.count(numList[i])maxList.append((numList[i],max))else:passprint(set(maxList))6.10score=[52,73,85,97,83,92,67,60,78,90]foriinrange(10):ifscore[i]>=85:print('學(xué)生{}的成績是{},等級(jí)為{}'.format(i+1,score[i],'優(yōu)秀'))elifscore[i]>=75:print('學(xué)生{}的成績是{},等級(jí)為{}'.format(i+1,score[i],'良好'))elifscore[i]>=65:print('學(xué)生{}的成績是{},等級(jí)為{}'.format(i+1,score[i],'中等'))elifscore[i]>=60:print('學(xué)生{}的成績是{},等級(jí)為{}'.format(i+1,score[i],'合格'))else:print('學(xué)生{}的成績是{},等級(jí)為{}'.format(i+1,score[i],'不合格'))6.11score=[52,73,85,97,83,92,67,60,78,90]count=0ave=0pairs=[]foriinrange(1,11):pair=(i,score[i-1])pairs.append(pair)pairs=sorted(pairs,key=lambdax:x[1],reverse=True)ave=sum(score)/len(score)foriinscore:ifi>=ave:count+=1else:passprint('學(xué)生{}的成績最高,為{}分'.format(pairs[0][0],pairs[0][1]))print('學(xué)生{}的成績最低,為{}分'.format(pairs[len(pairs)-1][0],pairs[len(pairs)-1][1]))print('所有學(xué)生的平均分為:{}分'.format(round(ave,2)))print('高于平均分的學(xué)生人數(shù)為:{}人'.format(count))6.12proCityDict={'山東':'濟(jì)南','山西':'太原','陜西':'西安','遼寧':'沈陽','云南':'昆明'}count=0foriinproCityDict.keys():answer=input("{}省的省會(huì)是什么?".format(i))ifanswer==proCityDict.get(i):print("答對(duì)了!")count+=1else:print("答錯(cuò)了!應(yīng)該是{}".format(proCityDict.get(i)))print("你答對(duì)了{(lán)}個(gè)".format(count))第7章7.1【1】二進(jìn)制文件【2】文本文件【3】文本文件【4】二進(jìn)制文件【1】read()【2】readline()【3】readlines()【1】write()【2】writelines()【1】dumps()【2】dump()【3】loads()【4】load()【1】os【2】os.path【1】文件指針【2】指針【1】文件開頭【2】當(dāng)前位置【3】文件末尾【4】當(dāng)前文件指針在文件中的位置【1】內(nèi)存【2】暫時(shí)【3】文件【1】split()【2】jieba【3】精確模式【4】全模式【5】搜索引擎模式【1】workbook【2】worksheet【3】cell【1】Workbook()【2】load_workbook()【1】逗號(hào)【2】字符串【1】Document【2】Paragraph【3】Run7.2CCBADDAACDD7.3(1)os.path.dirname(path)(2)os.path.basename(path)(3)os.path.split(path)(4)os.path.splitdrive(path)(5)os.path.splitext(path)7.4withopen(r'C:\Users\lenovo\AppData\Local\Programs\Python\Python38\NEWS.txt','rb')asfp:fp.seek(100,0)text1=fp.read(50)fp.seek(250,1)text2=fp.read(50)text=text1+text2print(str(text,encoding='utf-8'))7.5myStr=input("請(qǐng)輸入你要查找的內(nèi)容:")withopen(r'D:\job\Python\pybook\code\file1.txt','r')asfp:text=fp.read()num=text.count(myStr)print(myStr,"在文件中出現(xiàn)的次數(shù)為:",num)7.6withopen(r'C:\Users\lenovo\AppData\Local\Programs\Python\Python38\NEWS.txt','rb')asfp:fp.seek(100,0)text1=fp.read(50)fp.seek(250,1)text2=fp.read(50)withopen('myNews.txt','w')asf:f.write('第100~150個(gè)字符為:\n')f.write(str(text1,encoding='utf-8')+'\n')f.write('第400~450個(gè)字符為:\n')f.write(str(text2,encoding='utf-8'))7.7importjiebafromcollectionsimportCountertext='科技股整體強(qiáng)勢,F(xiàn)AANG五巨頭中,蘋果漲0.72%,F(xiàn)acebook漲0.52%,谷歌漲0.10%,亞馬遜平盤,\奈飛跌0.08%。野村證券將蘋果公司目標(biāo)價(jià)格從225美元上調(diào)至240美元,維持中性評(píng)級(jí),分析師稱蘋果擁有強(qiáng)大。\中概股方面,愛奇藝漲5.21%,拼多多漲3.35%,京東漲2.40%,百度漲1.72%,攜程漲1.26%,阿里巴巴漲0.20%,\蔚來汽車跌2.55%,嗶哩嗶哩沖高回落漲2.40%,公司獲索尼4億美元戰(zhàn)略投資,雙方將在多個(gè)領(lǐng)域合作。'txt=''foriinrange(len(text)):iftext[i].isalpha():iftext[i].encode('utf-8').isalpha():passelse:txt+=text[i]else:passlst=jieba.lcut(txt)result=Counter(lst)k=result.most_common(10)print('排名前十的字符及出現(xiàn)的次數(shù):')foriink:print(str(i[0])+':'+str(i[1])+';',end='')7.8importopenpyxldata=[['學(xué)號(hào)','姓名','語文','數(shù)學(xué)','英語'],['20150215101','白安華',86,73,75],\['20150215102','常朋偉',70,60,89],['20150215103','付吉康',93,67,98],\['20150215104','郭曉慶',70,76,90],['20150215105','胡榮蝶',86,66,73],\['20150215106','胡曉悅',96,89,62]]wb=openpyxl.Workbook()ws=wb.activeforiinrange(1,8):forjinrange(1,6):ws.cell(i,j).value=data[i-1][j-1]wb.save('mybook.xlsx')7.9importopenpyxlwb=openpyxl.load_workbook('mybook.xlsx')ws=wb.activem_row=ws.max_rowm_column=ws.max_columnm_score=[]sum_score=0ws.cell(1,m_column+1).value='總分'foriinrange(2,m_row+1):sum=0forjinrange(3,m_column+1):sum+=ws.cell(i,j).valuews.cell(i,m_column+1).value=summ_score.append(sum)foriinrange(len(m_score)):sum_score+=m_score[i]ws1=wb.create_sheet()ws1.title='統(tǒng)計(jì)'ws1.cell(1,1).value='最高分'ws1.cell(1,2).value=max(m_score)ws1.cell(2,1).value='最低分'ws1.cell(2,2).value=min(m_score)ws1.cell(3,1).value='平均分'ws1.cell(3,2).value=sum_score/len(m_score)wb.save('mybooknew.xlsx')7.10importopenpyxldefxlsx_to_csv():workbook=openpyxl.load_workbook('mybook.xlsx')ws=workbook.activewithopen('mybook.csv','w')asf:forrowinrange(1,ws.max_row+1):row_value=''forcolinrange(1,ws.max_column+1):row_value=str(ws.cell(row,col).value)f.write(row_value)f.write(',')f.write('\n')xlsx_to_csv()7.11fromdocximportDocumentdocument=Document()document.add_heading('Python操作Word的入門教程')document.add_heading('前言',level=2)p1=document.add_paragraph('在我們的工作中,如果僅僅是單純用Word來完成工作\的文檔,那必然是無可厚非。但總是有一些場景,會(huì)讓你苦惱。比如大批量的從\網(wǎng)頁復(fù)制一些信息,整理到Word中。')document.add_heading('實(shí)戰(zhàn)演示',level=2)p2=document.add_paragraph('開始之前,先要安裝第三方庫python-docx。')document.save('test.docx')7.12fromdocximportDocumentfromdocx.sharedimportPtfromdocx.oxml.nsimportqnfromdocx.sharedimportRGBColordefstyleSet(x,y):r=document.add_heading('').add_run(x.text)=u'宋體'r._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋體')r.font.color.rgb=RGBColor(0,0,0)r.bold=Truer.font.size=Pt(y)document=Document('test.docx')forpindocument.paragraphs:if=='Heading1':styleSet(p,18)elif=='Heading2':styleSet(p,14)elif=='Normal':r=document.add_paragraph().add_run(p.text)=u'宋體'r._element.rPr.rFonts.set(qn('w:eastAsia'),u'宋體')r.font.color.rgb=RGBColor(0,0,0)r.font.size=Pt(11)else:passdocument.save('testNew.docx')7.13fromdocximportDocumentimportredocument=Document('test.docx')forpindocument.paragraphs:ifre.match("^Heading\d+$",):print(p.text)else:pass7.14defrule(comment):justment=Truetext=set(comment)#集合去除重復(fù)字if(len(text)/len(comment))<0.7:justment=Falsereturnjustmentresult=[]lst=[]withopen('bookComment.txt',encoding='utf-8')asfp:fileContent=fp.read()lst=fileContent.split('##')foriinrange(len(lst)):ifrule(lst[i]):result.append(lst[i])foriinrange(len(result)):print(result[i])第8章8.1在程序員的角度,現(xiàn)實(shí)世界中一切實(shí)體都可以被看作對(duì)象。同一種類型的對(duì)象稱為類,類和對(duì)象的關(guān)系就像模具和零件的關(guān)系。類定義了同一類型對(duì)象的公有的屬性和方法,是同類型對(duì)象的抽象。一個(gè)對(duì)象就是類的一個(gè)實(shí)例。8.2構(gòu)造方法是類中的一個(gè)特殊方法,它在創(chuàng)建類的新對(duì)象時(shí)被自動(dòng)調(diào)用,一般被設(shè)計(jì)成數(shù)據(jù)域變量的初始化動(dòng)作,因此又稱為初始化方法,方法名init兩端必須加兩個(gè)連續(xù)下劃線。在對(duì)象被建立之后,self參數(shù)被自動(dòng)用來指向該對(duì)象本身,可以在類定義中的任何位置使用self訪問類定義中成員。8.3構(gòu)造方法是類中的一個(gè)特殊方法,它在創(chuàng)建類的新對(duì)象時(shí)被自動(dòng)調(diào)用,一般被設(shè)計(jì)成數(shù)據(jù)域變量的初始化動(dòng)作。類中其他方法以函數(shù)的形式來定義,用來描述對(duì)象的行為,是對(duì)象的成員方法。成員方法在需要的時(shí)候必須用適當(dāng)?shù)母袷斤@式調(diào)用。8.4使用類的用戶直接訪問數(shù)據(jù)域是合法的,但并不是一個(gè)好方法,數(shù)據(jù)域可能會(huì)被用戶隨意的賦值從而造成麻煩。所以為了避免這種麻煩,我們不能讓用戶直接訪問數(shù)據(jù)域,要把它們隱藏起來,稱為數(shù)據(jù)域私有化。在類的定義中,把對(duì)象成員的名稱前面加上兩個(gè)連續(xù)的下劃線,既可以把相應(yīng)成員變成私有化成員,將其隱藏起來。8.5正確正確錯(cuò)誤錯(cuò)誤正確正確正確8.6150130PersonStudent

8.8classCube:def__init__(self,lenOfEdge=1):self.__lenOfEdge=lenOfEdgedefsetLenOfEdge(self,lenOfEdge):self.__lenOfEdge=lenOfEdgedefgetLenOfEdge(self):returnself.__lenOfEdgedefgetArea(self):returnself.__lenOfEdge**2*6defgetVolume(self):returnself.__lenOfEdge**3c1=Cube(6)c2=Cube(9)print("邊長為{}的正方體的面積是{:.2f},體積是{:.2f}。".\format(c1.getLenOfEdge(),c1.getArea(),c1.getVolume()))print("邊長為{}的正方體的面積是{:.2f},體積是{:.2f}。".\format(c2.getLenOfEdge(),c2.getArea(),c2.getVolume()))8.8classStock:def__init__(self,name,Id,curPrice,pcPrice):self.__name=nameself.__id=Idself.__curPrice=curPriceself.__pcPrice=pcPricedefgetName(self):returnself.__namedefgetId(self):returnself.__id

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論