回到頂部
adad
  • 首頁
  • 個稅頻道
  • 金融頻道
  • 首頁 > 個稅計算 > 正文

    使用Python計算新個人所得稅起征點下你能多拿幾塊錢?

          編輯:小編            2019-03-11 21:51:47      來源于:網站整理
    分享:

    好久沒有技術貼的更新,隨著備受關注的個人所得稅法修正案草案19日提請十三屆全國人大常委會第三次會議審議,我也來蹭一波熱度,使用Python來寫一個簡單的小腳本計算一下當前的工資能夠在新的個稅起征點下多拿到多少錢。


    這次稅法修正案主要有四處調整:


    1. 個稅起征點提高,從原先的3500元提高至5000元;

    2. 實行綜合征稅,工資薪金、勞務報酬、稿酬和特許權使用費四項勞動性所得首次實行綜合征稅;

    3. 首次增加子女教育支出、繼續教育支出、大病醫療支出、住房貸款利息和住房租金等專項附加扣除;

    4. 優化調整稅率結構,擴大較低檔稅率級距


    對于我們小伙伴來說,最直觀的應該就是個稅起征點的變化了,由于稅率并沒有發生變化,因此我們交的稅是變少了,對于已經很艱難的我們來說,算是一丟丟好處吧。


    在上次的只制作頭像的教程中,我們已經安裝好了Python的執行環境,不再贅述了,首先看看我們要完成的程序需要干點什么:


    1. 接受一個來自命令行的輸入,輸入的值是我們的月薪

    2. 根據月薪計算起征點為3500和起征點為5000情況下的納稅總額

    3. 將新舊起征點下的納稅總額相減,打印出我們多拿的幾塊錢


    當我們編寫好Python代碼的文件之后,會在命令行中運行這個文件,而在運行文件的時候,我們可以附加一些參數,然后在代碼中獲取這些參數并處理,例如:


     python XXX.py 5000 


    其中的python是運行命令,XXX.py是我們需要運行的文件,而5000則是我們傳遞給程序的參數,不同于前面兩個,參數是可以變的,這也就決定了我們可以改變參數來獲得不同月薪的數據。


    如何在代碼中獲取到輸入的參數呢?這部分的內容,科科,還是比較難以理解的,因為牽扯到模塊的調用,建議還是直接拿來用就好了,代碼如下:


     if __name__ == "__main__":    if len(sys.argv) < 2: 

            print("Usage: {} <salary>".format(sys.argv[0])) 

            sys.exit(1) 


     salary = float(sys.argv[1]) 

     dec = tax_dec(salary) 

     print("工資總額: {}, 多拿: {}".format(salary, dec)) 


    然后我們需要計算納稅總額,盡管起征點變化,但是稅率還是沒有改變,目前的稅率如下圖:



    這個圖也很好理解,他把需要納稅的金額分成了很多個區間,處于1500以下的這部分薪酬需要按照0.03的比例來納稅,以此類推,所以我們需要有一個函數來實現一個這樣的功能"輸入需要納稅的金額,輸出納稅總額",這部分的代碼如下:


     def tax_indeed(salary): 

        if salary <= 1500:        

            return salary * 0.03

        elif salary > 1500 and salary <= 4500:        

            return 0.03*1500 + (salary-1500)*0.1 

        elif salary > 4500 and salary <= 9000: 

            return 0.03*1500 + 0.1*3000 + (salary-4500)*0.2 

        elif salary > 9000 and salary <= 35000:   

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + (salary-9000)*0.25 

        elif salary > 35000 and salary <= 55000:     

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + (salary-35000)*0.30 

        elif salary > 55000 and salary <= 80000: 

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + 0.30*20000 + (salary- 55000)*0.35 

        else:    

           return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + 0.30*20000 + 0.35*25000 + (salary-80000)*0.45 


    最后我們需要一個計算出在新舊的個稅起征點下納稅總額相差多少的函數,這個比較簡單,只需要我們將月薪傳入函數,然后分別減去3500和5000的個稅起征點,并且用上面已經完成的根據納稅金額計算出納稅額的函數進行運算即可,這部分的函數如下:


    def tax_dec(salary):

        former_tax = tax_indeed(salary-3500) 

        latter_tax = tax_indeed(salary-5000) 

        return former_tax-latter_tax 


    新建一個后綴為.py的文件,例如SelfTax.py,然后使用打開這個文件進行編輯,我們把已經完成的代碼寫入文件,不要忘記添加第一行的引入sys系統標準庫的語句,所有的代碼如下:


     import sys 


    def tax_indeed(salary): 

        if salary <= 1500:        

            return salary * 0.03 

        elif salary > 1500 and salary <= 4500:        

            return 0.03*1500 + (salary-1500)*0.1 

        elif salary > 4500 and salary <= 9000: 

            return 0.03*1500 + 0.1*3000 + (salary-4500)*0.2

        elif salary > 9000 and salary <= 35000:   

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + (salary-9000)*0.25

        elif salary > 35000 and salary <= 55000:     

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + (salary-35000)*0.30

        elif salary > 55000 and salary <= 80000: 

            return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + 0.30*20000 + (salary-55000)*0.35

        else:    

           return 0.03*1500 + 0.1*3000 + 0.2*4500 + 0.25*26000 + 0.30*20000 + 0.35*25000 + (salary-80000)*0.45 


    def tax_dec(salary): 

        former_tax = tax_indeed(salary-3500) 

        latter_tax = tax_indeed(salary-5000) 

        return former_tax-latter_tax 


    if __name__ == "__main__":    

        if len(sys.argv) < 2: 

            print("Usage: {} <salary>".format(sys.argv[0])) 

            sys.exit(1) 


    salary = float(sys.argv[1]) 

    dec = tax_dec(salary) 

    print("工資總額: {}, 多拿: {}".format(salary, dec)) 


    那么現在我們運行一下我們完成的這個小程序:



    我們可以驚喜地發現,多拿的數額其實也是呈區間變化的,在一定范圍內,多拿的數額是想通的,基本就相差25元的整數倍,同時,當你的月薪高到了一定的程度的時候,你多拿的數額其實就不會再改變。。。好吧如果有月薪100000的朋友看到這篇文章,請和我做朋友。

    微信號

    溫馨提示:如果您喜歡 “使用Python計算新個人所得稅起征點下你能多拿幾塊錢?” 這篇文章,記得和好朋友一起分享哦~

    分享:   
    廣告配套文案
    個稅計算

    為您推薦

    • 個稅資訊
    • 個稅籌劃
    • 個稅法律法規
    • 個稅常見問題
    個稅計算
    個稅計算
    香港一波中特