发工资-python

题目要求:
在这里插入图片描述
代码:

import random
from random import randint

money = 10000
for i in range(1, 21):
    performance = randint(1, 10)
    if performance < 5:
        print(f"员工{i},绩效分{performance},低于5,不发工资,下一位")
        continue
    if money >= 1000:
        money -= 1000
        print(f"向员工{i}发放工资1000元,账户余额还剩余{money}元")
    else:
        print(f"余额还有{money},不够了,下个月领取吧")
        break

运行截图:
在这里插入图片描述

### 使用Python编写工资计算和发放程序 为了实现薪资发放的功能,可以从几个方面入手:读取财务文件中的员工数据、根据特定规则计算每位员工的应得工资以及保存这些信息。这里提供一种基于给定逻辑框架下的解决方案。 #### 数据准备阶段 假设有一个CSV文件包含了所有必要的员工信息(如基本工资、工作小时数等),可以通过`pandas`库轻松加载并处理这类表格型的数据集[^1]。 ```python import pandas as pd # 假设 'salary_data.csv' 是存储有员工基本信息的工作表路径 data = pd.read_csv('salary_data.csv') ``` #### 工资计算模块 接下来定义一个函数来执行具体的工资核算任务。考虑到可能存在多种类型的收入组成部分(比如固定月薪加上绩效奖金),可以根据实际情况调整算法细节。对于简单的案例来说,可能只需要考虑基础薪金再加上按比例分配的额外奖励即可[^3]。 ```python def calculate_salary(base_salary, profit=None): """ 计算总薪水 参数: base_salary -- 浮点数表示的基础薪酬金额 profit -- 可选参数;整数值代表公司当前期间获得的净收益,默认为None意味着不涉及业绩挂钩部分 返回值: float 类型的结果作为最终确定下来的应付总额 """ total_salary = base_salary # 初始化默认只包含底薪的情况 if profit is not None and isinstance(profit, int): arr = [1_000_000, 600_000, 400_000, 200_000, 100_000, 0] rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] remaining_profit = max(0, min(profit, sum(arr))) # 防止超出范围 for idx in range(len(arr)): segment_amount = min(remaining_profit - arr[idx], 0) if segment_amount > 0: bonus = abs(segment_amount * rat[idx]) print(f"Segment {idx}: Bonus={bonus:.2f}") total_salary += bonus remaining_profit -= abs(segment_amount) return round(total_salary, 2) ``` 上述代码片段展示了如何根据不同层次的企业盈利状况给予相应的激励措施,并将其加入到总的支付额当中去。 #### 结果输出与记录存档 完成每一轮次的运算之后,应当及时更新数据库或Excel文档内的最新状态以便日后查询核对。这一步骤同样依赖于第三方扩展包的帮助,例如利用`openpyxl`操作xlsx格式电子表格或是调用SQLAlchemy连接关系型数据库系统来进行持久化的管理。 ```python from openpyxl import Workbook wb = Workbook() ws = wb.active for index, row in data.iterrows(): employee_id = row['Employee ID'] name = row['Name'] hours_worked = row.get('Hours Worked', 0) calculated_salary = calculate_salary(row['Base Salary'], row.get('Profit')) ws.append([employee_id, name, f"${calculated_salary}"]) wb.save("updated_salaries.xlsx") ``` 以上即是一个完整的流程概述,在实际应用过程中还需要进一步完善异常捕获机制以增强健壮性和安全性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值