python入門 迭代思想小練習

2021-10-05 04:14:40 字數 2238 閱讀 8560

一、原始碼

# -*- coding:utf-8 -*/-

# @author : sunbin

# @time : 2020/4/14 9:10

# @email : [email protected]

# @file : lx12_money.py

# # 企業發放的獎金根據利潤提成

# 利潤(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,求應發放獎金總數?

#一x =

input

('請輸入當月利潤(單位:萬元):\n'

)if x.isdigit():

x =float

(x)if x <=10:

y =0.1* x

elif x <20:

#10000.0

y =(x -10)

*0.075+10

*0.1

elif x <40:

# 17500.0

y =(x -20)

*0.05+10

*0.075+10

*0.1

elif x <60:

# 27500.0

y =(x -40)

*0.03+20

*0.05+10

*0.075+10

*0.1

elif x <

100:

#30500.0

y =(x -60)

*0.015+20

*0.03+20

*0.05+10

*0.075+10

*0.1

else

:# 36500.0

y =(x -

100)

*0.01+40

*0.015+20

*0.03+20

*0.05+10

*0.075+10

*0.1

print

('應發放獎金總數:%.2f'

%y)else

:print

('請輸入正確的數值'

)# 二

profit_rate=

[0.01

,0.015

,0.03

,0.05

,0.075

,0.1

]profit_range =

[100,60

,40,20

,10,0

]y =

0for i in

range

(len

(profit_range)):

if x > profit_range[i]

: y = y +

(x - profit_range[i]

)* profit_rate[i]

x = profit_range[i]

print

('應發放獎金總數:%.2f'

%y)

二、**對比

一、二兩種方法對比,顯然,在範圍和利率變動時,方法二方便管理

三、 方法二思路

假如輸入金額為 110,>100

i = 0 時,(110-100)*0.01 + (100的獎金)

i = 1 時,(100-60)*0.015 + (60的獎金)

……i = 4 時,(20-10)*0.075 + (10的獎金)

i = 5 時,(10-0)*0.1 + (0的獎金)

即i = i 時,

第一次計算時,當前輸入金額 - 範圍值

當前範圍獎金 = (x - profit_range[i]) * profit_rate[i]

x = profit_range[i],該次的範圍值會在下一次計算時,充當被減數

第二次計算時,上一次範圍值 - 當前範圍值

當前範圍獎金 = (profit_range[i-1] x- profit_range[i]) * profit_rate[i]

總獎金即為累計求和

python分支限界剪枝思想小練習

題目 兩個桌球隊進行比賽,各出三人。甲隊為1,2,3三人,乙隊為4,5,6 三人。已抽籤決定比賽名單。有人向隊員打聽比賽的名單。1說他不和4比,3說他不和4,6比,請程式設計序找出三隊賽手的名單。思路 類似於分支限界的剪枝法,窮舉回溯 a,b,c代表甲隊的1,2,3 d,e,f代表最後符合篩選條件的...

Python入門(六) 迭代

1 迭代的概念 在python中,如果給定乙個list或tuple,我們可以通過for迴圈來遍歷這個list或tuple,這種遍歷我們成為迭代 iteration 在python中,迭代是通過 for in 來完成的。迭代操作就是對於乙個集合,無論該集合是有序 還是無序,我們用 for 迴圈總是可以...

python迭代器入門

迭代器是乙個可以記住遍歷的位置的物件。迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問完結束。迭代器只能往前不會後退。可以使用 hasattr 判斷物件是否是 可迭代的 hasattr str iter true使用內建函式 iter 定義迭代器物件。lst 1 2,3 4 iter ls...