用python實現個稅計算機

來源:互聯網
上載者:User

標籤:home   無法   令行   縮排   bsp   body   本地   The   類型   

  介紹

我們開發了一個個稅計算機,輸入工資後,列印應繳納的個稅。

個稅計算公式:

  1. 應納稅所得額 = 工資金額 - 各項社會保險費 - 起征點(3500元)
  2. 應納稅額 = 應納稅所得額 × 稅率 - 速算扣除數

其中各項社會保險費我們在本程式中設定為0即可,不用考慮。

稅率及速算扣除數對應表:

應納稅所得額 稅率 速算扣除數(元)
不超過 1500 元 3% 0
超過 1500 元至 4500 元 10% 105
超過 4500 元至 9000 元 20% 555
超過 9000 元至 35000 元 25% 1005
超過 35000 元至 55000 元 30% 2755
超過 55000 元至 80000 元 35% 5505
超過 80000 元 45% 13505

例如工資金額為 5000,那麼應納稅所得額為 1500(5000-3500),應納稅額為 45 元(1500 * 3% - 0)。

程式使用 Python3 運行,執行過程如下

需要注意,程式執行的參數只有一個,並且參數為工資金額,需要為整數,如果參數數量不準確或者無法轉成整數,需要列印下面這一行的錯誤資訊:

目標

完成任務需要達成的目標:

  1. 程式存放的位置 /home/shiyanlou/calculator.py
  2. 程式執行的第一個參數為工資金額,即程式執行方式為 ./calculator.py 3500
  3. 程式返回的數字保留兩位小數,如果是整數,仍然需要保留xxx.00 這種形式。
提示
  1. 將參數轉成整數可以使用 int() ,如果不能正確轉成整數(例如 int(‘abcd‘)),需要處理異常並列印上面的錯誤資訊。
  2. 輸出保留兩位小數可以使用字串的 format 函數格式化,例如 format(1.2345, ".2f") 得到的就是有兩位小數的字串 ‘1.23‘
  3. 命令列參數擷取方法是使用 sys 模組的 sys.argv不要使用 input() 擷取輸入,其中 sys.argv[0] 為指令碼名稱, sys.argv[1] 為第一個參數,樣本:

最後,因為後續的挑戰將會用到現在寫的代碼,請使用 下載代碼 儲存到本地或者提交到自己的 Github。

注意
  1. try except 判斷異常的時候只需要包含可能出現異常的代碼,比如將輸入的字串轉換成 int 的時候,不需要包含所有的代碼
  2. Python 中對每行的縮排要求嚴格,務必不要TAB與空格混用,建議使用空格來進行縮排,縮排使用4個空格。
知識點
  • Python3 程式開發
  • 變數與資料類型
  • 輸出
  • 命令列參數
  • 運算
  • 字串
  • 控制結構
  • 異常處理
import sysdef calculator():    try:        a = int(sys.argv[1])        salary = a - 3500        if salary > 80000:            cal_salary = salary * 0.45 - 13504        elif salary > 55000:            cal_salary = salary * 0.35 - 5505        elif salary > 35000:            cal_salary = salary * 0.3 - 2755        elif salary > 9000:            cal_salary = salary * 0.25 - 1005        elif salary > 4500:            cal_salary = salary * 0.2 - 555        elif salary > 1500:            cal_salary = salary * 0.1 - 105        else:            cal_salary = salary * 0.03        print("{:.2f}".format(cal_salary))    except:        print("Parameter Error")calculator()

 

用python實現個稅計算機

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.