7-5 个税计算器

目前我国个人所得税计算公式如下:

 应纳个人所得税税额= 应纳税所得额× 适用税率- 速算扣除数

 应纳税所得额为应发工资税前扣除三险一金的金额,个税免征额为3500元/月,2011年9月1日起调整后,也就是2012年实行的7级超额累进个人所得税税率表如下:

全月应纳税所得额(含税级距)   税率(%)   速算扣除数
不超过1,500元                  3              0
超过1,500元至4,500元的部分     10           105
超过4,500元至9,000元的部分     20           555
超过9,000元至35,000元的部分    25         1,005
超过35,000元至55,000元的部分   30         2,755
超过55,000元至80,000元的部分   35         5,505
超过80,000元的部分             45        13,505

请编写一个个税计算器,用户输入为应发工资税前扣除三险一金的金额,输出应缴税款和实发工资,结果保留小数点后两位。

输入格式:

输入一个数字,如:90000

输出格式:

应缴税款25420.00元,实发工资64580.00元。

输入样例1:

3000

输出样例1:

应缴税款0.00元,实发工资3000.00元。

输入样例2:

9000

输出样例2:

应缴税款545.00元,实发工资8455.00元。
def calculate_tax(income):
    # 定义税率表
    tax_table = [
        (1500, 0.03, 0),
        (4500, 0.10, 105),
        (9000, 0.20, 555),
        (35000, 0.25, 1005),
        (55000, 0.30, 2755),
        (80000, 0.35, 5505),
        (float('inf'), 0.45, 13505)
    ]

    # 计算应纳税所得额
    taxable_income = income - 3500

    # 判断应纳税所得额属于税率表中的哪个级距
    for level in tax_table:
        if taxable_income <= level[0]:
            tax = taxable_income * level[1] - level[2]
            break

    # 计算实发工资
    salary_after_tax = income - tax

    return tax, salary_after_tax


# 用户输入应发工资金额
income = float(input("请输入应发工资金额:"))

# 调用计算函数并格式化输出结果
tax_payable, net_salary = calculate_tax(income)
print("应缴税款{:.2f}元,实发工资{:.2f}元。".format(tax_payable, net_salary))

以上代码答案出错,改正过后 

def calculate_income_tax(income):
    tax_levels = [
        (1500, 3, 0),
        (4500, 10, 105),
        (9000, 20, 555),
        (35000, 25, 1005),
        (55000, 30, 2755),
        (80000, 35, 5505),
        (float('inf'), 45, 13505)
    ]

    taxable_income = income - 3500  # 扣除个税免征额

    if taxable_income <= 0:
        tax = 0
    else:
        for level in tax_levels:
            if taxable_income <= level[0]:
                tax = taxable_income * level[1] / 100 - level[2]
                break

    tax = max(0, tax) 
    after_tax_income = income - tax

    return tax, after_tax_income

salary = float(input())

tax_payable, net_salary = calculate_income_tax(salary)

print("应缴税款{:.2f}元,实发工资{:.2f}元。".format(tax_payable, net_salary))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值