最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

Python編程算法【十三】 個(gè)人所得稅_簡化版

2022-09-19 21:14 作者:SPC編程愛好者  | 我要投稿

【案例內(nèi)容】

編寫一個(gè)計(jì)算個(gè)人所得稅的程序,要求輸入金額后,能夠輸出應(yīng)繳的個(gè)人所得稅。個(gè)人所得稅的征收辦法如下:
起征點(diǎn)為2000元。
不超過500元的部分,征收5%
超過500~2000元的部分,征收10%
超過2000~5000元的部分,征收15%
超過5000~20000元的部分,征收20%
超過20000~40000元的部分,征收25%
超過40000~60000元的部分,征收30%


【解題思路】

bisect是python的內(nèi)置模塊,它的原理是通過二分查找法,快速實(shí)現(xiàn)有序序列(如列表)的查找和插入。本題就用到它的查找功能。 以本題為例,可將超出的征稅金額的分界點(diǎn)放在列表里,比如:moneys = [0, 500, 2000, 5000, 20000, 40000, 60000, 80000, 100000] 再把各個(gè)稅率分界點(diǎn)也放在一個(gè)列表里,比如:tax = [0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45] 用變量 my_money 記錄用戶輸入的金額,用變量 ex_money = my_money - 2000 記錄超出2000的金額,當(dāng)然前提要先判斷 my_money 是否大于2000,如果大,則利用 bisect_left 的方法,在 moneys 列表中判斷 ex_money 在哪個(gè)分界點(diǎn)的左側(cè),并記錄下相應(yīng)的序號(hào)(index) 舉例來說:超出的金額,即 ex_money = 300,它在分界點(diǎn)500的左側(cè),因此序號(hào) index = 1;再比如,ex_money = 7360,它在分界點(diǎn)20000的左側(cè),因此 index = 4;以此類推 另外,如果超出的金額剛好是分界點(diǎn),比如600000,由于用的是 bisect_left 方法,所以也在分界點(diǎn)60000的左側(cè),即序號(hào) index = 6 拿到序號(hào)后,再配合上 tax 列表,不就可以輕松計(jì)算出相應(yīng)的稅費(fèi)了嗎?


【Python代碼】?

扣除2000后,超出金額的稅費(fèi)

當(dāng)然本題的解法,比較簡單粗暴,只是把超出2000的金額,直接參照題目相應(yīng)的扣稅條件,看看符合哪個(gè)稅率條件,然后算出稅費(fèi)就結(jié)束了。實(shí)際上是要將超出起征點(diǎn)的金額,算出在每個(gè)征稅范圍內(nèi)應(yīng)繳納的稅費(fèi),然后再全部累計(jì)起來,得到最后應(yīng)繳納的稅費(fèi)??闪舸o讀者朋友們進(jìn)一步實(shí)踐。本題更主要的是向大家展示 bisect 模塊的便利與高效之處,它能提高有序數(shù)組中查找某一數(shù)據(jù)的執(zhí)行效率。

Python編程算法【十三】 個(gè)人所得稅_簡化版的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
墨脱县| 丽江市| 石狮市| 嘉峪关市| 牙克石市| 泸定县| 岳阳市| 平潭县| 托克托县| 习水县| 南丰县| 大方县| 天等县| 张家港市| 丹阳市| 札达县| 安图县| 合作市| 泽普县| 太原市| 洛浦县| 常山县| 札达县| 凌云县| 九寨沟县| 无为县| 含山县| 固始县| 华亭县| 承德县| 广元市| 手机| 乌拉特中旗| 宜城市| 渑池县| 溧阳市| 甘谷县| 奉化市| 高唐县| 米泉市| 赫章县|