Python字符串格式化f-string多种功能实现


Posted in Python onMay 07, 2020

f-string 格式化

f-string 格式化 就是在字符串模板前面加上f,然后占位符使用{} ,里面直接放入对应的数据对象。

如下所示

f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元'

完整的代码如下

salary = input('请输入薪资:')
 
# 计算出缴税额,存入变量tax
tax = int(salary) *25/100
 
# 计算出税后工资,存入变量aftertax
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary}元, 缴税:{tax}元, 税后薪资是:{aftertax}元')

运行一下,可以发现输出结果一样。这种方式是不是更加的直观明了呢?

要注意的是,这种写法必须要Python解释器是3.6 以后的版本才支持哦。

指定宽度

同样,为了输出对齐,我们需要指定填入的字符串的宽度。

方法是,在括号里面的变量后面加上 :宽度值

比如

salary = 10000
print(f'{salary:10}')

f'{salary:10}' 就指定了 宽度为10 个字符, 如果填入的字符串不足10个字符,就在前面加上空格.比如上面的输出结果就是

>>> salary = 10000
>>> print(f'{salary:10}')
10000

完整的一个示例程序如下

# 员工 1
salary = 8000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
 
# 员工 2
salary = 15000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
 
# 员工 3
salary = 100000
 
tax = int(salary) *25/100
aftertax = int(salary) *75/100
print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')

运行一下结果如下:

税前薪资是: 8000元, 缴税: 2000.0元, 税后薪资是: 6000.0元
税前薪资是: 15000元, 缴税: 3750.0元, 税后薪资是: 11250.0元
税前薪资是: 100000元, 缴税: 25000.0元, 税后薪资是: 75000.0元

这样,整体就显得很清爽。

当然上面的代码 有很多重复的部分。聪明的你想到怎么优化一下了吗?

对了,用函数。像这样

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:8}元, 缴税:{tax:8}元, 税后薪资是:{aftertax:8}元')
# 员工 1
calcTax(8000)
# 员工 2
calcTax(15000)
# 员工 3
calcTax(100000)

左对齐

上面的输出结果是不足在前面补空格,最终的结果就是右边对齐。 如果我们想左对齐,可以在括号里使用 < 符号

像这样 {salary:<8}

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:<8}元, 缴税:{tax:<8}元, 税后薪资是:{aftertax:<8}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是:8320 元, 缴税:2080.0 元, 税后薪资是:6240.0 元
税前薪资是:15023 元, 缴税:3755.75 元, 税后薪资是:11267.25元
税前薪资是:100030 元, 缴税:25007.5 元, 税后薪资是:75022.5 元

小数点后位数

如果我们想指定小数点后保留几位,可以像这样 {salary:<8.1f}

后面的.1f就表示小数点后面保留1位

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:8.1f}元, 缴税:{tax:8.1f}元, 税后薪资是:{aftertax:8.1f}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是: 8320.0元, 缴税: 2080.0元, 税后薪资是: 6240.0元
税前薪资是: 15023.0元, 缴税: 3755.8元, 税后薪资是: 11267.2元
税前薪资是:100030.0元, 缴税: 25007.5元, 税后薪资是: 75022.5元

不足补零

如果我们想在不足指定宽度的时候不是补空格,而是补数字0,可以像这样 {salary:08}

def calcTax(salary):
 tax = int(salary) *25/100
 aftertax = int(salary) *75/100
 print(f'税前薪资是:{salary:08}元, 缴税:{tax:08.1f}元, 税后薪资是:{aftertax:08.1f}元')
calcTax(8320)
calcTax(15023)
calcTax(100030)

运行结果如下:

税前薪资是:00008320元, 缴税:002080.0元, 税后薪资是:006240.0元
税前薪资是:00015023元, 缴税:003755.8元, 税后薪资是:011267.2元
税前薪资是:00100030元, 缴税:025007.5元, 税后薪资是:075022.5元

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用any判断一个对象是否为空的方法
Nov 19 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python机器学习之神经网络(三)
Dec 20 Python
实例讲解Python3中abs()函数
Feb 19 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
python进程的状态、创建及使用方法详解
Dec 06 Python
在django中实现choices字段获取对应字段值
Jul 12 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
Jul 15 Python
Python如何把字典写入到CSV文件的方法示例
Aug 23 Python
Python带你从浅入深探究Tuple(基础篇)
May 15 Python
基于python实现把json数据转换成Excel表格
May 07 #Python
Python基于当前时间批量创建文件
May 07 #Python
python多进程下的生产者和消费者模型
May 07 #Python
基于python实现检索标记敏感词并输出
May 07 #Python
Python3自动生成MySQL数据字典的markdown文本的实现
May 07 #Python
如何搭建pytorch环境的方法步骤
May 06 #Python
Python基于Tkinter编写crc校验工具
May 06 #Python
You might like
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
JavaScript中SQL语句的应用实现
2010/05/04 Javascript
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
window.location的重写及判断location是否被重写
2014/09/04 Javascript
js实现飞入星星特效代码
2014/10/17 Javascript
js实现文字超出部分用省略号代替实例代码
2016/09/01 Javascript
在 Angular 中实现搜索关键字高亮示例
2017/03/21 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
js中arguments对象的深入理解
2019/05/14 Javascript
Vue+axios+WebApi+NPOI导出Excel文件实例方法
2019/06/05 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
Python通过poll实现异步IO的方法
2015/06/04 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
替换python字典中的key值方法
2018/07/06 Python
基于Python打造账号共享浏览器功能
2019/05/30 Python
Python正则表达式匹配和提取IP地址
2019/06/06 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
python切割图片的示例
2020/11/12 Python
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
UNIX命令速查表
2012/03/10 面试题
卫生系统先进事迹
2014/05/13 职场文书
体育运动口号
2014/06/09 职场文书
关于青春的演讲稿800字
2014/08/22 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
大学生军训感言
2015/08/01 职场文书
学校标语口号大全
2015/12/26 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby
Python 操作pdf pdfplumber读取PDF写入Exce
2022/08/14 Python