现有文件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表示实际收入。注意扣税金额和 实际收入要取整数

题目分析

  1. 去掉多余空格,提取name、salary,计算tax、income
  2. 按照目标样式,循环写入新文件
  3. 最后打印读取文件的内容
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】格式化输出员工姓名、薪资及扣税明细相关推荐

  1. 要求输入一个企业员工的姓名,性别,工号,月基本工资,奖金补贴后,计算个人所得税。系统输出员工姓名,性别,工号,和月应发薪水和实发薪水(月应发薪水-个人所得税)

    要求输入一个企业员工的姓名,性别,工号,月基本工资,奖金补贴后,计算个人所得税.系统输出员工姓名,性别,工号,和月应发薪水和实发薪水(月应发薪水-个人所得税) 个人所得税计算方法:当收入<=35 ...

  2. C#某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性;并有一个虚方法(CalSalary)用于计算并输出员工的总薪金。

    .某公司有各类员工,定义一个员工类(Employee),该类具有员工的姓名(Name)和基本薪金(Salary)等属性:并有一个虚方法(CalSalary)用于计算并输出员工的总薪金. 对不同的员工, ...

  3. python输出姓名年龄_Python格式化输出--%s,%d,%f的代码解析

    String(字符型)–%s integer(整形)–%d float(浮点型)–%f 实例 我们需要输出一个人的信息 代码: #coding=utf-8 #输出一个人的基本信息:姓名:%s 爱好:% ...

  4. Python 实验题目:字符串格式化输出内容为:姓名:张三,学号:1101,张三的平均分为90.65分。(平均分的原始值为:90.6497)

    实验题目:字符串格式化输出内容为:姓名:张三,学号:1101,张三的平均分为90.65分.(平均分的原始值为:90.6497) 用以下四种方法实现: (1)通过位置参数 (2)通过关键字参数名称 (3 ...

  5. Java初学者作业——编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名。

    返回本章节 返回作业目录 需求说明: 编写JAVA程序,在控制台中输入六位员工的姓名,通过随机点名方式,输出当选组长的员工姓名. 实现思路: (1)定义字符串类型的数组names,长度为6,用于存储六 ...

  6. python语言format蔬菜姓名、年龄_python格式化输出的三种方式

    [TOC] 格式化输出的三种方式 一.占位符(第一种格式化输出 )(3.0版本使用) 程序中经常会出现这样的 场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格 ...

  7. 常量与格式化输出练习

    简述Python的五大数据类型的作用.定义方式.使用方法: 数字类型 整型:作用,描述年龄id号,定义方式,aeg=int(18),使用方法,加减运算等 浮点型:作用,描述薪资等,定义方式,salar ...

  8. python - 字符串的格式化输出

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_2_str.py@ide: PyCharm Community ...

  9. 浅谈format格式化输出

    什么是format? 相对于基本格式化输出采用"%"的方法,format的功能强大,该函数把字符串当一个模板,通过传入的参数进行格式化,并且使用大括号"{}"作 ...

最新文章

  1. MySQL中如何修改表
  2. springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现
  3. 11月25日struts培训日记
  4. 面试题 17.14. 最小K个数
  5. javascript脚本语言_10分钟快速掌握Javascript核心特性
  6. location.replace与location.href,location.reload的区别
  7. 网信办:今年3月全国受理网络违法和不良信息举报1258.6万件
  8. Nginx学习总结(3)——Nginx配置及应用场景之高级配置
  9. 选择文件夹里指定文件图片路径_这简直是鼠标一拖,自动帮你整理好文件
  10. Android FrameLayout 帧布局
  11. [UE4]委托代理:单播委托,多播委托,动态单播委托,动态多播委托,事件
  12. 团队建设(Team building)就是等于组织大家一起吃饭娱乐吗?
  13. cesium调整倾斜摄影位置(高度,平移,旋转,缩放)(cesium篇.17)
  14. 乔布斯全新采访曝光:吐槽微软,回应争议,还要把Mac扔出窗外,然而…
  15. 计算机网络里的DHCP是什么,路由器设置中的dhcp是什么意思?
  16. 【机器学习】金融风控评分卡建模全流程!
  17. MATLAB画图必备知识
  18. 第二阶段javaweb-day01-mqsql基础
  19. KEIL5护眼背景色以及字体颜色
  20. CPU缓存L1,L2和L3是什么?如何工作?

热门文章

  1. 安卓隐藏输入法键盘以及去除光标方法
  2. apdl多荷载步设置
  3. 测试一下您对于CSS层叠样式表了解有多少
  4. 【渝粤题库】陕西师范大学202051公共财政学作业(高起专)
  5. Java - 打印昨天的当前时刻。
  6. WIFI室内定位系统设计与实现(小学期满分项目)
  7. 苏州弗迈姆工业科技有限公司简介
  8. KEPServerEX 6使用
  9. (全程图解)Axure RP8 安装及使用教程
  10. 挂载(具名挂载、匿名挂载)