實例一:數學計算
簡述:這里有四個數字,分別是:1、2、3、4
提問:能組成多少個互不相同且無重復數字的三位數?各是多少?
Python解題思路分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。(for循環)
代碼實現:

1 list = [] #定義一個空的列表用來存儲生產的數字 2 for i in range(1,5): #定義百位數 3 for j in range(1,5): #定義十位數 4 for k in range(1,5): #定義個位數 5 if i != j and j !=k and i != k: 6 num = i*100+j*10+k 7 print(num) 8 list.append(num) #將生成的數字加入到list列表中 9 result_num = len(list) #統計列表中元素的個數 10 print("可以組合的個數為%d"%(result_num))
實例二:關於數軸和長整型數據類型的練習
簡述:企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?
Python解題思路分析:請利用數軸來分界及定位。並要注意定義時需要把獎金定義成長整型的數據類型。
代碼實現:

1 profit = int(input("請輸入您的凈利潤:")) 2 arr = [1000000,600000,400000,200000,100000,0] 3 Money_rate = [0.01,0.015,0.03,0.05,0.075,0.1] 4 bonus = 0 5 for i in range(0,6): 6 if profit > arr[i]: #判斷凈利潤的范圍 7 bonus += (profit-arr[i])*Money_rate[i] #獎金的計算 8 print((profit-arr[i])*Money_rate[i]) 9 profit = arr[i] #重新復制凈利潤,進行低階段判斷 10 print(bonus)
實例三:平方數的操作練習
簡述:一個整數,它加上100和加上268后都是一個完全平方數
提問:請問該數是多少?
Python解題思路分析:在10000以內判斷,將該數加上100后再開方,加上268后再開方,如果開方后的結果滿足如下條件,即是結果。
說明:sqrt() 方法返回數字x的平方根,sqrt()是不能直接訪問的,需要導入 math 模塊,通過靜態對象調用該方法

import math for i in range(10000): x = int(math.sqrt(i+100)) y = int(math.sqrt(i+268)) if x * x == i + 100 and y * y == i + 268: print(i)
實例四:日期計算,編程練習
簡述:要求輸入某年某月某日
提問:求判斷輸入日期是當年中的第幾天?
Python解題思路分析:我們就以3月5日這一天為例。首先把前兩個月的加起來,然后再加上5天即本年的第幾天。這里有一種特殊的情況,就是閏月,遇到
這種情況且輸入月份大於2時需考慮多加一天。如果不是很明白,可以看下邊的python源碼。

year = int(input("請輸入年份:")) month = int(input("請輸入月份:")) day = int(input("請輸入天:")) months = (0,31,59,90,120,151,181,212,243,273,304,334) #按月份統計該月份前的天數 if 0 < month <= 12: sum = months[month-1] else: print("日期輸入錯誤!") sum += day a = 0 #定義一個中間變量 if (year % 400 == 0) or (( year % 4 == 0 ) and ( year % 100 != 0)): #判斷年份是否是閏年 a = 1 if (a == 1) and ( month > 2): sum += 1 print("今天是第%s天"%sum)
持續更新中……
參考:http://www.iplaypy.com/python-100/