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爬取网页的编码处理
Nov 04 Python
python实现多线程抓取知乎用户
Dec 12 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
python实现爬取图书封面
Jul 05 Python
Python 打印中文字符的三种方法
Aug 14 Python
解决Python selenium get页面很慢时的问题
Jan 30 Python
python射线法判断检测点是否位于区域外接矩形内
Jun 28 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
django在保存图像的同时压缩图像示例代码详解
Feb 11 Python
Python Selenium 设置元素等待的三种方式
Mar 18 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
python如何用matplotlib创建三维图表
Jan 26 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
dedecms模板标签代码官方参考
2007/03/17 PHP
解析php函数method_exists()与is_callable()的区别
2013/06/21 PHP
php实现快速排序的三种方法分享
2014/03/12 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
thinkphp框架下404页面设置 仅三步
2016/05/14 PHP
php加密之discuz内容经典加密方式实例详解
2017/02/04 PHP
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
动态加载jQuery的两种方法实例分析
2015/07/17 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
2016/06/12 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
jQuery实现的省市联动菜单功能示例【测试可用】
2017/01/13 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
微信小程序开发(三):返回上一级页面并刷新操作示例【页面栈】
2020/06/01 Javascript
Python常用库推荐
2016/12/04 Python
python中redis的安装和使用
2016/12/04 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python的几种矩阵相乘的公式详解
2019/07/10 Python
财务会计大学生自我评价
2014/04/09 职场文书
食品安全工作方案
2014/05/07 职场文书
三八妇女节标语
2014/10/09 职场文书
2014年班主任德育工作总结
2014/12/05 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
交流会主持词
2015/07/02 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
公司员工奖惩制度
2015/08/04 职场文书
小学语文教师研修日志
2015/11/13 职场文书
医学会议开幕词
2016/03/03 职场文书
2019年教师节:送给所有老师的祝福语
2019/09/05 职场文书
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技