挑战1:实现个税计算器

介绍

我们开发了一个个税计算器,输入工资后,打印应缴纳的个税。

个税计算公式:

  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 运行,执行过程如下:

$ cd /home/shiyanlou
$ ./calculator.py 3500
0.00
$ ./calculator.py 5000
45.00
$ ./calculator.py 15000
1870.00

需要注意,程序执行的参数只有一个,并且参数为工资金额,需要为整数,如果参数数量不准确或者无法转成整数,需要打印下面这一行的错误信息:

print("Parameter Error")

注意工资数额是作为命令行程序的参数的,不要使用 input 获取输入信息,否则挑战提交结果时会超时。

目标

完成任务需要达成的目标:

  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] 为第一个参数,示例:
import sys
print(sys.argv)

最后,因为后续的挑战将会用到现在写的代码,请使用 下载代码 保存到本地或者提交到自己的 Github。

注意

  1. try except 判断异常的时候只需要包含可能出现异常的代码,比如将输入的字符串转换成 int 的时候,不需要包含所有的代码
  2. Python 中对每行的缩进要求严格,务必不要TAB与空格混用,建议使用空格来进行缩进,缩进使用4个空格。

知识点

  • Python3 程序开发
  • 变量与数据类型
  • 输出
  • 命令行参数
  • 运算
  • 字符串
  • 控制结构
  • 异常处理

results matching ""

    No results matching ""