手把手教你用Python写一个属于自己的工资计算器

📅 2026-08-05 👍 0点赞 💬 0 条评论

每个月发工资的时候,你是不是也经常对着密密麻麻的工资条发懵?基本工资多少、加班费怎么算、扣了哪些钱……今天我就带大家用Python写一个简单实用的工资计算器,你只需要填入各项数据,就能自动算出实发工资!

一、准备工作

首先确保你的电脑安装了Python(推荐3.6以上版本)。不需要任何第三方库,纯内置模块就能搞定。

打开任意文本编辑器或IDE(比如PyCharm、VS Code),新建一个文件,命名为salary_calculator.py。

二、设计工资计算逻辑

一个完整的工资条通常包含以下几部分:

应发项目:

  • 基本工资
  • 平时加班(1.5倍工资)
  • 周末加班(2倍工资)
  • 节假日加班(3倍工资)
  • 各类补助(餐补、交通补、住房补等)
  • 扣除项目:
  • 社保(养老保险、医疗保险、失业保险)
  • 住房公积金
  • 个人所得税
  • 缺勤扣款
  • 其他扣款(如罚款、借款等)
  • 计算公式很简单:
实发工资 = 应发总额 - 扣除总额

三、编写核心代码

第一步:创建数据输入函数

def get_float_input(prompt):
    """获取用户输入的浮点数,处理异常"""
    while True:
        try:
            value = input(prompt)
            if value.strip() == '':
                return 0.0
            return float(value)
        except ValueError:
            print("请输入有效的数字!")

第二步:计算加班费

假设你的月基本工资为8000元,每月按21.75个工作日计算,每天工作8小时:

def calculate_overtime_pay(base_salary, hours_15x, hours_20x, hours_30x):
    """
    计算加班费
    :param base_salary: 基本工资
    :param hours_15x: 1.5倍加班小时数
    :param hours_20x: 2倍加班小时数
    :param hours_30x: 3倍加班小时数
    :return: 加班费总额
    """
    # 每小时工资 = 基本工资 / 21.75天 / 8小时
    hourly_wage = base_salary / 21.75 / 8
    
    pay_15x = hourly_wage * 1.5 * hours_15x
    pay_20x = hourly_wage * 2.0 * hours_20x
    pay_30x = hourly_wage * 3.0 * hours_30x
    
    return pay_15x + pay_20x + pay_30x

第三步:计算个税

根据2024年个税政策,起征点为5000元,采用累进税率:

def calculate_tax(taxable_income):
    """
    计算个人所得税(简化版)
    :param taxable_income: 应纳税所得额
    :return: 个税金额
    """
    if taxable_income <= 0:
        return 0
    
    # 税率表(月度)
    tax_table = [
        (3000, 0.03, 0),
        (12000, 0.10, 210),
        (25000, 0.20, 1410),
        (35000, 0.25, 2660),
        (55000, 0.30, 4410),
        (80000, 0.35, 7160),
        (float('inf'), 0.45, 15160)
    ]
    
    for limit, rate, deduction in tax_table:
        if taxable_income <= limit:
            return taxable_income * rate - deduction
    
    return 0

第四步:主程序

def main():
    print("="*50)
    print("         欢迎使用个人工资计算器")
    print("="*50)
    
    # 输入基本信息
    print("\n【基本信息】")
    base_salary = get_float_input("请输入基本工资(元):")
    
    # 输入加班小时数
    print("\n【加班信息】(没有则直接回车跳过)")
    hours_15x = get_float_input("平时加班(1.5倍)小时数:")
    hours_20x = get_float_input("周末加班(2倍)小时数:")
    hours_30x = get_float_input("节假日加班(3倍)小时数:")
    
    # 输入各项补助
    print("\n【补助信息】(没有则直接回车跳过)")
    meal_allowance = get_float_input("餐补(元):")
    transport_allowance = get_float_input("交通补贴(元):")
    housing_allowance = get_float_input("住房补贴(元):")
    other_allowance = get_float_input("其他补助(元):")
    
    # 输入扣除项
    print("\n【扣除信息】(没有则直接回车跳过)")
    social_security = get_float_input("社保(养老+医疗+失业,元):")
    housing_fund = get_float_input("住房公积金(元):")
    absence_deduction = get_float_input("缺勤扣款(元):")
    other_deductions = get_float_input("其他扣款(元):")
    
    # 计算各项金额
    overtime_pay = calculate_overtime_pay(base_salary, hours_15x, hours_20x, hours_30x)
    total_allowances = meal_allowance + transport_allowance + housing_allowance + other_allowance
    total_deductions_before_tax = social_security + housing_fund + absence_deduction + other_deductions
    
    # 应纳税所得额 = 基本工资 + 加班费 + 补助 - 社保 - 公积金 - 5000(起征点)
    gross_income = base_salary + overtime_pay + total_allowances
    taxable_income = gross_income - social_security - housing_fund - 5000
    tax = calculate_tax(taxable_income)
    
    # 实发工资
    net_salary = gross_income - total_deductions_before_tax - tax
    
    # 输出结果
    print("\n" + "="*50)
    print("                工资明细")
    print("="*50)
    print(f"基本工资:          {base_salary:>8.2f} 元")
    print(f"加班费合计:        {overtime_pay:>8.2f} 元")
    print(f"  其中:1.5倍加班   {calculate_overtime_pay(base_salary, hours_15x, 0, 0):>8.2f} 元")
    print(f"        2倍加班     {calculate_overtime_pay(base_salary, 0, hours_20x, 0):>8.2f} 元")
    print(f"        3倍加班     {calculate_overtime_pay(base_salary, 0, 0, hours_30x):>8.2f} 元")
    print(f"补助合计:          {total_allowances:>8.2f} 元")
    print(f"  其中:餐补        {meal_allowance:>8.2f} 元")
    print(f"        交通补贴    {transport_allowance:>8.2f} 元")
    print(f"        住房补贴    {housing_allowance:>8.2f} 元")
    print(f"        其他补助    {other_allowance:>8.2f} 元")
    print("-"*50)
    print(f"应发总额:          {gross_income:>8.2f} 元")
    print("-"*50)
    print(f"社保:              {social_security:>8.2f} 元")
    print(f"住房公积金:        {housing_fund:>8.2f} 元")
    print(f"缺勤扣款:          {absence_deduction:>8.2f} 元")
    print(f"其他扣款:          {other_deductions:>8.2f} 元")
    print(f"个人所得税:        {tax:>8.2f} 元")
    print("-"*50)
    print(f"扣除合计:          {total_deductions_before_tax + tax:>8.2f} 元")
    print("="*50)
    print(f"💰 实发工资:       {net_salary:>8.2f} 元")
    print("="*50)

if __name__ == "__main__":
    main()

四、运行效果演示

当你运行这个程序,会看到如下交互界面:

==================================================
         欢迎使用个人工资计算器
==================================================

【基本信息】
请输入基本工资(元):8000

【加班信息】(没有则直接回车跳过)
平时加班(1.5倍)小时数:20
周末加班(2倍)小时数:16
节假日加班(3倍)小时数:8

【补助信息】(没有则直接回车跳过)
餐补(元):300
交通补贴(元):200
住房补贴(元):500
其他补助(元):

【扣除信息】(没有则直接回车跳过)
社保(养老+医疗+失业,元):840
住房公积金(元):960
缺勤扣款(元):
其他扣款(元):

==================================================
                工资明细
==================================================
基本工资:            8000.00 元
加班费合计:          4609.19 元
  其中:1.5倍加班    1379.31 元
        2倍加班      1471.26 元
        3倍加班      1103.44 元
补助合计:            1000.00 元
  其中:餐补           300.00 元
        交通补贴       200.00 元
        住房补贴       500.00 元
        其他补助         0.00 元
--------------------------------------------------
应发总额:           13609.19 元
--------------------------------------------------
社保:                840.00 元
住房公积金:          960.00 元
缺勤扣款:              0.00 元
其他扣款:              0.00 元
个人所得税:          220.92 元
--------------------------------------------------
扣除合计:            2020.92 元
==================================================
💰 实发工资:        11588.27 元
==================================================

五、进阶优化建议

  1. 保存历史记录:可以将每次计算结果保存到CSV文件中,方便对比不同月份工资变化
  2. 图形化界面:使用tkinter库制作GUI界面,操作更直观
  3. 配置文件:将社保比例、公积金比例等参数放到配置文件中,便于调整
  4. 批量计算:支持导入Excel表格,一次性计算多人工资

六、注意事项

  • 本工具计算的个税为简化版,实际个税还需考虑专项附加扣除(子女教育、房贷利息等)
  • 不同地区的社保公积金比例不同,请根据实际情况填写
  • 加班费计算方式可能因公司规定有所不同,建议以公司制度为准

现在就把这份代码复制到你的电脑上试试吧!以后每个月发工资前,自己先算一遍,再也不用担心被算错钱了。如果你有任何改进想法,欢迎继续完善它!

💬 评论列表 (0)

暂无评论,快来抢沙发吧!

发表评论

×