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三元运算实现方法
Jan 12 Python
Python的Tornado框架的异步任务与AsyncHTTPClient
Jun 27 Python
Python常见字典内建函数用法示例
May 14 Python
Python DataFrame 设置输出不显示index(索引)值的方法
Jun 07 Python
pytorch训练imagenet分类的方法
Jul 27 Python
python使用epoll实现服务端的方法
Oct 16 Python
Python面向对象进阶学习
May 21 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
Python通过fnmatch模块实现文件名匹配
Sep 30 Python
python模块内置属性概念及实例
Feb 18 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
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
PHP扩展开发入门教程
2015/02/26 PHP
如何离线执行php任务
2017/02/21 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
2017/02/24 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
javascript 通用简单的table选项卡实现
2010/05/07 Javascript
jquery获取iframe中的dom对象(两种方法)
2013/07/02 Javascript
jQuery DOM删除节点操作指南
2015/03/03 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
js实现精确到毫秒的倒计时效果
2016/08/05 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
详解express + mock让前后台并行开发
2018/06/06 Javascript
编写Python脚本批量下载DesktopNexus壁纸的教程
2015/05/06 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
python如何获取服务器硬件信息
2017/05/11 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python交互界面的退出方法
2019/02/16 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Django xadmin安装及使用详解
2020/10/26 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
大学生入党自我鉴定
2013/10/31 职场文书
医学生自我评价
2014/01/27 职场文书
结婚喜宴主持词
2014/03/14 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
民主评议党员自我鉴定
2014/10/21 职场文书
市场督导岗位职责
2015/04/10 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书