題目:企業發放的獎金根據利潤提成。利潤低於或等於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%提成,從鍵盤輸入當月利潤,求應發獎金數?express
相關函數:函數
一、range()----建立應整數列表,經常使用於for循環ui
語法:range(start,stop[,step])spa
參數說明:code
start:計數從start開始,默認是從0開始;stop:計數到stop結束,但不包括stop。如range(0,4)是[0,1,2,3] ;step:步長,默認是1。如range(0,6)等價於range(0,6,1)
對象
二、sum()-----求和函數blog
語法:sum(iterable[,start])ip
參數說明:字符串
iterable:可迭代對象,如列表、元祖、集合; start:指定相加的參數,若是沒有設置這個值,默認是0;input
三、map()
語法:map(function,iterable,...)
需傳入一個函數,這個函數能夠是內置的,也能夠自定義或匿名函數;第二個參數時可迭代對象,如列表、字符串等。返回的是一個map對象,注意不是列表不能直接輸出,能夠經過for循環或者list()來顯示。
四、lambda()----匿名函數
語法:lambda arg1,arg2,。。。,argN:expression
五、zip()---將可迭代的對象做爲參數,將對象中對應的元素打包成一個個元祖,而後返回有這些元祖組成的對象,咱們可用list()轉換來輸出列表
語法:zip(iterable,。。。)
代碼:
w=int(input('輸入利潤: ')) p=[1000000,600000,400000,200000,100000,0] t=[0.01,0.015,0.03,0.05,0.075,0.1] r=[400000,200000,200000,100000,100000] for j in range(len(p)): if w >p[j]: v1=(w-p[j])*t[j] print(v1) p_new=p[j+1:6] r_new=r[j:5] v2=sum(map(lambda x,y:x*y,zip(p_new,r_new))) print(v2) print(v1+v2) break
運行提示:
v2=sum(map(lambda x,y:x*y,zip(p_new,r_new)))
TypeError: <lambda>() missing 1 required positional argument: 'y'
但若改成v2=sum(map(lambda(x,y):x*y,zip(p_new,r_new)))也不行,
會提示: v2=sum(map(lambda (x,y):x*y,zip(p_new,r_new)))
^
SyntaxError: invalid syntax
最後寫了一個簡單易懂的
w=int(input('請輸入當月利潤,(單位:萬元):')) p=[1000000,600000,400000,200000,100000,0] t=[0.01,0.015,0.03,0.05,0.075,0.1] r=0 for j in range(len(p)): if w>p[j]: r+=(w-p[j])*t[j] w=p[j] print('獎金:',r)