1. 程式人生 > >個稅起徵點上調至5000,用Python算一算少交多少稅

個稅起徵點上調至5000,用Python算一算少交多少稅

aaf6adf5de9c7f99368ad5f5103d634d91da1bc7

今天出了一個重磅訊息,個稅起徵點從3500上調到5000啦!

廣大IT農民工的生活壓力又減輕了一些,有沒有

晚上加一個雞腿,要不要~

開心歸開心,我們來用Python算一算,新的規則下,我們需要交多少稅,比原先少交多少稅。

下面的這張表是稅率表,這是對超過免徵額部分的收入徵收的稅率

8e75df1fe50e1efd0e5ab904a6b2252c0428823d

這次調整的是免徵額,之前是3500,現在是5000,稅率部分沒有發生變化。

我們用Python來寫兩個程式,一個計算舊的工資所得稅,一個計算新的工資所得稅。

下面的函式old_tax用來計算舊的所得稅

 

import sys import bisect
def old_tax(salary):
if salary < 3500 : return 0.0
above = salary - 3500
ranges = [ 0 , 1500 , 4500 , 9000 , 35000 , 55000 , 80000 ] rate = [ .03 , .1 , .2 , .25 , .30 , .35 , .45 ] i = bisect.bisect_left(ranges, above)
j = 0 tax = 0.0 while j < i: if j+ 1 < i: tax += (ranges[j+ 1 ]-ranges[j]) * rate[j] else : tax += (above-ranges[j]) * rate[j] j += 1
return tax

下面的函式new_tax用來計算新的所得稅

 

def new_tax(salary): if
salary < 5000: return 0.0
above = salary - 5000
ranges = [ 0 , 1500 , 4500 , 9000 , 35000 , 55000 , 80000 ] rate = [ .03 , .1 , .2 , .25 , .30 , .35 , .45 ] i = bisect.bisect_left(ranges, above) j = 0 tax = 0.0 while j < i: if j+ 1 < i: tax += (ranges[j+ 1 ]-ranges[j]) * rate[j] else : tax += (above-ranges[j]) * rate[j] j += 1
return tax

下面是我們的主函式

 

if __name__ == "__main__": if len(sys.argv) < 2: print( "Usage: {} <salary>".format(sys.argv[ 0])) sys.exit( 1)
salary = float(sys.argv[ 1 ]) old_tax = old_tax(salary) new_tax = new_tax(salary) print( "old: {}, new: {}" .format(old_tax, new_tax))

上面的程式碼儲存在tax.py中。

接下來,我們來用tax.py算一算不同工資水平的個稅

 

python3 tax.py 5000 old: 45.0, new: 0.0

每月5000元的工資,以前要交45元的個稅,起徵點上調到5000後,就不用交稅了。

 

python3 tax.py 10000 old: 745.0, new: 445.0

每月10000元的工資,以前要交745元的個稅,現在只要445元,比原先少交300元。

 

python3 tax.py 20000 old: 3120.0, new: 2745.0

每月20000元的工資,以前要交3120元的個稅,現在交2745元,比原先少交375元。

 

python3 tax.py 50000 old: 11195.0, new: 10745.0

每月50000元的工資,以前要交11195元的個稅,現在交10745元,比原先少交450元。

 

python3 tax.py 100000 old: 29920.0, new: 29245.0

每月10萬元的工資,以前要交29920元的個稅,現在交29245元,比原先少交675元。

大家可以複製一下程式碼,算算自己可以少交多少稅。