個稅起徵點上調至5000,用Python算一算少交多少稅
阿新 • • 發佈:2018-11-02
今天出了一個重磅訊息,個稅起徵點從3500上調到5000啦!
廣大IT農民工的生活壓力又減輕了一些,有沒有
晚上加一個雞腿,要不要~
開心歸開心,我們來用Python算一算,新的規則下,我們需要交多少稅,比原先少交多少稅。
下面的這張表是稅率表,這是對超過免徵額部分的收入徵收的稅率
我們用Python來寫兩個程式,一個計算舊的工資所得稅,一個計算新的工資所得稅。
下面的函式old_tax用來計算舊的所得稅
import sys import bisect
def old_tax(salary):
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)
return tax
下面的函式new_tax用來計算新的所得稅
def new_tax(salary): if
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元。
大家可以複製一下程式碼,算算自己可以少交多少稅。