北京快三春节还开奖吗 www.zkafl.com 好久沒有技術貼的更新,隨著備受關注的個人所得稅法修正案草案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的朋友看到這篇文章,請和我做朋友。
2019-02-01
2019新增值稅4月1號執行!增值稅16%降13%,10%降9%,6%擴抵!
2019-03-16
2019-04-08
2019新勞務費稅率標準是什么?附勞務費計算方法(公式/表格)
2019-02-21
2019-05-13
2019-02-19
2019-04-12
2019年5月起,不是每張車票都能抵扣增值稅! 員工出差車票抵扣報銷內容明確
2019-05-15