日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python经典100例(21-40)

發(fā)布時間:2024/7/5 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python经典100例(21-40) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
''' ?【程序21 題目:猴子吃桃問題:猴子第一天摘下若干個桃子,當(dāng)即吃了一半,還不癮,又多吃了一個    第二天早上又將剩下的桃子吃掉一半,又多吃了一個。以后每天早上都吃了前一天剩下的一半零一個。到第10天早上想再吃時,見只剩下一個桃子了。求第一天共摘了多少。 1.程序分析:采取逆向思維的方法,從后往前推斷。 2.程序源代碼: ''' x2 = 1 for day in range(9,0,-1): ??? x1 = (x2 + 1) * 2 ??? x2 = x1 print x1 ? ? ''' 【程序22 題目:兩個乒乓球隊進行比賽,各出三人。甲隊為a,b,c三人,乙隊為x,y,z三人。已抽簽決定比賽名單。有人向隊員打聽比賽的名單。a說他不和x比,c說他不和x,z比,請編程序找出三隊賽手的名單。 1.程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除2sqrt(這個數(shù)),如果能被整除,       則表明此數(shù)不是素數(shù),反之是素數(shù)。        2.程序源代碼: ''' for i in range(ord('x'),ord('z') + 1): ??? for j in range(ord('x'),ord('z') + 1): ??????? if i != j: ??????????? for k in range(ord('x'),ord('z') + 1): ??????????????? if (i != k) and (j != k): ??????????????????? if (i != ord('x')) and (k != ord('x')) and (k != ord('z')): ??????????????????????? print 'order is a -- %s\t b -- %s\tc--%s' % (chr(i),chr(j),chr(k)) ? ? ''' 【程序24 題目:有一分?jǐn)?shù)序列:2/13/25/38/513/821/13...求出這個數(shù)列的前20項之和。 1.程序分析:請抓住分子與分母的變化規(guī)律。 2.程序源代碼: ''' #方法一 a = 2.0 b = 1.0 s = 0 for n in range(1,21): ??? s += a / b ??? t = a ??? a = a + b ??? b = t print s #方法二 s = 0.0 for n in range(1,21): ??? s += a / b ??? b,a = a , a + b print s ? s = 0.0 for n in range(1,21): ??? s += a / b ??? b,a = a , a + b print s #方法三 l = [] for n in range(1,21): ??? b,a = a,a + b ??? l.append(a / b) print reduce(lambda x,y: x + y,l) ? ? ''' 【程序25 題目:求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加變成了累乘。 2.程序源代碼: ''' #方法一 n = 0 s = 0 t = 1 for n in range(1,21): ??? t *= n ??? s += t print '1! + 2! + 3! + ... + 20! = %d' % s ? #方法二 s = 0 l = range(1,21) def op(x): ??? r = 1 ??? for i in range(1,x + 1): ??????? r *= i ??? return r s = sum(map(op,l)) print '1! + 2! + 3! + ... + 20! = %d' % s ? ? ''' 【程序26 題目:利用遞歸方法求5!。 1.程序分析:遞歸公式:fn=fn_1*4! 2.程序源代碼: ''' def fact(j): ??? sum = 0 ??? if j == 0: ??????? sum = 1 ??? else: ??????? sum = j * fact(j - 1) ??? return sum ? for i in range(5): print '%d! = %d' % (i,fact(i)) ? ? '' 【程序27 題目:利用遞歸函數(shù)調(diào)用方式,將所輸入的5個字符,以相反順序打印出來。 1.程序分析: 2.程序源代碼: ''' def palin(n): ??? next = 0 ??? if n <= 1: ??????? next = input() ??????? print ??????? print next ??? else: ??????? next = input() ??????? palin(n - 1) ??????? print next ? ? i = 5 palin(i) print ? ? ''' 【程序28 題目:有5個人坐在一起,問第五個人多少歲?他說比第4個人大2歲。問第4個人歲數(shù),他說比第3個人大2歲。問第三個人,又說比第2人大兩歲。問第2個人,說比第一個人大兩歲。最后 問第一個人,他說是10歲。請問第五個人多大? ? 1.程序分析:利用遞歸的方法,遞歸分為回推和遞推兩個階段。要想知道第五個人歲數(shù),需知道第四人的歲數(shù),依次類推,推到第一人(10歲),再往回推。 ''' def age(n): ??? if n == 1: c = 10 ??? else: c = age(n - 1) + 2 ??? return c print age(5) ? ? ''' 【程序29 題目:給一個不多于5位的正整數(shù),要求:一、求它是幾位數(shù),二、逆序打印出各位數(shù)字。 1. 程序分析:學(xué)會分解出每一位數(shù),如下解釋:(這里是一種簡單的算法,師專數(shù)002班趙鑫提供) 2.程序源代碼: ''' x = int(raw_input("input a number:\n")) a = x / 10000 b = x % 10000 / 1000 c = x % 1000 / 100 d = x % 100 / 10 e = x % 10 ? if a != 0: ??? print "there are 5 ",e,d,c,b,a elif b != 0: ??? print "there are 4 ",d,c,b,a elif c != 0: ??? print "there are 3 ",e,d,c elif d != 0: ??? print "there are 2 ",e,d else: print "there are 1",e ? ? ''' 題目:一個5位數(shù),判斷它是不是回文數(shù)。即12321是回文數(shù),個位與萬位相同,十位與千位相同?!  ?/span> 1.程序分析:同29 2.程序源代碼: ''' x = int(raw_input("input a number:\n")) x = str(x) for i in range(len(x)/2): ??? if x[i] != x[-i - 1]: ??????? print 'this number is not a huiwen' ??????? break print 'this number is a huiwen' ? ? ''' 程序31 題目:請輸入星期幾的第一個字母來判斷一下是星期幾,如果第一個字母一樣,則繼續(xù)    判斷第二個字母。 1.程序分析:用情況語句比較好,如果第一個字母一樣,則判斷用情況語句或if語句判斷第二個字母。 2.程序源代碼: ''' from sys import stdin letter = stdin.read(1) stdin.flush() while letter? != 'Y': ??? if letter == 'S': ??????? print 'please input second letter' ??????? letter = stdin.read(1) ??????? stdin.flush() ??????? if letter == 'a': ??????????? print 'Saturday' ??????? elif letter? == 'u': ??????????? print 'Sunday' ??????? else: ??????????? print 'data error' ??????????? break ??? elif letter == 'F': ??????? print 'Friday' ??????? break ??? elif letter == 'M': ??????? print 'Monday' ??????? #break ??? elif letter == 'T': ??????? print 'please input second letter' ??????? letter = stdin.read(1) ??????? stdin.flush() ??????? if letter? == 'u': ??????????? print 'Tuesday' ??????? elif letter? == 'h': ??????????? print 'Thursday' ??????? else: ??????????? print 'data error' ??????????? break ??? elif letter == 'W': ??????? print 'Wednesday' ??? else: ??????? print 'data error' ??? letter = stdin.read(1) ??? stdin.flush() ? ? ''' 【程序32 題目:按相反的順序輸出列表的值。 1.程序分析:             2.程序源代碼: ? a = ['one', 'two', 'three'] for i in a[::-1]: print i ? list_ = ['a', 'b', 'c', 'd'] list_.reverse() print list_ ? ? ''' 【程序33 題目:按逗號分隔列表?! ?/span> 1.程序分析: 2.程序源代碼: L = [1,2,3,4,5] s1 = ','.join(str(n) for n in L) print s1 ? L = [1, 2, 3, 4, 5] L = repr(L)[1:-1] print L ''' ? ? ''' 【程序34 題目:練習(xí)函數(shù)調(diào)用 1. 程序分析: 2.程序源代碼: ''' def hello_world(): ??? print 'hello world' ? def three_hellos(): ??? for i in range(3): ??????? hello_world() if __name__ == '__main__': ??? three_hellos() ? ? ? ''' 【程序35 題目:文本顏色設(shè)置 1.程序分析: 2.程序源代碼: #include <conio.h> void main(void) { int color; for (color = 1; color < 16; color++)  {  textcolor(color);/*設(shè)置文本顏色*/  cprintf("This is color %d\r\n", color);  } textcolor(128 + 15); cprintf("This is blinking\r\n"); } ''' ? ? ''' 【程序36 題目:求100之內(nèi)的素數(shù)    1.程序分析: 2.程序源代碼: ''' # 輸出指定范圍內(nèi)的素數(shù) ? # 用戶輸入數(shù)據(jù) lower = int(input("輸入?yún)^(qū)間最小值: ")) upper = int(input("輸入?yún)^(qū)間最大值: ")) ? for num in range(lower,upper + 1): ??? # 素數(shù)大于 1 ??? if num > 1: ??????? for i in range(2,num): ??????????? if (num % i) == 0: ??????????????? break ??????? else: ??????????? print(num) ? ? for i in range(2,100): ??? if 0? not in [i%n for n in range(2,i)]: ??????? print i ? ? ''' 【程序37 題目:對10個數(shù)進行排序 1.程序分析:可以利用選擇法,即從后9個比較過程中,選擇一個最小的與第一個元素交換,       下次類推,即用第二個元素與后8個進行比較,并進行交換。        2.程序源代碼: ''' if __name__ == "__main__": ??? N = 10 ??? # input data ??? print 'please input ten num:\n' ??? l = [] ??? for i in range(N): ??????? l.append(int(raw_input('input a number:\n'))) ??? print ??? for i in range(N): ??????? print l[i] ??? print ? ??? # sort ten num ??? for i in range(N - 1): ??????? min = i ??????? for j in range(i + 1,N): ??????????? if l[min] > l[j]:min = j ??????? l[i],l[min] = l[min],l[i] ??? print 'after sorted' ??? for i in range(N): ??????? print l[i] 第二種方法:???????????????? a = [] for i in range(10): ??? a.append(input("entert the num:")) print a ? for i in range(9): ??? for j in range(i+1,10): ??????? if a[i] > a[j]: ??????????? a[i],a[j] = a[j],a[i] print a ? ? ''' 【程序38 題目:求一個3*3矩陣對角線元素之和 1.程序分析:利用雙重for循環(huán)控制輸入二維數(shù)組,再將a[i][i]累加后輸出。 2.程序源代碼: ''' if __name__ == '__main__': ??? a = [] ??? sum = 0.0 ??? for i in range(3): ??????? a.append([]) ??????? for j in range(3): ??????????? a[i].append(float(raw_input("input num:\n"))) ??? for i in range(3): ??????? sum += a[i][i] ??? print sum ??? ? ''' 【程序39 題目:有一個已經(jīng)排好序的數(shù)組?,F(xiàn)輸入一個數(shù),要求按原來的規(guī)律將它插入數(shù)組中。 1. 程序分析:首先判斷此數(shù)是否大于最后一個數(shù),然后再考慮插入中間的數(shù)的情況,插入后      此元素之后的數(shù),依次后移一個位置。 2.程序源代碼: ''' if __name__ == '__main__': ??? # 方法一 ??? a = [1,4,6,9,13,16,19,28,40,100,0] ??? print 'original list is:' ??? for i in range(len(a)): ??????? print a[i] ??? number = int(raw_input("insert a new number:\n")) ??? end = a[9] ??? if number > end: ??????? a[10] = number ??? else: ??????? for i in range(10): ??????????? if a[i] > number: ??????????????? temp1 = a[i] ??????????????? a[i] = number ??????????????? for j in range(i + 1,11): ?????????? ?????????temp2 = a[j] ??????????????????? a[j] = temp1 ??????????????????? temp1 = temp2 ??????????????? break ??? for i in range(11): ??????? print a[i] ??? # 方法二 ??? # insrt another number ??? number = int(raw_input('input a number:\n')) ??? if number > a[len(a) - 1]: ??????? a.append(number) ??? else: ??????? for i in range(len(a)): ??????????? if a[i] > number: ??????????????? a.insert(i,number) ??? print a ??????????? ? ? ''' 【程序40 題目:將一個數(shù)組逆序輸出。 1.程序分析:用第一個與最后一個交換。 2.程序源代碼: ''' if __name__ == '__main__': ??? a = [9,6,5,4,1] ??? N = len(a) ??? print a ??? for i in range(len(a) / 2): ??????? a[i],a[N - i - 1] = a[N - i - 1],a[i] ??? print a ? ?

總結(jié)

以上是生活随笔為你收集整理的python经典100例(21-40)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。