(完整版)Python100個小例子_第1頁
(完整版)Python100個小例子_第2頁
(完整版)Python100個小例子_第3頁
(完整版)Python100個小例子_第4頁
(完整版)Python100個小例子_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、一、Python 練習(xí)實例 1 題目:有四個數(shù)字: 1、2、3、4,能組成多少個互不相同且無重復(fù)數(shù)字的三位數(shù)? 各是多少? 程序分析:可填在百位、十位、個位的數(shù)字都是1、 2、 3、4。組成所有的排列 后再去 掉不滿足條件的排列。 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 5): for j in range(1, 5): for k in range(1, 5): if (i != k) and (i != j) and (j != k): print(i, j, k) 二、Python 練習(xí)實例 2

2、 題目:企業(yè)發(fā)放的獎金根據(jù)利潤提成。利潤(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 ,求應(yīng)發(fā)放獎金總數(shù)? 程序分析:請利用數(shù)軸來分界,定位。注意定義時需把獎金定義成長整型。 程序源代碼: #!/usr/bin/p

3、ython # -*- coding: UTF-8 -*- i = int(input( 凈利潤 :) arr = 1000000, 600000, 400000, 200000, 100000, 0 rat = 0.01, 0.015, 0.03, 0.05, 0.075, 0.1 r = 0 for idx in range(0, 6): if i arridx: r += (i - arridx) * ratidx print(i - arridx) * ratidx) i = arridx print(r) 三、Python 練習(xí)實例 3 題目:一個整數(shù), 它加上 1 00后是一個完全

4、平方數(shù), 再加上 168 又是一個完全平 方數(shù),請問該數(shù)是多少? 程序分析: 假設(shè)該數(shù)為 x 。 1 、則: x + 100 = n2, x + 100 + 168 = m2 2、計算等式: m2 - n2 = (m + n)(m - n) = 168 3、設(shè)置: m + n = i ,m - n = j , i * j =168 ,i 和 j 至少一個是偶數(shù) 4、可得: m = (i + j) / 2 , n = (i - j) / 2 ,i 和 j 要么都是偶數(shù),要么 都是奇數(shù)。 5、從 3 和 4 推導(dǎo)可知道, i 與 j 均是大于等于 2 的偶數(shù)。 6、由于 i * j = 168,

5、j=2 ,則 1 i j and (i + j) % 2 = 0 and (i - j) % 2 = 0: m = (i + j) / 2 n = (i - j) / 2 x = n * n - 100 print(x) 四、Python 練習(xí)實例 4 題目:輸入某年某月某日,判斷這一天是這一年的第幾天? 程序分析:以3月 5日為例,應(yīng)該先把前兩個月的加起來, 然后再加上 5天即本 年的第幾天,特殊情況,閏年且輸入月份大于 2 時需考慮多加一天: 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- year = int(input(year:n)

6、month = int(input(month:n) day = int(input(day:n) months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334) if 0 month 2): sum += 1 print(it is the %dth day. % sum) 五、Python 練習(xí)實例 5 題目:輸入三個整數(shù) x,y,z ,請把這三個數(shù)由小到大輸出。 程序分析:我們想辦法把最小的數(shù)放到 x 上,先將 x 與 y 進行比較,如果 xy 則將 x 與 y 的值進行交換, 然后再用 x 與 z 進行比較, 如果 xz

7、 則將 x 與 z 的值 進行交換,這樣能使 x 最小。 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- l = for i in range(3): x = int(input(integer:n) l.append(x) l.sort() print(l) 六、Python 練習(xí)實例 6 題目:斐波那契數(shù)列。 程序分析:斐波那契數(shù)列( Fibonacci sequence ),又稱黃金分割數(shù)列,指的是 這樣一個數(shù)列:0、1、1、2、3、5、8、13、21、34、。 在數(shù)學(xué)上,費波那契數(shù)列是以遞歸的方法來定義: F0 = 0 (n=0) F1

8、 = 1 (n=1) Fn = Fn-1+ Fn-2(n=2) 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- def fib(n): a, b = 1, 1 for i in range(n - 1): a, b = b, a + b return a # 輸出了第 10 個斐波那契數(shù)列 print(fib(10) # 使用遞歸 def fib(n): if n = 1 or n = 2: return 1 return fib(n - 1) + fib(n - 2) # 輸出了第 10 個斐波那契數(shù)列 print(fib(10) def f

9、ib(n): if n = 1: return 1 if n = 2: return 1, 1 fibs = 1, 1 for i in range(2, n): fibs.append(fibs-1 + fibs-2) return fibs # 輸出前 10 個斐波那契數(shù)列 print(fib(10) 七、Python 練習(xí)實例 7 題目:將一個列表的數(shù)據(jù)復(fù)制到另一個列表中。 程序分析:使用列表 : 。 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- a = 1, 2, 3 b = a: print(b) 八、Python 練習(xí)實例 8 題

10、目:輸出 9*9 乘法口訣表。 程序分析:分行與列考慮,共9行9列,i控制行,j控制列 程序源代碼: for i in range(1,10): for j in range(1,i+1): print(%d*%d=%d % (i,j,i*j),end= ) print() 九、Python 練習(xí)實例 9 題目:暫停一秒輸出。 程序分析:使用 time 模塊的 sleep() 函數(shù) #!/usr/bin/python # -*- coding: UTF-8 -*- import time myD = 1: a, 2: b for key, value in dict.items(myD): p

11、rint(key, value) time.sleep(1) # 暫停 1 秒 十、 Python 練習(xí)實例 10 題目:暫停一秒輸出,并格式化當前時間。 程序分析:無。 程序源代碼: #!/usr/bin/python %H:%M:%S,time.localtime(time.time() %H:%M:%S,time.localtime(time.time() # -*- coding: UTF-8 -*- import time print(time.strftime(%Y-%m-%d # 暫停一秒 time.sleep(1) print(time.strftime(%Y-%m-%d 十一

12、、 Python 練習(xí)實例 11 Python 100 例 Python 100 例 題目:古典問題:有一對兔子,從出生后第 3 個月起每個月都生一對兔子,小 兔子長到第三個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子 總數(shù)為多少? 程序分析:兔子的規(guī)律為數(shù)列 1,1,2,3,5,8,13,21 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range(1, 22): print(%12ld %12ld % (f1, f2),), if (i % 3) = 0: print() f1 =

13、 f1 + f2 f2 = f1 + f2 十二、 Python 練習(xí)實例 12 題目:判斷 101-200 之間有多少個素數(shù),并輸出所有素數(shù)。 程序分析:判斷素數(shù)的方法:用一個數(shù)分別去除 2 到 sqrt( 這個數(shù) ) ,如果能被 整除,則表明此數(shù)不是素數(shù),反之是素數(shù)。 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- h = 0 leap = 1 from math import sqrt from sys import stdout for m in range(101, 201): k = int(sqrt(m + 1) for i in

14、 range(2, k + 1): if m % i = 0: leap = 0 break if leap = 1: print(%-4d % m) h += 1 if h % 10 = 0: print() leap = 1 print(The total is %d % h) 十三、 Python 練習(xí)實例 13 題目:打印出所有的 水仙花數(shù) ,所謂水仙花數(shù) 是指一個三位數(shù),其各位數(shù) 字立方和等于該數(shù)本身。例如: 153是一個水仙花數(shù) ,因為 153=1的三次方 5 的三次方 3 的三次方。 程序分析: 利用 for 循環(huán)控制 100-999 個數(shù),每個數(shù)分解出個位, 十位,百位。 程序

15、源代碼: print(100-999 之間的水仙花數(shù)有: ) for i in range(100, 999): j = int(i / 1 % 10) # 個位 使用 int 的原因是強轉(zhuǎn)故意讓其損失精 度 ,Python 中使用此方法獲取時必須強轉(zhuǎn)因為 Python 中默認保留小數(shù) k = int(i / 10 % 10) # 十位 m = int(i / 100 % 10) # 百位 if i = (j * 3 + k * 3 + m * 3): print(i) 十四、 Python 練習(xí)實例 14 題目:將一個正整數(shù)分解質(zhì)因數(shù)。例如:輸入90,打印出 90=2*3*3*5 。 程序分

16、析:對n進行分解質(zhì)因數(shù),應(yīng)先找到一個最小的質(zhì)數(shù)k,然后按下述步驟 完成: (1)如果這個質(zhì)數(shù)恰等于n,則說明分解質(zhì)因數(shù)的過程已經(jīng)結(jié)束,打印出即可。 如果nk,但n能被k整除,則應(yīng)打印出k的值,并用n除以k的商,作為 新的正整數(shù)你 n, 重復(fù)執(zhí)行第一步。 如果n不能被k整除,則用k+1作為k的值,重復(fù)執(zhí)行第一步。 程序源代碼: while 1: n = int(input( 請輸入一個整數(shù): ) print(%d=%n,end=) while n1: for i in range(2,n+1): if n%i=0: n=int(n/i) if n=1: print(%d%i,end=) else

17、: print(%d*%i,end=) break print() 十五、 Python 練習(xí)實例 15 題目:利用條件運算符的嵌套來完成此題:學(xué)習(xí)成績 =90 分的同學(xué)用 A 表示, 60-89分之間的用B表示,60分以下的用C表示。 程序分析:程序分析: (ab)?a:b 這是條件運算符的基本例子。 程序源代碼: #!/usr/bin/python # -*- coding: UTF-8 -*- score = int(input( 輸入分數(shù) :n) if score = 90: grade = A elif score = 60: grade = B else: grade = C pr

18、int(%d 屬于 %s % (score, grade) 十六、 Python 練習(xí)實例 16 題目:輸出指定格式的日期。 程序分析:使用 datetime 模塊。 #!/usr/bin/python # -*- coding: UTF-8 -*- import datetime if _name_ = _main_: # 輸出今日日期,格式為 dd/mm/yyyy 。更多選項可以查看 strftime() 法 print(datetime.date.today().strftime(%d/%m/%Y) # 創(chuàng)建日期對象 miyazakiBirthDate = datetime.date(1

19、941, 1, 5) print(miyazakiBirthDate.strftime(%d/%m/%Y) # 日期算術(shù)運算 miyazakiBirthNextDay = miyazakiBirthDate datetime.timedelta(days=1) print(miyazakiBirthNextDay.strftime(%d/%m/%Y) # 日期替換 miyazakiFirstBirthday miyazakiBirthDate.replace(year=miyazakiBirthDate.year + 1) print(miyazakiFirstBirthday.strftim

20、e(%d/%m/%Y) 十七、 Python 練習(xí)實例 17 題目:輸入一行字符,分別統(tǒng)計出其中英文字母、空格、數(shù)字和其它字符的個 數(shù)。 程序分析:利用 while 或 for 語句, 條件為輸入的字符不為 n 。 #!/usr/bin/python # -*- coding: UTF-8 -*- import string s =input( 請輸入一個字符串 :n) letters = 0 space = 0 digit = 0 others = 0 i = 0 while i 1: for i in range(2, num): if (num % i) = 0: break else:

21、 print(num) 三十七、 Python 練習(xí)實例 37 題目:對 10 個數(shù)進行排序。 程序分析:可以利用選擇法,即從后 9 個比較過程中,選擇一個最小的與第一 個元素交換,下次類推,即用第二個元素與后 8 個進行比較,并進行交換。 程序源代碼: if _name_ = _main_: n = 10 # input data print( 請輸入 10 個數(shù)字 :n) l = for i in range(n): l.append(int(input( 輸入一個數(shù)字 :n) print(n) for i in range(n): print( li) print(n) # 排列 10 個數(shù)字 for i in range(n - 1): min = i for j in range(i + 1, n): if lmin lj: min = j li, lmin = lmin, li print( 排列之后: ) for i in range(n): print( li) 三十八、 Python 練習(xí)實例 38 題目:求一個 3*3 矩陣主對角線元素之和。 程序分析:利用雙重 for 循環(huán)控制輸入二維數(shù)組,再將 aii 累加后輸出 程序源代碼: if _name_ = _main_: a = sum = 0.0 for i in range

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論