python實例: 稅率計算

直接上源碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*


class tax(object):
    '''
    Get the tax you want to know胆屿!
    '''   
    
    def init_input(self):
    
        while True:        
            try:
                print '*'*60
                input1 = raw_input("Your pretax salary (month):\n")
                if float(input1)>0:
                    self.pretax = float(input1)
                    #print "*"*40
                    break
                else:
                    print "The pretax salary must large than zero"
                    continue            
            except (ValueError,TypeError):            
                print "Your input is not right!"
    
        while True:          
            try:                
                input2 = raw_input("The base salary for insurance:")
            
                if input2=='':
                    self.ins_base = self.pretax
                    print self.ins_base
                    break
                else:
                    if float(input2)>0:
                        self.ins_base = float(input2)
                        #print "*"*40
                        break        
                    else:
                        print "The base salary for insurance must large than zero"
                        continue 
            except (ValueError,TypeError):            
                print "Your input is not right!"

        while True:          
            try:                
                input3 = raw_input("The base salary for housing found:")
            
                if input3=='':
                    self.hf_base = self.pretax
                    print self.hf_base
                    print "*"*40
                    break
                elif input1 == 'exit':
                    break
                else:
                    if float(input3)>0:
                        self.hf_base = float(input3)
                        print "*"*40
                        break
                    else:
                        print "The base salary for housing found must large than zero"
                        continue 
            except (ValueError,TypeError):            
                print "Your input is not right!"

    def insurance(self):
        self.ins_UP = 15669     #五險最大基數(shù)        
        self.endowment_ins = max([min([self.ins_base,self.ins_UP]),2089])*0.08    #養(yǎng)老保險
        self.medical_ins = max([min([self.ins_base,self.ins_UP]),3134])*0.02+3    #醫(yī)療保險
        self. unemployment_ins = max([min([self.ins_base,self.ins_UP]),2089])*0.005    #失業(yè)保險
        self.injury_ins = 0    #工傷保險
        self.maternity_ins = 0    #生育保險
        self.sum_ins = self.endowment_ins + self.medical_ins + self.unemployment_ins + self.injury_ins + self.maternity_ins   
        return self.sum_ins

    def housingFound(self):
        self.hf_UP = 21258
        self.sum_hf = min([self.hf_base,self.hf_UP])*0.12
        return self.sum_hf
    
    def tax(self):
        self.threshold = 3500
        #self.threshold = 4800
        self.tax_base = self.pretax-self.sum_ins-self.sum_hf-self.threshold
        if self.tax_base<=0:
            self.tax = 0
        elif self.tax_base>0 and self.tax_base<=1500:
            self.tax = self.tax_base*0.03
        elif self.tax_base>1500 and self.tax_base<=4500:
            self.tax = self.tax_base*0.1-105
        elif self.tax_base>4500 and self.tax_base<=9000:
            self.tax = self.tax_base*0.2-505
        elif self.tax_base>9000 and self.tax_base<=35000:
            self.tax = self.tax_base*0.25-1005
        elif self.tax_base>35000 and self.tax_base<=55000:
            self.tax = self.tax_base*0.3-2755
        elif self.tax_base>55000 and self.tax_base<=80000:
            self.tax = self.tax_base*0.35-5505
        elif self.tax_base>80000 :
            self.tax = self.tax_base*0.45-13505
        return self.tax
    
    def afterTax(self):
        self.after_tax = self.pretax-self.sum_ins-self.sum_hf-self.tax 
        return self.after_tax
    
    def companyPay(self):
        self.comp_UP = 15669     #五險最大基數(shù) 
        self.endowment_comp = max([min([self.ins_base,self.comp_UP]),2089])*0.2    #養(yǎng)老保險
        self.medical_comp = max([min([self.ins_base,self.comp_UP]),3134])*0.1   #醫(yī)療保險
        self. unemployment_comp = max([min([self.ins_base,self.comp_UP]),2089])*0.01    #失業(yè)保險
        self.injury_comp = max([min([self.ins_base,self.comp_UP]),3134])*0.005    #工傷保險
        self.maternity_comp = max([min([self.ins_base,self.comp_UP]),3134])*0.008    #生育保險
        self.sum_comp = self.endowment_comp + self.medical_comp + self.unemployment_comp + self.injury_comp + self.maternity_comp   
        self.companyPay = self.sum_hf+self.sum_comp+self.pretax
        return self.companyPay
    
def main():
    while True:
        
        mytax = tax()
        mytax.init_input()
        insuranceU = mytax.insurance()
        hfU = mytax.housingFound()
        taxU = mytax.tax()
        after_taxU = mytax.afterTax()
        companyPayU = mytax.companyPay()
    
        print "-"*8
        print "person:"
        print "-"*8
        print "%25s: %-10.2f" %('salary',mytax.pretax)
        #print "%15s: %-10.2f" %('insurance',insuranceU)
        print "%25s: %-10.2f" %('endowment insurance',mytax.endowment_ins)
        print "%25s: %-10.2f" %('medical insurance',mytax.medical_ins)
        print "%25s: %-10.2f" %('unemployment insurance',mytax.unemployment_ins)
        print "%25s: %-10.2f" %('injury insurance',mytax.injury_ins)
        print "%25s: %-10.2f" %('maternity insurance',mytax.maternity_ins)
        print "%25s: %-10.2f" %('housing found',hfU)
        print "%25s: %-10.2f" %('tax',taxU)
        print "%25s: %-10.2f" %('after tax',after_taxU)
        print "-"*8
        print "company:"
        print "-"*8
        print "%25s: %-10.2f" %('companyPay',companyPayU)
        print "%25s: %-10.2f" %('salary',mytax.pretax)
        #print "%25s: %-10.2f" %('insurance',mytax.sum_comp)
        print "%25s: %-10.2f" %('endowment insurance',mytax.endowment_comp)
        print "%25s: %-10.2f" %('medical insurance',mytax.medical_comp)
        print "%25s: %-10.2f" %('unemployment insurance',mytax.unemployment_comp)
        print "%25s: %-10.2f" %('injury insurance',mytax.injury_comp)
        print "%25s: %-10.2f" %('maternity insurance',mytax.maternity_comp)
        print "%25s: %-10.2f" %('housing found',hfU)

if __name__ == '__main__':
    main()

運行結(jié)果 :


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市徙垫,隨后出現(xiàn)的幾起案子默赂,更是在濱河造成了極大的恐慌恋拷,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異疟赊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)峡碉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進(jìn)店門近哟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鲫寄,你說我怎么就攤上這事吉执。” “怎么了地来?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵鼠证,是天一觀的道長。 經(jīng)常有香客問我靠抑,道長,這世上最難降的妖魔是什么适掰? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任颂碧,我火速辦了婚禮,結(jié)果婚禮上类浪,老公的妹妹穿的比我還像新娘载城。我一直安慰自己,他們只是感情好费就,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布诉瓦。 她就那樣靜靜地躺著,像睡著了一般力细。 火紅的嫁衣襯著肌膚如雪睬澡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天眠蚂,我揣著相機(jī)與錄音煞聪,去河邊找鬼。 笑死逝慧,一個胖子當(dāng)著我的面吹牛昔脯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播笛臣,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼云稚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沈堡?” 一聲冷哼從身側(cè)響起静陈,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎诞丽,沒想到半個月后窿给,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贵白,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年崩泡,在試婚紗的時候發(fā)現(xiàn)自己被綠了禁荒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡角撞,死狀恐怖呛伴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情谒所,我是刑警寧澤热康,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站劣领,受9級特大地震影響姐军,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尖淘,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一奕锌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧村生,春花似錦惊暴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至卫病,卻和暖如春油啤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蟀苛。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工村砂, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人屹逛。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓础废,卻偏偏與公主長得像,于是被迫代替她去往敵國和親罕模。 傳聞我的和親對象是個殘疾皇子评腺,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

推薦閱讀更多精彩內(nèi)容