版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
?PAGE7?附錄各章習題參考答案附錄各章習題參考答案第1章習題參考答案一、(1)對 (2)錯 (3)對 (4)錯 (5)錯二.、1、對象2、跨平臺(可移植)3、import4、pip5、.py三、選擇題1.B 2C 3C 4B5C四、編程題繪制多個起點相同但大小不同的五角星importturtleastdefdraw_fiveStars(leng): count=1 whilecount<=5: t.forward(leng) #向前走50 t.right(144) #向右轉(zhuǎn)144度 count+=1 leng+=10 #設(shè)置星星大小 ifleng<=100: draw_fiveStars(leng)defmain(): t.penup() t.backward(100) t.pendown() t.pensize(2) t.pencolor('red') segment=50 draw_fiveStars(segment) t.exitonclick()if__name__=='__main__': main()整數(shù)求和。輸入整數(shù)n,計算1+2+3+……+n之和。a=int(input("請輸入一個整數(shù):"))s=0foriinrange(a+1):s+=iprint("1~%d的和為:%d"%(a,s))整數(shù)排序。輸入三個整數(shù),把這三個數(shù)由小到大輸出。a=[]foriinrange(3): x=int(input('請輸入整數(shù):')) a.append(x)a.sort()foriina:print(i,end="")打印九九乘法表。foriinrange(1,10):forjinrange(1,i+1):print("%d×%d=%-2d"%(j,i,i*j),end='')print('')編寫一個Python程序,打印出“Hello,World!”的字符串。print(“Hello,World!”)第2章習題參考答案一、填空題1# 2type() 3id() 4 3+4j或者3+4J 5// 6| 7A<B 8del9、291 10 83 11 123 12 5 13 3 14 1:2:3 15 216、len 17max() 18min() 19sum() 209 217 222 23 9 2412 25 1626‘A’ 27‘A’ 28 5.0 29True 30 True二、判斷題1 錯 2 錯 3 對 4 錯 5對 6錯 7對 8 對 9 對10錯11 錯 12 對 13 對 14 對 15對 16錯 17對 18對 19對20 錯 21錯 22對 23對 24對 25對 26對 27錯三、選擇題1 D 2 B 3 B 4 D 5 C 6 D 7 B 8 C 9 A10 B 11 B 12 B 13 D 14 D 15 B 16 B 17 D 18 D19 D 20 B 21 B 22 C 23 A 24 C 25 D四、編程題1age last {age} 2 00000377編寫程序,輸入一個字符串,輸出字符串中最長的單詞s=input()words=s.split()t=max(words,key=len)print(t)4.編寫程序,輸入一個字符串,輸出反轉(zhuǎn)后的字符串。s=input()s1=s[::-1]print(s1)5.輸入一個字符串,輸出某個字符在字符串中出現(xiàn)的次數(shù)。s=input("請輸入字符串:")c=input("請輸入統(tǒng)計的字符:")n=s.count(c)print(n)習題參考答案一、填空題1、continuebreak2、12 3、15 4、a=2b=1c=15、26、程序模塊7、68、1二、選擇題D C D A B A C C C A三、編程題1.編寫程序,接收用戶輸入的一串數(shù)據(jù),刪除數(shù)據(jù)里面包含的數(shù)字后輸出。#接收用戶輸入user_input=input("請輸入一串數(shù)據(jù):")#初始化一個空字符串來保存結(jié)果cleaned_data=""#遍歷輸入字符串中的每個字符forcharinuser_input:#如果字符不是數(shù)字,則添加到結(jié)果字符串中ifnotchar.isdigit():cleaned_data+=char#輸出處理后的數(shù)據(jù)print("刪除數(shù)字后的數(shù)據(jù):",cleaned_data)2.編寫程序,用戶輸入4位整數(shù)作為年份,判斷其是否為閏年。如果年份能被400整除,則為閏年;如果年份能被4整除但不能被100整除也為閏年。#接收用戶輸入的年份year=int(input("請輸入一個4位整數(shù)年份:"))#判斷是否為閏年的邏輯ifyear%400==0:print(f"{year}年是閏年。")elifyear%4==0andyear%100!=0:print(f"{year}年是閏年。")else:print(f"{year}年不是閏年。")3.如果一個四位數(shù),即位于1000到9999之間(包括1000和9999),它的每一位數(shù)字(千位、百位、十位、個位)的四次方之和等于這個數(shù)本身。這些數(shù)字因其獨特的性質(zhì)而被稱為四位水仙花數(shù),也叫阿姆斯特朗數(shù),請編寫程序找出所有的阿姆斯特朗數(shù)。#查找所有的四位阿姆斯特朗數(shù)fornuminrange(1000,10000):#四位數(shù)的范圍是1000到9999#將數(shù)字轉(zhuǎn)換為字符串,以便可以訪問每個位上的數(shù)字str_num=str(num)#獲取數(shù)字的位數(shù)n=len(str_num)#初始化sum為0sum_of_powers=0#遍歷每個位上的數(shù)字fordigitinstr_num:#將字符串轉(zhuǎn)換為整數(shù)并計算其n次冪sum_of_powers+=int(digit)**n#如果各位數(shù)字的n次冪之和等于原數(shù),則返回Trueifsum_of_powers==num:print(num)4百錢買百雞問題:一只公雞值五錢,一只母雞值三錢,三只小雞值一錢,現(xiàn)在要用百錢買百雞,請問公雞、母雞、小雞各多少只?編程解決以上問題。forxinrange(0,21):#公雞最多20只(因為5錢一只,超過20只則總價超過100錢)foryinrange(0,34):#母雞最多33只(因為3錢一只,超過33只則總價超過100錢)#根據(jù)公雞和母雞的數(shù)量計算小雞的數(shù)量z=100-x-y#檢查小雞的數(shù)量是否能被3整除(因為3只小雞值1錢)ifz%3==0:#計算總錢數(shù)total_money=5*x+3*y+z//3#檢查是否滿足題目條件iftotal_money==100:#如果滿足條件,則輸出print("公雞:{}只,母雞:{}只,小雞:{}只".format(x,y,z))5、只能由1和它本身整除的整數(shù)被稱為素數(shù);若一個素數(shù)從左向右讀與從右向左讀是是相同的數(shù),則該素數(shù)為回文素數(shù)。編程求解2~10000內(nèi)的所有回文素數(shù)。defis_prime(n):"""判斷一個數(shù)是否是素數(shù)"""ifn<2:returnFalseforiinrange(2,int(n**0.5)+1):ifn%i==0:returnFalsereturnTruedefis_palindrome(n):"""判斷一個數(shù)是否是回文數(shù)"""returnstr(n)==str(n)[::-1]#遍歷2到10000內(nèi)的所有數(shù)fornuminrange(2,10001):ifis_prime(num)andis_palindrome(num):print(num)6.身體質(zhì)量指數(shù),是BMI(BodyMassIndex)指數(shù),簡稱體質(zhì)指數(shù),是國際上常用的衡量人體胖瘦程度以及是否健康的一個標準,由19世紀中期的比利時通才朗伯·阿道夫·雅克·凱特勒最先提出。計算公式為:BMI=體重÷身高2。(體重單位:千克;身高單位:米。)。當BMI數(shù)值低于18.5時,體重偏瘦;當BMI數(shù)值大于等于18.5小于24.9時,體重正常;當BMI數(shù)值大于24.9時,體重過胖。體重偏瘦和體重過胖都屬于異常結(jié)果。編寫程序,輸入體重(公斤)和身高(米),利用公式計算BMI,并將結(jié)果輸出(體重正常、偏瘦和過胖)。#獲取用戶輸入weight=float(input("請輸入您的體重(公斤):"))height=float(input("請輸入您的身高(米):"))#計算BMIbmi=weight/(height**2)ifbmi<18.5:print("您的BMI值是:{:.2f}".format(bmi))print("您的體重偏瘦")elif18.5<=bmi<24.9:print("您的BMI值是:{:.2f}".format(bmi))print("您的體重正常")else:print("您的BMI值是:{:.2f}".format(bmi))print("您的體重偏胖")7.已知企業(yè)對銷售人員的獎勵措施如下:底薪為3000元,獎金根據(jù)銷售額提成,比例如下:(1)當銷售額<=50000時,沒有提成;(2)當50000<銷售額<=100000時,提成0.8%;(3)當100000<銷售額<=200000時,提成1.2%;(4)當銷售額>20000時,提成1.8%。要求編寫程序,通過輸入員工的銷售額,計算并輸出應(yīng)發(fā)工資。sales=float(input("輸入銷售額:"))base=3000rate=0ifsales<=50000:rate=0elif50000<sales<=100000:rate=0.008elif100000<sales<=200000:rate=0.012else:rate=0.18bonus=sales*ratesalary=base+bonusprint("應(yīng)發(fā)工資為:{:.2f}元".format(salary))8.編寫程序,實現(xiàn)分段函數(shù)計算,如下表所示。xyx<=10010<x<=30x30<x<=503x-550<x<=1004x2-3x+10100<=xx3x=float(input("輸入x:"))ifx<=10:y=0elif10<x<=30:y=xelif30<sales<=50:y=3*x-5elif50<x<=100:y=4*x**2-3*x+10else:y=x**3print(y)習題參考答案一、填空題函數(shù)。軟件復用。def函數(shù)名。遞歸函數(shù)。pass。全局外。二、判斷題使用函數(shù)可以提高程序代碼的復用性。(對)函數(shù)在定義后會立刻執(zhí)行。(錯)變量在程序的任意位置都可以被訪問。(錯)調(diào)用函數(shù)也就是執(zhí)行函數(shù)。(對)通過return語句,可以返回多個值。(對)lambda表達式,又稱匿名函數(shù),常用來表示內(nèi)部僅包含一行表達式的函數(shù)。(對)通過調(diào)用Python的help()內(nèi)置函數(shù)或者__doc__屬性,可以查看某個函數(shù)的使用說明文檔。(對)三、選擇題下列關(guān)于函數(shù)的說法中,描述錯誤的是(C)。函數(shù)可以減少重復的代碼,使得程序更加模塊化在不同的函數(shù)中可以使用相同名字的變量調(diào)用函數(shù)時,實參的傳遞順序必須與形參的順序相同匿名函數(shù)通常只包含一行代碼,并且沒有函數(shù)名Python語言使用(B)關(guān)鍵字定義一個匿名函數(shù)。anonymousB.lambda C.class D.def Python自定義一個函數(shù)使用(D)關(guān)鍵字。A.anonymousB.lambda C.class D.def閱讀下面的代碼:a=20defadd(b):globalaa=100returna+bprint(add(30))運行代碼,輸出結(jié)果為(B)。A50 B130 C120 D 30閱讀下面的代碼:a=20defadd(b):globalaa=100returna+bprint(a,end="")add(30)print(a)運行代碼,輸出結(jié)果為(C)。A100100 B30100 C20100 D 2020閱讀下面的代碼:a=20defadd(b):a=100returna+bprint(a,end="")add(30)print(a)運行代碼,輸出結(jié)果為(D)。A100100 B30100 C20100 D 2020請閱讀下面的代碼:deffun(n1,n2,*args):s=sum(args)print(s)fun(1,2,3,4,5)運行代碼,輸出結(jié)果為(B)。A15 B12 C3 D 6閱讀以下程序:x=20deffunc():print(x)x=10func()程序執(zhí)行的結(jié)果為(A)。程序異常B、20 C、10 D、30請閱讀下面的代碼:a=int(input())b=int(input())c=input()ifc=='+':print(a+b)elifc=='-':print(a-b)elifc=='*':print(a*b)elifc=='/':print(a/b)else:print("輸入錯誤,請重試")當程序運行后,小新依次輸入86*程序輸出結(jié)果應(yīng)為(C)A.18 B.11 C.48 D.4哪個是Python中的匿名函數(shù)定義?(B)A.defmy_function():returnTrueB.lambdax:x*x*xC.classMyLambda:D.x=x**2在Python中,以下哪個表達式正確地使用了一個匿名函數(shù)來計算兩個數(shù)的和?(A)A.sum=lambdax,y:x+yB.sum=lambda:x+yC.sum(x,y)=lambda:x+yD.sum=def(x,y):returnx+y在以下代碼中,result的值是什么?(B)result=map(lambdax:x*2,[1,2,3,4])print(list(result))A.[1,2,3,4]B.[2,4,6,8]C.[0,0,0,0]D.錯誤,因為map函數(shù)不支持匿名函數(shù)哪個語句不能定義匿名函數(shù)?(D)A.f=lambdax:x**2B.g=lambdax,y:x+yC.h=lambda:print("Hello,World!")D.i=def(x):returnx*x在以下代碼中,filter函數(shù)將返回什么?(B)even_numbers=filter(lambdax:x%2==0,[1,2,3,4,5,6])print(list(even_numbers))A.[1,3,5]B.[2,4,6]C.[0,2,4,6]D.錯誤,因為filter函數(shù)不支持匿名函數(shù)四、簡答題簡述函數(shù)的定義和代碼復用。答:定義函數(shù)需要用def關(guān)鍵字實現(xiàn),具體的語法格式如下:def函數(shù)名(參數(shù)列表): ‘’’文檔字符串’’’[return[返回值]]函數(shù)的定義包括函數(shù)頭和函數(shù)體兩部分,數(shù)頭以關(guān)鍵字def開始,后跟一個空格和函數(shù)名,接著是一對括號,括號內(nèi)可列出函數(shù)的參數(shù),多個參數(shù)用逗號間隔,括號之后是一個冒號,函數(shù)體由多條語句構(gòu)成,與函數(shù)頭維持一個層級的縮進,函數(shù)頭和函數(shù)體之間可以加入三重引號界定的字符串作為注釋,即文檔字符串,用于簡述函數(shù)的功能。 軟件復用是指在開發(fā)新的軟件系統(tǒng)時,對已有的軟件或軟件模塊重新使用。這里的“已有的軟件”可以是已經(jīng)存在的軟件,也可以是專門設(shè)計的可復用組件。軟件復用的主要目的是提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率,同時降低開發(fā)成本。簡述pass語句的作用。 pass語句主要是作為一個空語句,用于保持程序結(jié)構(gòu)的完整性。其作用的具體包括占位符,pass語句在Python中不執(zhí)行任何操作,它主要用于在需要語法上完整的語句塊,但暫時不需要執(zhí)行任何實際代碼的情況下作為占位符。簡述局部變量和全局變量的區(qū)別。變量按其作用域的不同,可劃分為局部變量和全局變量。在函數(shù)體或局部范圍內(nèi)聲明的變量稱為局部變量,函數(shù)內(nèi)部定義的變量為局部變量(localvariable),其只在函數(shù)內(nèi)起作用,函數(shù)執(zhí)行結(jié)束后,會被自動刪除,函數(shù)外部定義的變量為全局變量(globalvariable),函數(shù)內(nèi)部可以訪問全局變量,函數(shù)調(diào)用結(jié)束后,全局變量仍存在。簡述模塊和包的含義。 Python模塊是一個包含Python定義和語句的文件,文件名以.py為擴展名。模塊可以定義函數(shù)、類、變量等,并包含可執(zhí)行的代碼。使用模塊的主要目的是組織代碼和提供功能。通過將相關(guān)的函數(shù)、類和變量封裝在模塊中,可以提高代碼的可讀性和可維護性。模塊也可以避免函數(shù)名和變量名發(fā)生沖突。 將一個包含Python代碼文件的目錄(文件夾)稱為包(package),相應(yīng)的導入即為包導入,要使用包導入,只需在import語句中列出目錄路徑,不同層次間以點號間隔。 簡述導入模塊的四種方法。模塊導入的語法格式:(1)導入模塊:import模塊名[AS標識符]#導入模塊(或同時取別名)(2)導入模塊中所有項目(函數(shù)、類或變量):from模塊名import*(3)導入模塊中指定項目:from模塊名import項目名[AS標識符](4)導入指定包模塊中指定項目:from包名.模塊名import項目名[AS標識符]五、編程題編寫函數(shù),計算1~1000中奇數(shù)之和。defsum_of_odds():returnsum(range(1,1001,2))print(sum_of_odds())編寫函數(shù),計算1*2*3*……*20也就是20!的乘積。deffactorial(n):ifn==0:return1returnn*factorial(n-1)print(factorial(20))編寫函數(shù),判斷用戶輸入的整數(shù)是否為回文數(shù)。回文數(shù)是一個正向和逆向都相同的整數(shù),如123454321、9889。defis_palindrome(n):returnstr(n)==str(n)[::-1]n=eval(input("請輸入數(shù):"))ifis_palindrome(n):print(n,"是回文數(shù)")else:print(n,"不是回文數(shù)")編寫函數(shù),判斷用戶輸入的三個數(shù)字是否能構(gòu)成三角形的三條邊。defcan_form_triangle(a,b,c):returna+b>canda+c>bandb+c>aprint(can_form_triangle(3,4,5))#輸出:Trueprint(can_form_triangle(1,2,5))#輸出:False編寫函數(shù),求兩個正整數(shù)的最小公倍數(shù)。defgcd(a,b):whileb!=0:a,b=b,a%breturnadeflcm(a,b):returnabs(a*b)//gcd(a,b)print(lcm(12,15))#輸出:60編寫函數(shù),計算傳入的字符串中數(shù)字、字母、空格和其它字符的個數(shù)。defcount_chars(s):digits=0letters=0spaces=0others=0forcharins:ifchar.isdigit():digits+=1elifchar.isalpha():letters+=1elifchar.isspace():spaces+=1else:others+=1returndigits,letters,spaces,othersprint(count_chars("Hello123World!"))#輸出:(3,9,1,1)古代有一個梵塔,塔內(nèi)有A、B、C三個基座,A座上有60個盤子,盤子大小不等,大的在下,小的在上。有人想把這60個盤子從A座移到C座,但每次只允許移動一個盤子,并且在移動的過程中,3個基座上的盤子始終保持大盤在下,小盤在上。在移動過程中盤子可以放在任何一個基座上,不允許放在別處。編寫函數(shù),根據(jù)用戶輸入盤子的個數(shù),顯示移動的過程。defhanoi(n,A,B,C):#將n個盤子從A借助B移動到Cifn>0:#將n-1個盤子從A借助C移動到Bhanoi(n-1,A,C,B)#將第n個盤子從A移動到Cprint('Movedisk{n}from{A}to{C}'.format(n=n,A=A,C=C))#將n-1個盤子從B移動到Chanoi(n-1,B,A,C)#調(diào)用hanoi函數(shù),初始時60個盤子在A上,目標移到C,B作為輔助hanoi(60,'A','B','C')輸出1~100以內(nèi)的所有素數(shù)。defis_prime(n):ifn<2:returnFalseforiinrange(2,int(n**0.5)+1):ifn%i==0:returnFalsereturnTruedefprint_primes_up_to(n):foriinrange(2,n+1):ifis_prime(i):print(i)print_primes_up_to(100)編寫函數(shù),判斷一個整數(shù)是否為回文素數(shù),并編寫主程序調(diào)用該函數(shù)。defis_prime(n):ifn<2:returnFalseforiinrange(2,int(n**0.5)+1):ifn%i==0:returnFalsereturnTruedefis_palindrome(n):returnstr(n)==str(n)[::-1]defis_palindrome_prime(n):returnis_prime(n)andis_palindrome(n)#主程序調(diào)用函數(shù)defmain():num=int(input("請輸入一個整數(shù):"))ifis_palindrome_prime(num):print("%d是回文素數(shù)"%num)else:print("%d不是回文素數(shù)"%num)#調(diào)用主程序if__name__=="__main__":main()編寫函數(shù),接收一個字符串,分別統(tǒng)計大寫字母、小寫字母、數(shù)字、其他字符的個數(shù),并以元組的形式返回結(jié)果。defcount_chars_in_string(s):uppercase=0lowercase=0digits=0others=0forcharins:ifchar.isupper():uppercase+=1elifchar.islower():lowercase+=1elifchar.isdigit():digits+=1else:others+=1returnuppercase,lowercase,digits,othersresult=count_chars_in_string("Hello123World!")print(result)局部變量會隱藏同名的全局變量嗎?請編寫程序代碼進行驗證。局部變量會隱藏同名的全局變量,以下是驗證代碼:x=10#全局變量deftest_global_local():x=5#局部變量print(x)#輸出局部變量的值test_global_local()#輸出5print(x)#輸出全局變量的值,即10編寫函數(shù),模擬內(nèi)部函數(shù)max()的功能。defmy_max(*args):ifnotargs:returnNonemax_value=args[0]fornuminargs:ifnum>max_value:max_value=numreturnmax_valueprint(my_max(1,3,5,2,4))#輸出5編寫函數(shù),模擬內(nèi)部函數(shù)sor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年輸送機械合作協(xié)議書
- 2025年通訊檢測儀器合作協(xié)議書
- 2025年代理買賣合同簡單版(三篇)
- 2025年買樓定金合同(2篇)
- 2025年產(chǎn)品銷售的協(xié)議(2篇)
- 2025年個人授權(quán)的合同委托(2篇)
- 2025年中班幼兒習慣培養(yǎng)總結(jié)模版(二篇)
- 2025年交通事故合同糾紛案例分析(2篇)
- 2025年二年級下冊班主任班級工作總結(jié)(4篇)
- 2025年人二手車買賣合同(2篇)
- 鮮切水果行業(yè)分析
- 《中國探月工程》課件
- 義務(wù)教育物理課程標準(2022年版)測試題文本版(附答案)
- 第7章-無人機法律法規(guī)
- 藥劑科基本藥物處方用藥狀況點評工作表
- 初中音樂聽課筆記20篇
- 央國企信創(chuàng)化與數(shù)字化轉(zhuǎn)型規(guī)劃實施
- 拆遷征收代理服務(wù)投標方案
- 完形療法概述
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗收評定標準
- 商標基礎(chǔ)知識課件
評論
0/150
提交評論