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应用的教程
Apr 16 Python
python使用socket连接远程服务器的方法
Apr 29 Python
python中正则的使用指南
Dec 04 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
对numpy下的轴交换transpose和swapaxes的示例解读
Jun 26 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
python实现邮件发送功能
Aug 10 Python
调用其他python脚本文件里面的类和方法过程解析
Nov 15 Python
python如何处理程序无法打开
Jun 16 Python
Python Sqlalchemy如何实现select for update
Oct 12 Python
解决python3.x安装numpy成功但import出错的问题
Nov 17 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 中的str_replace 函数总结
2007/04/27 PHP
php面向对象全攻略 (十七) 自动加载类
2009/09/30 PHP
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
php上传文件,创建递归目录的实例代码
2013/10/18 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
php支持断点续传、分块下载的类
2016/05/02 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
jquery中animate动画积累的解决方法
2013/10/05 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
javascript中scrollTop详解
2015/04/13 Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
2016/02/25 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
开源Web应用框架Django图文教程
2017/03/09 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python数据结构之列表和元组的详解
2017/09/23 Python
Django如何配置mysql数据库
2018/05/04 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
python 利用matplotlib在3D空间绘制二次抛物面的案例
2021/02/06 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
区域销售经理岗位职责
2013/12/10 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
设计大赛策划方案
2014/06/13 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python