菜鳥教程-練習實例答案I
題目:有四個數字:1、2、3、4,能組成多少個互不相同且無重復數字的三位數?各是多少?
1 #coding=utf-8 2 3 from itertools import permutations 4 5 for i in permutations(range(1,5),3): 6 k = ‘‘ 7 for j in i: 8 k = k + str(j) 9 print int(k)
題目:企業發放的獎金根據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高於10萬元,低於20萬元時,低於10萬元的部分按10%提成,高於10萬元的部分,可提成7.5%;20萬到40萬之間時,高於20萬元的部分,可提成5%;40萬到60萬之間時高於40萬元的部分,可提成3%;60萬到100萬之間時,高於60萬元的部分,可提成1.5%,高於100萬元時,超過100萬元的部分按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
1 #coding=utf-8 2 3 i = int(raw_input(u‘請輸入利潤:‘)) 4 earn = [1000000,600000,400000,200000,100000,0] 5 rat = [0.01,0.015,0.03,0.05,0.075,0.1] 6 bonus = 0 7 for m in range(len(earn)): 8 if i > earn[m]: 9 bonus += (i-earn[m])*rat[m] 10 i = earn[m] 11 print bonusView Code
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
1 #coding=utf-8 2 ‘‘‘ 3 x + 100 = n2, x + 100 + 168 = m2 4 m + n = i, m - n = j 5 m = (i+j)/2,正整數 6 n = (i-j)/2,正整數 7 ‘‘‘ 8 for i in range(1,85): 9 if 168 % i == 0: 10 j = 168 / i 11 if (i+j) % 2 == 0 and (i-j) % 2 == 0 and i > j: 12 n = (i-j) / 2 13 x = n * n -100 14View Codeprint x
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
1 #coding=utf-8 2 3 import time 4 5 time_input = raw_input(u‘請輸入日期,格式XXXX-XX-XX:‘) 6 d = time.strptime(time_input,‘%Y-%m-%d‘).tm_yday 7 print u‘這一天是這一年的第%s天‘ %dView Code
題目:輸出 9*9 乘法口訣表。
1 #coding=utf-8 2 3 for i in range(1,10): 4 for j in range(1,i+1): 5 print ‘%s*%s=%s ‘ %(i,j,i*j), 6 print ‘‘View Code
題目:判斷101-200之間有多少個素數,並輸出所有素數。
1 #coding=utf-8 2 3 import math 4 l = [] 5 for i in range(101,201): 6 for j in range(2,int(math.sqrt(i)+1)): 7 if i % j == 0: 8 break 9 else: 10 l.append(i) #for循環結束以後沒有break的i加入到列表l中 11 print l 12 print len(l)View Code
題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
1 #coding=utf-8 2 3 dig_input = int(raw_input(u‘輸入一個數字:‘)) 4 l = [] 5 while dig_input != 1: 6 for i in range(2,dig_input+1): 7 if dig_input % i == 0: 8 l.append(i) 9 dig_input = dig_input / i 10 break 11 print lView Code
題目:利用條件運算符的嵌套來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
1 #coding=utf-8 2 3 score = int(raw_input(u‘輸入分數:‘)) 4 print ‘A‘ if score > 89 else (‘B‘ if score > 59 else ‘C‘)View Code
題目:輸入一行字符,分別統計出其中英文字母、空格、數字和其它字符的個數。
1 #coding=utf-8 2 3 import re,string 4 5 str_input = raw_input(u‘輸入一個字符串:‘) 6 r1 = re.compile(‘[a-zA-Z]‘) 7 r2 = re.compile(‘[0-9]‘) 8 total_letters = len(re.findall(r1,str_input)) 9 total_digits = len(re.findall(r2,str_input)) 10 total_whitespace = len(re.findall(‘ ‘,str_input)) 11 total_others = len(str_input) - total_letters - total_digits - total_whitespace 12 print u‘英文字母的個數為: %d‘ %total_letters 13 print u‘數字的個數為: %d‘ %total_digits 14 print u‘空格的個數為: %d‘ %total_whitespace 15 print u‘其他字符的個數為: %d‘ %total_othersView Code
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加由鍵盤控制。
1 #coding=utf-8 2 3 m = raw_input(u‘輸入需要計算數字:‘) 4 n = int(raw_input(u‘輸入項數:‘)) 5 l = [] 6 for i in range(1,n+1): 7 l.append(int(m*i)) 8 print l 9 print sum(l)View Code
題目:一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程找出1000以內的所有完數。
1 #coding=utf-8 2 3 for i in range(2,1001): 4 total = 1 5 for j in range(2,i): 6 if i % j == 0: 7 total += j 8 if i == total: 9 print iView Code
題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在第10次落地時,共經過多少米?第10次反彈多高?
1 #coding=utf-8 2 3 length = 100.0 4 up_height = 100.0 5 for i in range(2,12): 6 up_height /= 2 7 length += up_height * 2 8 print ‘第%d 次反彈高度為%s米,第%d 次落地共經過%s米‘ %(i-1,up_height,i,length)View Code
題目:猴子吃桃問題:猴子第一天摘下若幹個桃子,當即吃了一半,還不癮,又多吃了一個第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。
1 #coding=utf-8 2 3 def peach(n): 4 if n == 1: 5 return 1 6 else: 7 return (peach(n-1) + 1) * 2 8 print peach(10)View Code
菜鳥教程-練習實例答案I