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 yield 小结和实例
Apr 25 Python
python机器学习之决策树分类详解
Dec 20 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
python列表使用实现名字管理系统
Jan 30 Python
深入浅析Python 中 is 语法带来的误解
May 07 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
解决Django一个表单对应多个按钮的问题
Jul 18 Python
在django admin中添加自定义视图的例子
Jul 26 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
Django中使用session保持用户登陆连接的例子
Aug 06 Python
python deque模块简单使用代码实例
Mar 12 Python
python三引号如何输入
Jul 06 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+xslt在windows平台上
2006/10/09 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
javascript实现的listview效果
2007/04/28 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
2013/11/03 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
2016/05/17 Javascript
谈谈Vue.js——vue-resource全攻略
2017/01/16 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
webpack多页面开发实践
2017/12/18 Javascript
vue实现微信分享朋友圈,发送朋友的示例讲解
2018/02/10 Javascript
详解Vue Elementui中的Tag与页面其它元素相互交互的两三事
2018/09/25 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
python tensorflow学习之识别单张图片的实现的示例
2018/02/09 Python
python如何实现int函数的方法示例
2018/02/19 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
Python操作qml对象过程详解
2019/09/26 Python
python反转列表的三种方式解析
2019/11/08 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
Python中url标签使用知识点总结
2020/01/16 Python
Python3爬虫关于代理池的维护详解
2020/07/30 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
html5 web本地存储将取代我们的cookie
2012/12/26 HTML / CSS
如何理解transaction事务的概念
2015/05/27 面试题
英文版银行求职信
2013/10/09 职场文书
财务管理专业自荐信范文
2013/12/24 职场文书
高一军训的心得体会
2014/09/01 职场文书
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers