版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、8-1.條件語句。請看下邊的代碼:# statement Aif x 0:# statement Bpasselif x 0:# statement Cpasselse:# statement Dpass# statement E(a)如果x0,上面哪個語句將被執(zhí)行?答案:(a)C(b)D(c)B82. 循環(huán). 編寫一個程序, 讓用戶輸入三個數(shù)字: (f)rom, (t)o, 和 (i)ncrement . 以 i為步長, 從 f 計數(shù)到 t , 包括 f 和 t . 例如, 如果輸入的是 f = 2, t = 26, i = 4 , 程序?qū)⑤敵?2, 6, 10, 14, 18, 22, 2
2、6.答案:sm = raw_input(Enter three numbers: )a,b,c = sm.split( )f = int(a)t = int(b)i = int(c)while f 1:if num1 % count = 0:return Falsecount -= 1else:return Truenum1 = int(raw_input(Enter a number: )print isprime(num1)85. 約數(shù).。完成一個名為 getfactors() 的函數(shù)。它接受一個整數(shù)作為參數(shù), 返回它所有約數(shù)的列表, 包括 1 和它本身。答案:def getfactors
3、(num):L = for i in range(1,num+1):if num % i = 0:L.append(i)return Lnum = int(raw_input(Enter a number: )print getfactors(num)方法二:def getfactors(num): factors= count=num/2 while count=1: if num%count=0: factors.append(count) count-=1 factors.append(num) return factorsprint getfactors(20)86. 素因子分解。以剛
4、才練習(xí)中的 isprime() 和 getfactors() 函數(shù)為基礎(chǔ)編寫一個函數(shù), 它接受一個整數(shù)作為參數(shù), 返回該整數(shù)所有素數(shù)因子的列表. 這個過程叫做求素因子分解, 它輸出的所有因子之積應(yīng)該是原來的數(shù)字. 注意列表里可能有重復(fù)的元素. 例如輸入 20 , 返回結(jié)果應(yīng)該是 2, 2, 5 。答案:def isprime(num1):count = num1 / 2while count 1:if num1 % count = 0:return Falsecount -= 1else:return Truedef prime_factors(num):L = if isprime(num)
5、:L = 1,numelse:count = num / 2prime = 2while prime 1:if num1 % count = 0:return Falsecount -= 1else:return Truedef getfactors(num):factors = count = num / 2while count = 1:if num % count = 0:factors.append(count)count -= 1return factorsdef isperfect(num):L = if isprime(num):return 0else:if sum(getfa
6、ctors(num) = num:return 1else:return 0num = int(raw_input(Enter a number: )print isperfect(num)88. 階乘。一個數(shù)的階乘被定義為從 1 到該數(shù)字所有數(shù)字的乘積。N 的階乘簡寫為 N! 。寫一個函數(shù),指定N, 返回 N! 的值。def factorial(num):if num = 0 or num = 1:return 1else:product = 1for i in range(1,num + 1):product *= ireturn productnum = int(raw_input(En
7、ter a number: )print factorial(num)89. 斐波那契數(shù)列。斐波那契數(shù)列形如1,1,2,3,5,8,13,21,等等。也就是說,下一個值是序列中前兩個值之和。寫一個函數(shù),給定N,返回第N個斐波那契數(shù)字。例如,第一個斐波那契數(shù)字是1,第6個是8。答案:def fibonacci(num):if num = 0:return 0if num = 1:return 1else:total = fibonacci(num-1) + fibonacci(num-2)return totalfor i in range(12):print fibonacci(i)8-10.
8、文本處理。統(tǒng)計一句話中的元音,輔音及單詞(以空格分割)的個數(shù)。忽略元音和輔音的特殊情況,如h,y,qu等。附加題:便攜處理這些特殊情況的代碼。答案:來自def counteng(string):words = len(string.split()string = string.upper()yuans = fus = 0for i in string:n = ord(i)if n in xrange(65,91):if n in 65,69,73,79,85:yuans += 1else:fus += 1return yuans,fus,wordsstring = raw_input(Ente
9、r a string: )print counteng(string)811. 文本處理。要求輸入一個姓名列表,輸入格式是“Last Name, First Name,” 即 姓,逗號, 名. 編寫程序處理輸入, 如果用戶輸入錯誤, 比如“First Name Last Name,” , 請糾正這些錯誤, 并通知用戶. 同時你還需要記錄輸入錯誤次數(shù). 當(dāng)用戶輸入結(jié)束后, 給列表排序, 然后以“姓 , 名 的順序顯示.輸入輸出示例(你不需要完全按照這里里例子完成):% nametrack.pyEnter total number of names: 5Please enter name 0: S
10、mith, JoePlease enter name 1: Mary Wong Wrong format. should be Last, First. You have done this 1 time(s) already. Fixing input. Please enter name 2: Hamilton,GeraldPlease enter name 3: Royce, LindaPlease enter name 4: Winston Salem Wrong format. should be Last, First. You have done this 2 time(s) a
11、lready. Fixing input.The sorted list (by last name) is:Hamilton, GeraldRoyce, LindaSalem, WinstonSmith, JoeWong, Mary答案:nums = int(raw_input(Enter total number of names: )print Enter name (lastname,firstname)i = 1error = 0names = while i =32 and i =32 and i = 126:print %dt%07dtt%ot%xtt%s %(i,int(bin
12、(i)2:),i,i,chr(i)else:print %dt%07dt%ot%x %(i,int(bin(i)2:),i,i)8-13. 程序執(zhí)行性能.在8.6.2節(jié)里,我們介紹了兩種基本的迭代序列方法:1)通過序列項,以及 2)通過序列索引遍歷.該小節(jié)的末尾我們指出后一種方法在序列很長的時候性能不佳(在我的系統(tǒng)下,性能差了將近兩倍83%)你認為它的原因是什么?答案:通過序列索引遍歷,首先創(chuàng)建一個索引列表,然后遍歷索引,再然后列表通過索引取值,多了好幾個步驟答案取自:測試代碼:import timeitnameList = Walter, Nicole, Steven, Henry, Wal
13、ter, Nicole, Steven, HenrynameList *= 1000000def inter_direct(): for eachName in nameList: #print eachName, Lim i = eachNamedef inter_index(): for nameIndex in range(len(nameList): #print nameListnameIndex, Lim #使用print的結(jié)果不準(zhǔn)的 i = nameListnameIndexif _name_ = _main_: t_index = timeit.Timer(inter_index(), from _main_ import inter_index) t_direct = timeit.Timer(inter_direct(), from _main_ import inter_direct) print t_direct.timeit(10) print t_index.ti
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 籃球行進間體前變向運球 教案體育四年級下冊
- 魯畫報社版高二心理健康 12.仰望星空腳踏實地 教案
- 教科版(2017秋)四年級上冊科學(xué)2.4一天的食物 教案
- 浙教版信息科技五上 第6課 順序結(jié)構(gòu) 教學(xué)設(shè)計
- 《我的新家我做主》教案
- 蘇教版五年級勞動3.家用電器的規(guī)范使用(教案)
- 人音版 音樂五年級上冊冬雪 第二課時(教案)
- 初中體育與健康八年級 第十一章 民族民間體育-三人板鞋 教案
- 化學(xué)必修二魯科版第二章 第一節(jié)“化學(xué)鍵與化學(xué)反應(yīng)”說課教案化學(xué)
- 安徽省定遠縣三中2025年高三化學(xué)試題全國三卷模擬卷2含解析
- 口袋妖怪(寵物小精靈)1至649圖鑒
- DB37∕T 5043-2021 山東省綠色建筑設(shè)計標(biāo)準(zhǔn)
- 石油化工裝置應(yīng)急廣播綜合系統(tǒng)改造施工技術(shù)及組織方案
- 《正常人體結(jié)構(gòu)》課件NO4
- 武漢市干部掛職鍛煉
- 人教版數(shù)學(xué)七年級上冊課課練:1.5.3近似數(shù)(word、含答案)
- Q∕GDW 11612.2-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第2部分:技術(shù)要求
- 《商業(yè)倫理與企業(yè)責(zé)任》課件第4章企業(yè)內(nèi)部管理道德規(guī)范
- 中學(xué)清廉學(xué)校建設(shè)清單
- 綠色建筑案例墨爾本市政府2號辦公樓PPT通用課件
- 四種客戶類型老鷹型、孔雀型、鴿子型、貓頭鷹型資料清晰歸納版
評論
0/150
提交評論