程式語言入門經典100例【Python版】
無論學習哪門計算機語言,只要把100例中絕大部分題目都做一遍,就基本掌握該語言的語法了。
【程式1】
題目:有1、2、3、4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?
#Filename:001.py cnt = 0#count the sum of result for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k: print i*100+j*10+k cnt+=1 print cnt
【程式2】
題目:企業發放的獎金根據利潤提成。利潤(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 #Filename:002.py 2 i = int(raw_input('Enter the profit:')) 3 arr = [1000000,600000,400000,200000,100000,0]4 rat = [0.01,0.015,0.03,0.05,0.075,0.1] 5 r = 0 6 for idx in range(0,6): 7 if i>arr[idx]: 8 r+=(i-arr[idx])*rat[idx] 9 print (i-arr[idx])*rat[idx] 10 i=arr[idx] 11 print r
【程式3】
題目:一個整數,它加上100後是一個完全平方數,再加上168又是一個完全平方數,請問該數是多少?
【程式碼有誤哦~~~】
1 #Filename:003.py 2 import math 3 fori in range(2,1000): 4 if (math.sqrt(i+100)*math.sqrt(i+100) == i+100 )and(math.sqrt(i+168)*math.sqrt(i+168) == i+168): 5 print math.sqrt(i+100) 6 print math.sqrt(i+168) 7 break 8 print i
【程式4】
題目:輸入某年某月某日,判斷這一天是這一年的第幾天?
【程式5】
題目:輸入三個整數x,y,z,請把這三個數由小到大輸出。
【程式8】
題目:輸出9*9口訣。
1 for i in range(1,10): 2 for j in range(1,i+1): 3 print i,'*',j,'=',i*j, 4 print ''
【程式11】
題目:古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月
後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?
1 a = 1 2 b = 1 3 for i in range(1,21,2): 4 print '%d %d'%(a,b), 5 a += b 6 b += a
【程式12】
題目:判斷101-200之間有多少個素數,並輸出所有素數。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 from math import sqrt 4 def main(): 5 for i in range(101,201): 6 flag = 1 7 k = int(sqrt(i)) 8 for j in range(2,k+1): 9 if i%j == 0: 10 flag = 0 11 break 12 if flag == 1: 13 print '%5d'%(i), 14 15 if __name__ == "__main__": 16 main()
【程式13】
題目:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 def main(): 4 for i in range(100,1000): 5 a = i%10 6 b = i/100 7 c = (int(i/10))%10 8 if i == a**3+b**3+c**3: 9 print "%5d"%(i), 10 11 if __name__ == "__main__": 12 main()
【程式14】
題目:將一個正整數分解質因數。例如:輸入90,打印出90=2*3*3*5。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 4 def main(): 5 n = int(raw_input('Enter a number:')) 6 print n,'=', 7 while(n!=1): 8 for i in range(2,n+1): 9 if (n%i)==0: 10 n/=i 11 if(n == 1): 12 print '%d'%(i) 13 else: 14 print '%d *'%(i), 15 break 16 17 18 if __name__ == "__main__": 19 main()
【程式15】
題目:利用條件運算子的巢狀來完成此題:學習成績>=90分的同學用A表示,60-89分之間的用B表示,60分以下的用C表示。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 def main(): 4 s = int(raw_input('Enter a number:')) 5 if s>=90: 6 grade = 'A' 7 elif s>=60: 8 grade = 'B' 9 else: 10 grade = 'C' 11 print grade, 12 13 if __name__ == '__main__': 14 main()
【程式17】
題目:輸入一行字元,分別統計出其中英文字母、空格、數字和其它字元的個數。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 #there is no ++ operator in Python 4 import string 5 def main(): 6 s = raw_input('input a string:') 7 letter = 0 8 space = 0 9 digit = 0 10 other = 0 11 for c in s: 12 if c.isalpha(): 13 letter+=1 14 elif c.isspace(): 15 space+=1 16 elif c.isdigit(): 17 digit+=1 18 else: 19 other+=1 20 print 'There are %d letters,%d spaces,%d digits and %d other characters in your string.'%(letter,space,digit,other) 21 22 if __name__ == '__main__': 23 main()
【程式18】
題目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。
1 #!/usr/bin/python 2 #-*- coding:utf-8 -*- 3 def main(): 4 basis = int(raw_input("Input the basis number:")) 5 n = int(raw_input("Input the longest length of number:")) 6 b = basis 7 sum = 0 8 for i in range(0,n): 9 if i==n-1: 10 print "%d "%(basis), 11 else: 12 print "%d +"%(basis), 13 sum+=basis 14 basis = basis*10+b 15 print '= %d'%(sum), 16 17 18 if __name__ == '__main__': 19 main()
【程式19】
題目:一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3.程式設計
找出1000以內的所有完數。
1 from math import sqrt 2 n = int(raw_input('input a number:')) 3 sum = n*-1 4 k = int(sqrt(n)) 5 for i in range(1,k+1): 6 if n%i == 0: 7 sum += n/i 8 sum += i 9 if sum == n: 10 print 'YES' 11 else: 12 print 'NO'
1 ''' 2 【程式20】 3 題目:一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 4 第10次落地時,共經過多少米?第10次反彈多高? 5 ''' 6 s = 100. 7 h = 50.0 8 for i in range(2,11): 9 s += h 10 h /= 2 11 print "the sum length of path:%f"%s 12 print "the last height is:%f"%h
1 ''' 2 【程式21】 3 題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了一個 4 第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以後每天早上都吃了前一天剩下 5 的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 6 ''' 7 n = 1 8 for i in range(9,0,-1): 9 n = (n+1)<<1 10 print n
1 ''' 2 ★ 3 【程式22】 4 題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽籤決定 5 比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請程式設計序找出 6 三隊賽手的名單。 7 ''' 8 for i in range(ord('x'),ord('z') + 1): 9 for j in range(ord('x'),ord('z') + 1): 10 if i != j: 11 for k in range(ord('x'),ord('z') + 1): 12 if (i != k) and (j != k): 13 if (i != ord('x')) and (k != ord('x')) and (k != ord('z')): 14 print 'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k))
1 ''' 2 【程式23】 3 題目:打印出如下圖案(菱形) 4 5 * 6 *** 7 ***** 8 ******* 9 ***** 10 *** 11 * 12 ''' 13 for i in range(1,8,2): 14 print ' '*(4-(i+1)/2)+'*'*i 15 for i in range(5,0,-2): 16 print ' '*(4-(i+1)/2)+'*'*i
1 ''' 2 【程式24】 3 題目:有一分數序列:2/1,3