python 100例之例二

2021-08-11 11:09:50 字數 2017 閱讀 4310

題目:企業發放的獎金根據利潤提成。利潤(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,求應發放獎金總數?

解題思路:該題表面看起來非常簡單,多個if條件分支就可以實現,但是仔細考慮,多個if條件應該不是本題意圖,這樣未免顯得太無聊,由此想到列表和元組資料結構中有索引方法,此題意圖應該是在這裡。

方法一,先寫出使用if分支的**:

i = float(raw_input("please input benefit of this month:" ))

if i

<= 10:

bonus= i * 0.1

elif 10

< i

<= 20:

bonus= 10 * 0.1 + (i-10) * 0.075

elif 20

< i

<= 40:

bonus= 10 * 0.1 + 10 * 0.075 +(i-20) * 0.05

elif 40

< i

<= 60:

bonus= 10 * 0.1 + 10 * 0.075 + 20 * 0.05 +(i-40)*0.03

elif 60

< i

<= 100:

bonus= 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (i-60)*0.015

else:

bonus= 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 +(i-100) * 0.01

print bonus

方法二,使用列表方法,**如下:

benefits = [0,10,20,40,60,100]

rates = [0.1,0.075,0.05,0.03,0.015,0.01]

bonus = 0

i = float(raw_input("please input the benefit of this month: "))

for i in range(5,-1,-1):

while i > benefits[i]:

bonus += (i-benefits[i])*rates[i]

i = benefits[i]

print bonus,i

在使用列表方法編寫**的時候,遇到問題,利潤按10,20…分等級,在benefits列表中利潤是從小到大排列,如索引從小到大,則大於後乙個索引代表的利潤額的利潤一定會大於前乙個索引代表的利潤額,這樣計算的時候就出現錯誤,最終參考if分支判斷,想到使用從大到小的索引,先取benefits[5],再取benefits[4],依次取到benefits[0],這樣計算就沒問題了。

方法三,使用列表方法,列表資料倒敘排列:

benefits = [100,60,40,20,10,0]

rates = [0.01,0.015,0.03,0.05,0.075,0.1]

bonus = 0

i = float(raw_input("please input the benefit of this month: "))

for i in range(0,6):

if i > benefits[i]:

bonus += (i-benefits[i]) * rates[i]

i = benefits[i]

print bonus,i

方法四,使用元組方法,和使用列表是一樣的,就不再贅述。

在程式設計學習中,一時間也許並不能想到最合適、最簡單的方法完成整個**,可以先用簡單的if語句實現,再考慮複雜的實現。

菜鳥教程 Python 100例

本部落格列出具體題目及其 github位址 1,題目 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?2,題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部...

菜鳥教程Python100例 筆記

練習例項74 元組強制轉為list列表 練習例項76 函式名做引數傳遞 usr bin python print hello,world a 123 b 456 stra abc strb def strc a,b,c strd d e f stre abc def ghi strf gkl mno...

python100例單詞 Python100例分享

摘要 下文通過示例的方式講述python中字串的判斷,如下所示 下文通過示例的方式講述,借助內建函式對字串是否為數字 字母 大寫 小寫 空白 首字母大寫等模式進行判斷 例 maomao365.com python 字串判斷的示例分享 測試例項一 print 例1 str maomao365.com ...