題目:企業發放的獎金根據利潤提成。利潤(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-elif-else,方式處理。
profit =
int(
input
('please input the profit:\n'))
# 通過input輸入的是str,需要通過int()函式將其轉化為資料
bonus_percent_level1 =
100000
*0.1
bonus_percent_level2 =
100000
*0.175
bonus_percent_level3 =
100000
*0.275
bonus_percent_level4 =
100000
*0.335
bonus_percent_level5 =
100000
*0.395
# 預定義相關的變數便於後續處理
if profit <=
100000
: bonus_percent = profit *
0.1elif profit <=
200000
: bonus_percent = bonus_percent_level1 +
(profit -
100000)*
0.075
elif profit <=
400000
: bonus_percent = bonus_percent_level2 +
(profit -
200000)*
0.05
elif profit <=
600000
: bonus_percent = bonus_percent_level3 +
(profit -
400000)*
0.03
elif profit <=
1000000
: bonus_percent = bonus_percent_level4 +
(profit -
600000)*
0.015
else
: bouns_percent = bonus_percent_level5 +
(profit -
1000000)*
0.01
print
('bonus_percent: {}'
.format
(bonus_percent)
)
知識點:
1.int()函式:
int() 函式用於將乙個字串或數字轉換為整型。
語法: class int(x, base=10)
引數: x – 字串或數字。如果不傳引數時,得到結果為0
base – 進製數,預設十進位制。
pydev console: starting.
python 3.7
.6(default, jan 8
2020,20
:23:39
)[msc v.
1916
64 bit (amd64)
] on win32
int()0
int(
3.6)
3int
('12',16
)18int(
'0xa',16
)10int(
'10',8
)8int(
'10',10
)10int(
100,10)
traceback (most recent call last)
: file ""
, line 1,in
typeerror:
int(
) can't convert non-string with explicit base
# 如果引數x為資料型別,就不能給base設定引數,否則會出錯。因此,如果要給base設定型別時,x引數必須為string型別。
format函式格式化輸出:
一種格式化字串的函式 str.format(),它增強了字串格式化的功能。
基本語法是通過 {} 和 : 來代替以前的 % 。
format 函式可以接受不限個引數,位置可以不按順序,在{}中的數字代表的是format中引數的順序,並且此引數可以重複使用。在{}中的變數代表format中的引數。
name =
'mary'
age =
18s =
"\'s age is "
.format
(name,age)
print
(s)mary's age is
18>>
>
"{} {}"
.format
("hello"
,"world"
)# 不設定指定位置,按預設順序
'hello world'
>>
>
" ".
format
("hello"
,"world"
)# 設定指定位置
'hello world'
>>
>
" "
.format
("hello"
,"world"
)# 設定指定位置
'world hello world'
對於數字格式化,訊息參考: Python練習100題一
題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?分析1 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去掉不滿足條件的排列。result for i in range 1 5 for j in range 1 5 for k in range 1...
python練習100例 Python練習100例
filename cnt 0 count the sum of result fori inrange 1,5 forj inrange 1,5 fork inrange 1,5 ifi j andi k andj k print i 100 j 10 k cnt 1 print cnt 程式 題目...
python練習100例(一 四)
以後爭取每週更新10個例題 例1 有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?m 0for i in range 1 5 for j in range 1 5 for k in range 1 5 if i j and i k and k j m m 1 prin...