任务:模拟个人月实发工资计算。假定:
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)