求解答py代码。,。,

任务:模拟个人月实发工资计算。假定:
1)请假只扣除对应请假天数工资;
2)每月标准工资固定,每天工资由月工资与当前月自然天数平均得到;
3)个税计算方式与综合测试1的假设相同
综合测试1:编写程序模拟收入税计算。假定:
1)所有纳税人采用固定税率20%交税;
2)所有纳税人允许5000元的标准扣除额;
3)每个纳税人对每个被抚养人有1000元附加扣除额;
4)总收入和所得税最小单位为分。

py怎写

看一下这个,记得采纳哦


def calculate_daily_wage(standard_wage, natural_days):  
    return standard_wage / natural_days  
  
def calculate_tax(income):  
    standard_deduction = 5000  
    tax_rate = 0.2  
    taxable_income = income - standard_deduction  
    if taxable_income <= 0:  
        return 0  
    else:  
        return taxable_income * tax_rate  
  
def calculate_net_pay(standard_wage, natural_days, leave_days):  
    daily_wage = calculate_daily_wage(standard_wage, natural_days)  
    gross_pay = daily_wage * (natural_days - leave_days)  
    tax = calculate_tax(gross_pay)  
    net_pay = gross_pay - tax  
    return net_pay  
  
# 输入月标准工资、月自然天数、请假天数,计算月实发工资  
standard_wage = float(input("请输入月标准工资:"))  
natural_days = int(input("请输入月自然天数:"))  
leave_days = int(input("请输入请假天数:"))  
net_pay = calculate_net_pay(standard_wage, natural_days, leave_days)  
print("月实发工资为:{:.2f}元".format(net_pay))

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
首先,我们需要定义一个函数来计算每天的工资。然后,我们需要定义一个函数来计算个税。最后,我们将这两个函数结合起来,计算个人月实发工资。

def daily_wage(monthly_salary, days):
    return monthly_salary / 30 / days

def tax(income, standard_deduction, additional_deduction, tax_rate):
    taxable_income = income - standard_deduction - additional_deduction
    if taxable_income <= 5000:
        tax_amount = taxable_income * tax_rate
    else:
        tax_rate = 0.2 + (taxable_income - 5000) * 0.03
        tax_amount = taxable_income * tax_rate
    return tax_amount

def net_salary(monthly_salary, days, sick_leave_days=0):
    daily_wage_amount = daily_wage(monthly_salary, days)
    total_wage = daily_wage_amount * days + sick_leave_days * daily_wage(monthly_salary, sick_leave_days)
    tax_amount = tax(total_wage, 5000, 1000, 0.2)
    net_salary = total_wage - tax_amount
    return round(net_salary, 2)

# 示例:假设每月工资为8000元,本月工作22天,请假4天
monthly_salary = 8000
days = 22 + 4  # 包括请假天数
sick_leave_days = 4

net_salary = net_salary(monthly_salary, days, sick_leave_days)
print("个人月实发工资为:", net_salary, "元")

这段代码首先定义了计算每天工资的函数daily_wage,然后定义了计算个税的函数tax。最后,我们定义了一个函数net_salary,将这两个函数结合起来,计算个人月实发工资。在示例中,我们假设每月工资为8000元,本月工作22天,请假4天,通过调用net_salary函数计算出个人月实发工资。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

【以下回答由 GPT 生成】

def calculate_salary(monthly_salary, leave_days, dependent_count):
    # 计算每天的工资
    total_days = 30 # 假设每个月30天
    day_salary = monthly_salary / total_days

    # 根据请假天数扣除工资
    leave_salary = leave_days * day_salary
    actual_salary = monthly_salary - leave_salary

    # 计算应纳税所得额
    taxable_income = actual_salary - 5000 - dependent_count * 1000

    # 计算个人所得税
    tax_rate = 0.2
    income_tax = taxable_income * tax_rate

    # 计算实发工资
    net_salary = actual_salary - income_tax

    return net_salary

# 示例调用
monthly_salary = 10000
leave_days = 2
dependent_count = 2

net_salary = calculate_salary(monthly_salary, leave_days, dependent_count)
print("个人月实发工资:", net_salary)

运行示例代码,人月实发工资为9570元。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

用calendar模块计算当月实际天数。总工资和记税保留到分。具体计算是四舍五入、向上取整、向下取整,这里只能示例,按实际需求改写。

import calendar
import math

def calculate_wage(monthly_wage, leave_days, dependent_count, year, month):
    '''
        monthly_wage: 基本工资
        leave_days: 请假天数
        dependent_count: 被抚养人数
        year: 年
        month: 月
    '''
    # 当月天数
    days = calendar.monthrange(2023,8)[1]
    # 每天工资
    day_wage = float(monthly_wage) / days
    # 扣除请假后的实际工资, 这里向下取整到分
    actual_wage = monthly_wage - leave_days * day_wage
    actual_wage = math.floor(actual_wage * 100) / 100.0
    # 应税收入
    taxable_income = actual_wage - 5000 - dependent_count * 1000
    # 计算个人所得税
    tax_rate = 0.2
    if taxable_income > 0:
        income_tax = taxable_income * tax_rate
    else:
        income_tax = 0.0
    income_tax = math.ceil(income_tax * 100) / 100.0
    # 计算实发工资
    net_wage = actual_wage - income_tax

    return net_wage

# 示例调用
monthly_wage = 10000
leave_days = 2
dependent_count = 2
year = 2023
month = 8

net_wage = calculate_wage(monthly_wage, leave_days, dependent_count, year, month)
print("个人月实发工资:", net_wage)