【练习6】格式化输出员工姓名、薪资及扣税明细
现有文件1(如下,请保存到文件file1.txt中), 记录了公司员工的薪资,其内容格式如下
name: Jack ; salary: 12000
name :Mike ; salary: 12300
name: Luk ; salary: 10030
name :Tim ; salary: 9000
name: John ; salary: 12000
name: Lisa ; salary: 11000
每个员工一行,记录了员工的姓名和薪资,
每行记录 原始文件中并不对齐,中间有或多或少的空格
现要求实现一个python程序,计算出所有员工的税后工资(薪资的90%)和扣税明细,
以如下格式存入新的文件 file2.txt中,如下所示
要求像上面一样的对齐
tax 表示扣税金额和 income表示实际收入。注意扣税金额和 实际收入要取整数
题目分析
- 去掉多余空格,提取name、salary,计算tax、income
- 按照目标样式,循环写入新文件
- 最后打印读取文件的内容
def get_salaryDetails(fileName1,fileName2):with open(fileName1,'r+',encoding='UTF-8') as f1,open(fileName2,'w+',encoding='UTF-8') as f2:salaryDetails = f1.read().split('\n')for one in salaryDetails:name,salary=one.split(';')name = name.split(':')[-1].strip(' ')salary = salary.split(':')[-1].strip(' ')f2.write(f'name:{name:7}; salary:{salary:7}; tax:{int(int(salary)*0.1):5}; income:{int(int(salary)*0.9):7}\n')get_salaryDetails('D:/file1.txt','D:/file2.txt')
执行结果:
name: Jack ; salary: 12000 ; tax: 1200 ; income: 10800
name: Mike ; salary: 12300 ; tax: 1230 ; income: 11070
name: Luk ; salary: 10030 ; tax: 1003 ; income: 9027
name: Tim ; salary: 9000 ; tax: 900 ; income: 8100
name: John ; salary: 12000 ; tax: 1200 ; income: 10800
name: Lisa ; salary: 11000 ; tax: 1100 ; income: 9900
新文件file2.txt:
【练习6】格式化输出员工姓名、薪资及扣税明细相关推荐
- 要求输入一个企业员工的姓名,性别,工号,月基本工资,奖金补贴后,计算个人所得税。系统输出员工姓名,性别,工号,和月应发薪水和实发薪水(月应发薪水-个人所得税)
要求输入一个企业员工的姓名,性别,工号,月基本工资,奖金补贴后,计算个人所得税.系统输出员工姓名,性别,工号,和月应发薪水和实发薪水(月应发薪水-个人所得税) 个人所得税计算方法:当收入<=35 ...
- C#某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性;并有一个虚方法(CalSalary)用于计算并输出员工的总薪金。
.某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性:并有一个虚方法(CalSalary)用于计算并输出员工的总薪金. 对不同的员工, ...
- python输出姓名年龄_Python格式化输出--%s,%d,%f的代码解析
String(字符型)–%s integer(整形)–%d float(浮点型)–%f 实例 我们需要输出一个人的信息 代码: #coding=utf-8 #输出一个人的基本信息:姓名:%s 爱好:% ...
- Python 实验题目:字符串格式化输出内容为:姓名:张三,学号:1101,张三的平均分为90.65分。(平均分的原始值为:90.6497)
实验题目:字符串格式化输出内容为:姓名:张三,学号:1101,张三的平均分为90.65分.(平均分的原始值为:90.6497) 用以下四种方法实现: (1)通过位置参数 (2)通过关键字参数名称 (3 ...
- Java初学者作业——编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名。
返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名. 实现思路: (1)定义字符串类型的数组names,长度为6,用于存储六 ...
- python语言format蔬菜姓名、年龄_python格式化输出的三种方式
[TOC] 格式化输出的三种方式 一.占位符(第一种格式化输出 )(3.0版本使用) 程序中经常会出现这样的 场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格 ...
- 常量与格式化输出练习
简述Python的五大数据类型的作用.定义方式.使用方法: 数字类型 整型:作用,描述年龄id号,定义方式,aeg=int(18),使用方法,加减运算等 浮点型:作用,描述薪资等,定义方式,salar ...
- python - 字符串的格式化输出
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...
- 浅谈format格式化输出
什么是format? 相对于基本格式化输出采用"%"的方法,format的功能强大,该函数把字符串当一个模板,通过传入的参数进行格式化,并且使用大括号"{}"作 ...
最新文章
- MySQL中如何修改表
- springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现
- 11月25日struts培训日记
- 面试题 17.14. 最小K个数
- javascript脚本语言_10分钟快速掌握Javascript核心特性
- location.replace与location.href,location.reload的区别
- 网信办:今年3月全国受理网络违法和不良信息举报1258.6万件
- Nginx学习总结(3)——Nginx配置及应用场景之高级配置
- 选择文件夹里指定文件图片路径_这简直是鼠标一拖,自动帮你整理好文件
- Android FrameLayout 帧布局
- [UE4]委托代理:单播委托,多播委托,动态单播委托,动态多播委托,事件
- 团队建设(Team building)就是等于组织大家一起吃饭娱乐吗?
- cesium调整倾斜摄影位置(高度,平移,旋转,缩放)(cesium篇.17)
- 乔布斯全新采访曝光:吐槽微软,回应争议,还要把Mac扔出窗外,然而…
- 计算机网络里的DHCP是什么,路由器设置中的dhcp是什么意思?
- 【机器学习】金融风控评分卡建模全流程!
- MATLAB画图必备知识
- 第二阶段javaweb-day01-mqsql基础
- KEIL5护眼背景色以及字体颜色
- CPU缓存L1,L2和L3是什么?如何工作?